Mi sono chiesto come calcolare dBFS (dB fondo scala) da un valore del campione compreso tra 1 e -1?
e in generale?
Mi sono chiesto come calcolare dBFS (dB fondo scala) da un valore del campione compreso tra 1 e -1?
e in generale?
Risposte:
È 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.
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
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))