I'm implementing a autocorrelation function using a fft and ifft hard core (v6.0) on a Virtex5. When starting the fft, I see at the output that the result is
reversed in the frequency domain.
Example: The input signal is a sinus with a frequency of 2 Hz. As output signal I expect a dirac impuls at the beginning (imaginary). -> f(0)=0; f(1)=0; f(2)=1; f(3)=0; …; f(N-3)=0; f(N-2)=-1; f(N-1)=0; f(N)=0; (*)
But I get: -> f(0)=0; f(1)=0; f(2)=-1; f(3)=0; …; f(N-3)=0; f(N-2)=1; f(N-1)=0; f(N)=0;
Other input signals also get the same result, that the output is reversed. Can you please explain me why the output order is reversed? I have no explanation! Is it possible to reorder the output signal like (*)?
While generating FFT core, there is an option of output ordering. These options are bit/digit reversal order or Natural order. So, you can choose the option among them, the default is bit/digit reversed order so that may be the resson for your problem.