Я спросил себя, как вычислить dBFS (полная шкала дБ) из значения выборки между 1 и -1?
и вообще?
Я спросил себя, как вычислить dBFS (полная шкала дБ) из значения выборки между 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 как среднеквадратичное измерение относительно среднеквадратичного уровня полномасштабной синусоидальной волны, поэтому вычисление:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
Аналогичная единица измерения дБов определяется в отношении коэффициентов мощности (так что это также среднеквадратическое измерение), так что полномасштабная постоянная или прямоугольная волна равна 0 дБов, так что расчет составляет:
value_dBov = 20*log10(rms(signal))