8 bit FFT for Arduino - Google Code

Well, since I never did track down "deif", I put the code originally posted on the forum into discrete files
and put them up on Google Code.. Enjoy all!


TINY lib that performs a tight 8-bit integer FFT, suitable for color organs and the like... I used it for
my spectrum analyzer with video output...

Reposted in Audio Forum as well as Exhibition forums.

thanks for this. I have looked at the code that has been written with this and it is all centered so far on using it with the TV out.
could this be used to work with audio?

and if so how?

i figure it reads an input and puts out some sort of data in response to it

i could use that data to step through arrays or put out pwm values, correct?


The code example in the repository (the original written by deif) as well as my own (with the TVout used to display the audio FFT) are both specifically for audio use.. what is being sampled by the ADC is audio from a electret microphone with a simple transistor amplifier. As written, the output of the FFT routines is written into the array.. what you do with it from there is up to you.. I just used the TVout library to create a display of the FFT in near realtime, but it can be used for single-pass sampling/analysis and output or just about any other purpose .

Note that I didn't do any real in-depth analysis on the accuracy; I've placed the code in the repository as it's very useful and fast, but I'm not the original author.. it's from a post here on the (old) Arduino forums. I have also found a couple of other implementations that I may try out, there's one in partuicular which allows for definable data windows and is written in ATMEGA assembler, originally for ATMEGA168, the little brother of the current UNO chip, the ATMEGA328, which has twice the memory. In addition to (possibly) being faster, it's a bit better documented.

FFT's are heavy math, the kind that uses squiggly lines and things like "imaginary numbers". Unless you are a math major, or incredibly self-abusive, I'd recommend getting the project working first.. then trying to figure out HOW it works afterwards...

I'm don't understand the sketch in the example, doesn't run!

I did some modifications but didn't works =/

Can you post a example for me ?