Як обчислити dBFS?


Відповіді:


13

Це дуже просто для значень від 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.


1
Це технічно правильно, але більшість метрів dBFS насправді відображає простір, тому вам часто потрібно буде відображати мінус цих значень.
Бьорн Рош

1
З усіх прочитаних нами стандартів видається, що dBFS - це строго вимірювання RMS, а не пікове вимірювання, тому це було б невірно.
ендоліт

2

Всі стандарти визначають dBFS як вимірювання RMS щодо рівня RMS повномасштабної синусоїди, тому обчислення становить:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Повномасштабна синусоїда - 0 дБФС
  • Повномасштабна квадратна хвиля становить +3 дБФС

Аналогічна одиниця dBov визначається по відношенню до коефіцієнтів потужності (тому це також вимірювання RMS), так що повномасштабна DC або квадратна хвиля дорівнює 0 дБов, так що розрахунок дорівнює:

value_dBov = 20*log10(rms(signal))
  • Повномасштабна синусоїда - 3 дБов
  • Повномасштабна квадратна хвиля - 0 дБов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.