Como calcular o dBFS?


Respostas:


13

É realmente bastante simples para valores entre 1 e -1:

valueDBFS = 20*log10(abs(value))

Se você tiver valores entre outro intervalo, por exemplo, 16 bits, é:

valueDBFS = 20*log10(abs(value)/32768)

(porque o sinal de 16 bits possui valores entre -32768 e +32767, por exemplo, 2 ^ 15 = 32768)

E assim a fórmula geral é:

valueDBFS = 20*log10(abs(value)/maxValue)

Os exemplos de código são fornecidos no código MATLAB.


1
Isso é tecnicamente correto, mas a maioria dos medidores de dBFS na verdade exibe margem livre; portanto, você geralmente desejará exibir o negativo desses valores.
Bjorn Roche

1
De todos os padrões que li, parece que o dBFS é estritamente uma medição RMS, não uma medição de pico; portanto, isso não seria correto.
Endolith

2

Todos os padrões definem o dBFS como uma medição RMS , relativa ao nível RMS de uma onda senoidal em escala real; portanto, o cálculo é:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Uma onda senoidal em escala real é de 0 dBFS
  • Uma onda quadrada em escala real é +3 ​​dBFS

A unidade semelhante dBov é definida em relação às relações de potência (portanto, também é uma medição RMS), de modo que a onda contínua ou quadrada de escala completa seja 0 dBov, de modo que o cálculo seja:

value_dBov = 20*log10(rms(signal))
  • Uma onda senoidal em escala real é de -3 dBov
  • Uma onda quadrada em escala real é de 0 dBov
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.