¿Cómo calcular dBFS?

Respuestas:

13

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.

JustGoscha
fuente
1
Esto es técnicamente correcto, pero la mayoría de los medidores de dBFS realmente muestran espacio libre, por lo que a menudo querrá mostrar el negativo de estos valores.
Bjorn Roche
1
De todos los estándares que he leído, parece que dBFS es estrictamente una medición RMS, no una medición de pico, por lo que esto no sería correcto.
endolito el
2

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
  • Una onda sinusoidal a gran escala es 0 dBFS
  • Una onda cuadrada a escala completa es +3 dBFS

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))
  • Una onda sinusoidal a gran escala es −3 dBov
  • Una onda cuadrada a escala completa es 0 dBov
endolito
fuente