Wie berechnet man dBFS?


Antworten:


13

Für Werte zwischen 1 und -1 ist das ganz einfach:

valueDBFS = 20*log10(abs(value))

Wenn Sie Werte zwischen einem anderen Bereich haben, z. B. 16 Bit, dann ist es:

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

(weil 16-Bit-Vorzeichen Werte zwischen -32768 und +32767 haben, z. B. 2 ^ 15 = 32768)

Und so lautet die allgemeine Formel:

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

Die Codebeispiele sind im MATLAB-Code angegeben.


1
Dies ist technisch korrekt, aber die meisten dBFS-Messgeräte zeigen tatsächlich den Headroom an, sodass Sie häufig das Negativ dieser Werte anzeigen möchten.
Björn Roche

1
Aus all den Standards, die ich gelesen habe, geht hervor, dass dBFS streng genommen eine RMS-Messung ist, keine Spitzenmessung, daher wäre dies nicht korrekt.
Endolith

2

Alle Standards definieren dBFS als RMS-Messung , bezogen auf den RMS-Pegel einer Sinuswelle im Vollmaßstab. Die Berechnung lautet also:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Eine Sinuswelle im Vollbereich beträgt 0 dBFS
  • Eine Rechteckwelle im Vollmaßstab beträgt +3 dBFS

Die ähnliche Einheit dBov wird in Bezug auf die Leistungsverhältnisse definiert (es handelt sich also auch um eine RMS-Messung), sodass die DC- oder Rechteckwelle im Vollbereich 0 dBov beträgt, sodass die Berechnung wie folgt lautet:

value_dBov = 20*log10(rms(signal))
  • Eine Sinuswelle im Vollmaßstab beträgt –3 dBov
  • Eine Rechteckwelle im Vollmaßstab beträgt 0 dBov
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.