Me pregunté cómo calcular dBFS (dB escala completa) a partir de un valor de muestra entre 1 y -1.
¿y en general?
Me pregunté cómo calcular dBFS (dB escala completa) a partir de un valor de muestra entre 1 y -1.
¿y en general?
Respuestas:
Es realmente bastante simple para valores entre 1 y -1:
valueDBFS = 20*log10(abs(value))
Si tiene valores entre otro rango, por ejemplo 16 bits, entonces es:
valueDBFS = 20*log10(abs(value)/32768)
(porque 16 bits con signo tiene valores entre -32768 y +32767, por ejemplo, 2 ^ 15 = 32768)
Y entonces la fórmula general es:
valueDBFS = 20*log10(abs(value)/maxValue)
Los ejemplos de código se dan en código MATLAB.
Todos los estándares definen dBFS como una medición RMS , en relación con el nivel RMS de una onda sinusoidal a gran escala, por lo que el cálculo es:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
La unidad similar dBov se define en relación con las relaciones de potencia (por lo que también es una medida RMS), de modo que la CC a escala completa o la onda cuadrada es 0 dBov, de modo que el cálculo es:
value_dBov = 20*log10(rms(signal))