Hello,
I try to use C28x FPU Library Beta1 for realize IFFT but get unexpected amtlitude changing.
Source signal
FFT results
IFFT results - example 1
IFFT results - example 2
Source code
namespace measure
{
const Uint16 fftSize=8192;
const Uint16 fftStages=13;
RFFT_F32_STRUCT fft;
RFFT_F32_STRUCT ifft;
float32 bufferA[fftSize];
float32 bufferB[fftSize];
float32 bufferC[fftSize];
}
Calling on startup:
void measure::init(){
fft.InBuf=bufferA;
fft.OutBuf=bufferB;
fft.CosSinBuf=bufferC;
fft.MagBuf=fft.InBuf;
fft.FFTSize=fftSize;
fft.FFTStages=fftStages;
ifft.InBuf=fft.OutBuf;
ifft.OutBuf=fft.InBuf;
ifft.CosSinBuf=fft.CosSinBuf;
ifft.MagBuf=ifft.InBuf;
ifft.FFTSize=fftSize;
ifft.FFTStages=fftStages;
RFFT_f32_sincostable(&fft);
}
And try to do FFT and IFFT:
RFFT_f32u(&fft);
RFFT_f32u(&ifft);
May be cause is difference between real FFT and complex FFT, may be in something else. I don't know exactly how do IFFT with real FFT algorithm. Anybody do IFFT with C28x FPU Library Beta1?



