Hi,
Ti has introduced FFT tech called "Multi-Pass" using DSPF_sp_fftSPxSP API.
Please take a look in the following manual.
http://www.ti.com/lit/an/spra947a/spra947a.pdf
3.3.3.2 DSPF_sp_fftSPxSP Multi-Pass Implementation
It says that the following code is required to apply multi-pass FFT:
==================
/* stage one */
DSPF_sp_fftSPxSP(N, &x[0], &w[0], y, brev, N/16, 0, N);
/* stage two */
for(i=0;i<16;i++)
{
DSPF_sp_fftSPxSP(N/16, &x[2*(15−i)*N/16], &w[2*N*15/16], &y[0], brev, radix,15−i)*N/16, N);
}
==================
Now, one of my customers actually tried this and got wrong result in FFT. and got working with
the following modifications:
==================
// stage one
DSPF_sp_fftSPxSP( n, &x[0], &w[0], y, brev, n/16, 0, n );
// stage two
for( i=15;i>=0;i--){
DSPF_sp_fftSPxSP( n/16, &x[2*(15-i)*n/16], &w[2*n*15/16], &y[0], brev, 2, 2*(15-i)*n/16, n );
}
============
Is this expected behavior ?
The same issue had been posted in :
http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/t/125465.aspx
But no valid answer is present there.
Best Regards,
Kawada