FFT C Algorithm Code Rationale
http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft.c
http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft_test.c
I found a nice working C code for an FFT algorithm to convert Time Domain to frequency domain and vice versa in the links above. But I wanted to know the flowchart or step-by-step workflow of this code. I am trying to parse code with time decimation butterfly method for FFT, but I am having difficulty understanding the code. The code works very well and gives me correct results, but it would be very helpful for me if someone could provide a short or detailed explanation of how this code works.
I am confused with the array and pointers used in the fft.c. code. Also I am not getting offset and delta values in the code. How is a rectangular matrix of real and imaginary members viewed in code? Please guide me.
Thanks, Psbk
source to share
I highly recommend reading the following: fooobar.com/questions/1560028 / ...
Now at a glance, the offset and delta are used to:
- do the butterfly shuffle permutation
- you start at step 1 and half interval
- and by recursion you get log2 (N) step and interval of 1 point ...
- +/- one level of recursion
- I usually do the butterfly in reverse order
Array XX
- is a buffer for storing subtasks or input data.
- you cannot easily FFT (if at all)
- so you compute to / from a temporary buffer instead of
- and on each recursion just change data and temp buffers (physically or their value).
source to share