FFT analysis of audio sensor data possible?

Hi All,

I'm trying to determine the feasibility of a possible arduino project before diving into tutorials. What I'd like to do is create a small array of sensor / circuitboard combos which can each do their own FFT analysis, either in real-time or with a short lag. The end result would be data visualization of the subtle differences of frequency distribution of, for example, 3-4 different devices scattered throughout a medium size room. I'm assuming the limiting factor would be the fidelity of the audio sensors, and the capabilities of the on-board processors? I've done some searching, but am only finding projects / information that uses arduino to translate audio from a laptop into FFT data to then drive an external display such as led matrix, which is a little different, since I'm looking to translate from audio sensors into FFT data. Again, my question is just on general feasibility - given available hardware / software etc., does this seem possible? Thanks!

A couple questions that may help guide feasibility:

  • What is the max sampling rate you hope to achieve? (impacts effective ADC requirement)
  • What frequency resolution / FFT bin count? (impacts memory requirement)
  • You mentioned “Arduino”, but is your project limited to utilize a series of ATmega328 or are you able to consider more powerful & memory capable options?

There is example code (and the FFT library) for collecting A/D data and performing a 128 point FFT here: Example - Open Music Labs Wiki

That said, it would probably be easier/quicker to implement the system you describe with a set of microphones connected to a single PC since you'll probably need something of the sort to compare the data from multiple sensor in near real time.

Thanks for the responses - and I will check out the sample code for sure. Ideally I'd like something more lightweight than a set of wired mics and laptop. I'm debating between working with visualization for mobile devices versus arduino. 16 bins for the FFT.