I am processing an audio signal with CS4244 codec at 24 bits and 48kHz. Every 2048 samples the FFT is calculated and its amplitude. Without input signal I get FFT values ​​close to 30dB. With maximum input values ​​(overflow) I get values ​​of 90dB, with a scale of 0 to 120dB. Why not get a dynamic range of 100-110dB as is logical in a 24bit process? Any ideas? Thanks.

  • $\begingroup$ PLEASE DON'T SCREAM IN YOUR TITLE! $\endgroup$ – Marcus Müller Aug 7 '19 at 13:38
  • $\begingroup$ some error comes from arithmetic that rounds $\endgroup$ – user28715 Aug 7 '19 at 13:52

Try using an input of a very pure sine wave at an exact multiple of 23.4375 Hz. A sinusoid that is integer periodic in the FFT length will show a maximum magnitude FFT result for a maximum (for the data type) amplitude input. Otherwise the energy of a non-saturating input will likely get spread into multiple FFT result bins, resulting in a lower peak magnitude.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.