I have been searching tirelessly through the internet to find an FFT library designed specifically for the Arduino. I have found heaps of FFT algorithms for Atmega AVRs but they are either in C or ASM, not in the Arduino language. Is there an easy way to convert those files (written for either Atmega8 or Atmega168) to the Arduino’s language? I don’t really want to write an FFT function from scratch in the Wiring language when there are so many great pieces of code that are very efficient.
All I’m trying to do is attach a microphone to the Arduino and do a 256 or 512 piont FFT (Radix 2 algorithm) and send values back to PC over serial and display the spectrum (for debugging). The Arduino will basically do differencing of the spectrum to find patterns and make decisions based on those differences.
I’ve read how to change prescale factors on the ADC to improve sampling frequency up to ~77KHz, which is a bit overkill, but we need ~40KHz giving us nyquist frequency of 20KHz.
Any thoughts / suggestions? Would be appreciated!
Cheers