Hi All, I am using FFT on Motorola DSP (24 bit processor). I am working on an audio encoder project which required atleast 20 bit accuracy. The twiddle factor (which is in Q21 format) value is coming from table. The sample application developed to calculate 8-point 10 2048 FFT in radix-2 DIT is loosing 9-bit accuracy. If we compare the output of Windows floating point code and DSP fixed point code, it has 9-bit accuracy loss. Does anyone has idea about where am i making mistake? Any data points will be of great help. Regards, Mehul
How to improve FFT accuracy on fixed point DSP processor?
Started by ●July 28, 2004
Reply by ●July 28, 20042004-07-28
Check the literature / Google / etc. for block floating point. FFTs generate intermediate results that can oveflow so a divide by two is usually used at each outer loop iteration. But that overcompensates, costing you accuracy. Block floating point can prevent that. Also be sure to use the correct accuracy in your factors and lookup tables, rounding vs. truncation, etc. Some homework here will pay real dividends in accuracy and dynamic range... Jim Horn (tweaked 68k FFT code for HP 70000 series spectrum analyzers)