Я запитав себе, як обчислити dBFS (dB повна шкала) зі значення вибірки між 1 і -1?
і взагалі?
Я запитав себе, як обчислити dBFS (dB повна шкала) зі значення вибірки між 1 і -1?
і взагалі?
Відповіді:
Це дуже просто для значень від 1 до -1:
valueDBFS = 20*log10(abs(value))
Якщо у вас є значення між іншим діапазоном, наприклад, 16 біт, то це:
valueDBFS = 20*log10(abs(value)/32768)
(оскільки 16-бітний підписаний має значення між -32768 і +32767, наприклад, 2 ^ 15 = 32768)
Отже, загальна формула така:
valueDBFS = 20*log10(abs(value)/maxValue)
Приклади коду наведені в коді MATLAB.
Всі стандарти визначають dBFS як вимірювання RMS щодо рівня RMS повномасштабної синусоїди, тому обчислення становить:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
Аналогічна одиниця dBov визначається по відношенню до коефіцієнтів потужності (тому це також вимірювання RMS), так що повномасштабна DC або квадратна хвиля дорівнює 0 дБов, так що розрахунок дорівнює:
value_dBov = 20*log10(rms(signal))