The following FFT implementations are provided: 1) Radix-2 DIT Recurcive FFT, 2) In Place Radix-2 DIT Iterative FFT, 3) Radix-2 DIT FFT, 4) Radix-4 DIT FFT, 5) Radix-2 DIT Iterative mex-coded FFT, 6) Split-Radix DIT FFT, 7) Radix-2 DIF FFT. DIT = Decimation In Time, DIF = Decimation In Frequency.
Hi Ilias, thank you for sharing your nice work!
Decades ago I coded my own iterative FFT function in Turbo Pascal. As far as I remember I got a very high speed boost by taking the "twiddle factors" from a pre-calculated look-up table instead of calculating them again and again like exp(-2*pi*1i/N) .^ (0:m-1) in your fft_rec.m.
Would you like to try this potential improvement too?
To Mikhail: Yes. The script fft_it2.m is used to generate fft_it2_mex via MatLab's codegen. The procedure is described at the bottom of file fft_it2.m. As can be seen the coding in files fft_it.m and fft_it2.m are identical. The purpose of this "dual" effort is to demonstrate the acceleration obtained via mex coded functions.
Hi! Are you using fft_it2_mex instead of fft_it2 by intention in your bench_fft.m?
I have improved dif_fft.m and rec_fft.m by killing some unneeded for loops. I also have included an FFT implementation (both in matlab and mex-coded) found in "Numerische Mathematik kompakt" by Robert Plato.
I have only modified the title of this submission.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.