Come calcolare dBFS?


Risposte:


13

È davvero abbastanza semplice per valori compresi tra 1 e -1:

valueDBFS = 20*log10(abs(value))

Se hai valori tra un altro intervallo, ad esempio 16 bit, è:

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

(poiché il segno a 16 bit ha valori compresi tra -32768 e +32767, ad esempio 2 ^ 15 = 32768)

E quindi la formula generale è:

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

Gli esempi di codice sono riportati nel codice MATLAB.


1
Questo è tecnicamente corretto, ma la maggior parte dei misuratori dBFS mostra effettivamente un margine, quindi spesso vorrai visualizzare il negativo di questi valori.
Bjorn Roche,

1
Da tutti gli standard che ho letto, sembra che dBFS sia strettamente una misura RMS, non una misura di picco, quindi questo non sarebbe corretto.
endolith

2

Tutti gli standard definiscono dBFS come una misura RMS , relativa al livello RMS di un'onda sinusoidale in scala reale, quindi il calcolo è:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Un'onda sinusoidale a fondo scala è 0 dBFS
  • Un'onda quadra in scala reale è +3 dBFS

L'unità dBov simile è definita in relazione ai rapporti di potenza (quindi è anche una misura RMS), in modo che l'onda quadra o in scala reale sia 0 dBov, in modo che il calcolo sia:

value_dBov = 20*log10(rms(signal))
  • Un'onda sinusoidale in scala reale è −3 dBov
  • Un'onda quadra a fondo scala è 0 dBov
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.