Eu me perguntei como calcular dBFS (dB em escala completa) a partir de um valor de amostra entre 1 e -1?
e em geral?
Eu me perguntei como calcular dBFS (dB em escala completa) a partir de um valor de amostra entre 1 e -1?
e em geral?
Respostas:
É 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.
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
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))