Question about the FFT on C6711
Hello everybody, I'm implementing a FFT on a TMS320C6711. The code provided by TI (you can find it at ftp://ftp.ti.com/pub/tms320bbs/c67xfiles/fftspx_h.asm) realizes a mixed radix FFT and will work as both as Radix-2 and Radix-4 FFT (for no of points of FFT
as a power of 2 or 4).
This algorithm allows the main fft of size N to be divided into several steps, allowing as much data reuse as possible. Has somebody tried to implement this algorithm with several steps ? I have some questions about the use of the factors. Thanks. Jean-Marc ROUXEL. |
|
Question about the FFT on C6711
Jean-Marc, I have got it to work correctly in several steps. I divided a 1024 pt FFT into 4 256 pt FFTs. It seemed to work fine. The idea is that you can either run the FFT completely, or you can divide a large FFT into a number of small ones and then run those. BTW, fftspx_h is not interrupt safe. The way it uses the stack is not compatible with TI's C tools. The easiest fix is to disable interrupts around the entire call. The following example is incorrect as well ! * fftSPxSP_asm(512, &x_asm[0],&w[0],y_asm,brev,2, 0,512); * * * * is equvalent to: * * * * fftSPxSP_asm(128, &x_asm[2*0], &w[2*384],y_asm,brev,4, 0,512); * * fftSPxSP_asm(128, &x_asm[2*128],&w[2*384],y_asm,brev,4, 128,512); * * fftSPxSP_asm(128, &x_asm[2*256],&w[2*384],y_asm,brev,4, 256,512); * * fftSPxSP_asm(128, &x_asm[2*384],&w[2*384],y_asm,brev,4, 384,512); * Andrew Elder --- In , "Rouxel, Jeanmarc" <jeanmarc.rouxel@a...> wrote: > Hello everybody, > > I'm implementing a FFT on a TMS320C6711. > > The code provided by TI (you can find it at > ftp://ftp.ti.com/pub/tms320bbs/c67xfiles/fftspx_h.asm) realizes a mixed > radix FFT and will work as both as > Radix-2 and Radix-4 FFT (for no of points of FFT as a power of 2 or 4). > Unfortunately the application note describing the code has not been finished > yet. > > This algorithm allows the main fft of size N to be divided into several > steps, allowing as much data reuse as possible. > > Has somebody tried to implement this algorithm with several steps ? I have > some questions about the use of the factors. > > Thanks. > > Jean-Marc ROUXEL. |
RE: [c6x] Re: Question about the FFT on C6711
Thanks for your help, Andrew. But I try to divide my FFT into 4 FFTs with disabling the IT,
but the results were not good.
Can you help me on these several points ? 1. I wonder if the address of the factor's array is
always the same for all the calls of the small FFTs ?
2. In case of a number of complex points which is not a power of 4, the n_min parameter is equal to 2 or 4 ? 3. If wonder if we always divide a large FFT into 4 small FFTs ? Example for N 48, can we divide into 8 small FFTs (of 256 points) or I am obliged to divide into 4 small FFTs ? Thanks, Jean-Marc ROUXEL -----Message d'origine-----
Jean-Marc, I have got it to work correctly in several steps. I divided a
1024 pt
The idea is that you can either run the FFT completely, or you
can
BTW, fftspx_h is not interrupt safe. The way it uses the stack
is not
The following example is incorrect as well ! *
fftSPxSP_asm(512, &x_asm[0],&w[0],y_asm,brev,2,
Andrew Elder --- In c...@egroups.com, "Rouxel, Jeanmarc"
<jeanmarc.rouxel@a...>
_____________________________________
_____________________________________
To Join: Send an email to c...@egroups.com To Post: Send an email to c...@egroups.com To Leave: Send an email to c...@egroups.com Archives: http://www.egroups.com/group/c6x Other Groups: http://www.dsprelated.com |