Comment calculer dBFS?


Réponses:


13

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.


1
C'est techniquement correct, mais la plupart des compteurs dBFS affichent en fait une marge, donc vous voudrez souvent afficher le négatif de ces valeurs.
Bjorn Roche

1
De toutes les normes que j'ai lues, il semble que dBFS soit strictement une mesure RMS, pas une mesure de crête, donc ce ne serait pas correct.
endolith

2

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
  • Une onde sinusoïdale pleine échelle est de 0 dBFS
  • Une onde carrée pleine échelle est de +3 dBFS

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))
  • Une onde sinusoïdale pleine échelle est de -3 dBov
  • Une onde carrée pleine échelle est de 0 dBov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.