Search code examples
audiofftnaudiodecibel

Wrong decibel result on fft data


If i remember the decibel range is bit depth * 6.

I play wav file that his bit depth = 16 (using NAudio lib) and I get the fft result then i'm calc the decibels for each fft result. 20 * Math.log10(fftData[i]) and i've got strange results (-109...) how it can be over -96 (for 16 bit)?

(i work with .net 4)

Thanks!


Solution

  • dB is a measure of ratio, not absolute amplitude. Your figure of -109 dB is a ratio relative to some arbitrary 0 dB reference point, which may or may not correspond to full scale in your case.

    It's also important to note that the energy in just one frequency bin may be a lot smaller than the energy corresponding to a 1 bit signal, as already mentioned by Matt M, since it represents energy in a relatively small bandwidth (units are V / sqrt(Hz)).