Zadałem sobie pytanie, jak obliczyć dBFS (pełna skala dB) z wartości próbki między 1 a -1?
i na ogół?
Zadałem sobie pytanie, jak obliczyć dBFS (pełna skala dB) z wartości próbki między 1 a -1?
i na ogół?
Odpowiedzi:
To jest naprawdę bardzo proste dla wartości od 1 do -1:
valueDBFS = 20*log10(abs(value))
Jeśli masz wartości z innego zakresu, na przykład 16bit, to jest to:
valueDBFS = 20*log10(abs(value)/32768)
(ponieważ podpisany 16-bit ma wartości od -32768 do +32767, np. 2 ^ 15 = 32768)
Tak więc ogólna formuła jest następująca:
valueDBFS = 20*log10(abs(value)/maxValue)
Przykłady kodu podano w kodzie MATLAB.
Wszystkie standardy definiują dBFS jako pomiar RMS w odniesieniu do poziomu RMS pełnej fali sinusoidalnej, więc obliczenia są następujące:
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
Podobna jednostka dBov jest zdefiniowana w stosunku do współczynników mocy (więc jest to również pomiar RMS), tak że pełnozakresowy prąd stały lub prostokątny wynosi 0 dBov, więc obliczenia są następujące:
value_dBov = 20*log10(rms(signal))