Needing my project to do FFT on brainwaves to split one channel into Alpha, Beta, Theta, Delta, and Gamma components, I've spent a week searching for Arduino software (or a simple chip) to do the work. Amazingly, I couldn't find, nor did the FFT library and scripts on this website work for me even though others spoke of great success. I'm mystified.
However, I FINALLY found what I needed. It's a really tiny FFT sketch that really works, taking up only 1.9k of my ATmega328's internal memory. (With all the programming already in my project, there wasn't enough room for heftier options.)
This tiny but priceless jewel can be downloaded in three files from:
As I recall, the fix_fftr() function (transform of real numbers) does not work. The result ends up scrambled in a way that is rather complicated to unscramble and the code to do so would take up more space than the imaginary array wastes in fix_fft(). Also as I recall, this code was modeled after that found in Numerical Recipes in C.
I looked but never found a version of fix_fftr that had been made usable, but if you do, please let us know.
As I recall, the fix_fftr() function (transform of real numbers) does not work.
That's a good thing to know, jremington.
I never tried to use fix_fftr(), because fix_fft() prooved to be all I needed.