0
$\begingroup$

I'm reading the various FFT algorithms and the input consists usually of real and imaginary parts. The real data can be for example an audio input and the imaginary part should be the same sized array filled with zeros. But the algorithm, for example the bit reverse part works also on the imaginary part, essentially moving zeros around. What's the point in it?

$\endgroup$
0
$\begingroup$

If you're using the usual Decimation-In-Time Cooley-Tukey radix-2 FFT, the buffer of samples going in need to be scrambled in order by having the indices of the samples bit-reversed. And if the FFT is a complex-input, complex-output FFT and it is given real data, yes the imaginary part is set to zero.

And, in the case of a purely real input signal, you need not bother swapping those imaginary parts in your data preparation before passing to the net FFT algorithm expecting the input to be in bit-reversed order. But you do have to bother with the real parts of the samples.

$\endgroup$
  • $\begingroup$ There are Decimation-In-Frequency FFT algorithms that want your input data in its original order, but the output must be bit-reversed. That is why a simple, mindless bit-reverse algorithm bothers to do it with both real and imaginary parts. $\endgroup$ – robert bristow-johnson May 3 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.