Je me suis demandé comment calculer dBFS (dB pleine échelle) à partir d'une valeur d'échantillon entre 1 et -1?
et en général?
Je me suis demandé comment calculer dBFS (dB pleine échelle) à partir d'une valeur d'échantillon entre 1 et -1?
et en général?
Réponses:
C'est vraiment assez simple pour des valeurs entre 1 et -1:
valueDBFS = 20*log10(abs(value))
Si vous avez des valeurs entre une autre plage, par exemple 16 bits, alors c'est:
valueDBFS = 20*log10(abs(value)/32768)
(car 16 bits signés ont des valeurs comprises entre -32768 et +32767, par exemple 2 ^ 15 = 32768)
Et donc la formule générale est:
valueDBFS = 20*log10(abs(value)/maxValue)
Les exemples de code sont donnés dans le code MATLAB.
Toutes les normes définissent dBFS comme une mesure RMS , par rapport au niveau RMS d'une onde sinusoïdale pleine échelle, le calcul est donc:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
L'unité similaire dBov est définie par rapport aux rapports de puissance (il s'agit donc également d'une mesure RMS), de telle sorte que l'onde CC ou carrée pleine échelle est de 0 dBov, de sorte que le calcul est:
value_dBov = 20*log10(rms(signal))