Jak obliczyć dBFS?


Odpowiedzi:


13

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.


1
Jest to technicznie poprawne, ale większość mierników dBFS faktycznie wyświetla nadmiar, więc często będziesz chciał wyświetlać minus tych wartości.
Bjorn Roche

1
Ze wszystkich standardów, które przeczytałem, wydaje się, że dBFS jest ściśle pomiarem RMS, a nie pomiarem szczytowym, więc nie byłoby to poprawne.
endolith,

2

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
  • Pełnoskalowa fala sinusoidalna wynosi 0 dBFS
  • Fala kwadratowa w pełnej skali wynosi +3 dBFS

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))
  • Pełnoskalowa fala sinusoidalna wynosi −3 dBov
  • Fala kwadratowa w pełnej skali wynosi 0 dBov
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.