
Technical discussions about the TI C6000 DSPs (including the c62x, c64x and c67x DSPs).
|
In fft radix4 code that given by TI, No overflow protection or detection is performed!! Therefore, as the numpoints N are increased, inverse fft do not make correct answer. I tried N=64, N=256. In my thinking, the reason is overflow in radix4 routine. Please, give me some advice. How can I solve this problem? Thanks in advance.. |
|
|
|
This is the classic problem with FFTs on fixed point machines! It also bites floating point machines - just you only start to worry on much bigger transforms. I haven't looked at the FFT code, but what I've had to do in the past is scale the data down before putting it into the FFT. Your data will double after each FFT pass - so if you've got a 1K FFT, there are 10 passes - you need to scale the data down by 10 bits. Leaving you a whopping 6 bits of accuracy... A better approach is to scale the data after each pass, but that means modifying TI's code. What you do here is implement the first pass then divide the data down by 1 bit, repeat after the second pass and so on... Hope this helps! Ralph ******************************************************** Ralph Weir mailto: Hunt Engineering http://www.hunteng.co.uk Office: +44 (0)1278 760188 Fax: +44 (0)1278 760199 Direct: +44 (0)1283 819991 Mobile: +44 (0)403 472329 Direct Fax: +44 (0)1283 819992 ******************************************************** > -----Original Message----- > From: [mailto:] > Sent: 12 November 1999 13:24 > To: > Subject: [c6x] fft on c6x problem? > In fft radix4 code that given by TI, > No overflow protection or detection is performed!! > > Therefore, as the numpoints N are increased, > inverse fft do not make correct answer. > > I tried N=64, N=256. > > In my thinking, the reason is overflow in radix4 routine. > > Please, give me some advice. > How can I solve this problem? > > Thanks in advance.. > |