Ich habe mich gefragt, wie man dBFS (dB Full Scale) aus einem Abtastwert zwischen 1 und -1 berechnet.
und allgemein?
Ich habe mich gefragt, wie man dBFS (dB Full Scale) aus einem Abtastwert zwischen 1 und -1 berechnet.
und allgemein?
Antworten:
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.
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
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))