Wie berechnet man dBFS?

11

Ich habe mich gefragt, wie man dBFS (dB Full Scale) aus einem Abtastwert zwischen 1 und -1 berechnet.

und allgemein?

JustGoscha
quelle

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.

JustGoscha
quelle
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
Endolith
quelle