Arduino Realtime Audio Spectrum Analyzer with Video out! Arduino Realtime Audio Spectrum Analyzer with Video out! Arduino Realtime Audio Spectrum Analyzer with Video out!

Davide GombaNovember 16th, 2010

[Paul Bishop] shared code & pics about his project mixing a 8 bit FFT library found on the forum (in C) and the TvOut library.
The first piece- data collection- is fairly standard.  I use an electret microphone (which alone only produces a few mV output, far too low for our Arduino to use directly) with a transistor amplifier as the signal source, which is then sampled via the ADC on the Analog 0 pin of the Arduino.
To do spectrum analysis however, you need to capture signal over time, then process that data with what is known as a Fourier Transformation.  This magical process takes a signal and breaks it down into buckets  based upon frequencies found within the sample.  This produces a remarkably good picture of the signal.. and if displayed, functions as a visual spectrum analyzer if looped over and over.
This post contains a library which performs both the sampling and the Fast Fourier Transformation completely in C in 8 bits, amazing fast considering that fact, and uses a few tricks to be really stingy on memory, which is at a premium on Arduino- especially with the TVout data space eating up quite a bit.  Since the Atmega 328 only has 2k of RAM, every byte counts.  Matrix math done like this is nothing short of awesome.  Best of all, it’s usable as a library.  Cut and paste the .cpp and .h into a new folder named “FFT” in the Libraries directory.  My Arduino project code is adapted from the original code from the forum-posted Arduino program.
via [Blurtime]

 

[Paul Bishop] shared code & pics about his project mixing a 8 bit FFT library found on the forum (in C) and the TvOut library.
The first piece- data collection- is fairly standard. I use an electret microphone (which alone only produces a few mV output, far too low for our Arduino to use directly) with a transistor amplifier as the signal source, which is then sampled via the ADC on the Analog 0 pin of the Arduino.
To do spectrum analysis however, you need to capture signal over time, then process that data with what is known as a Fourier Transformation. This magical process takes a signal and breaks it down into buckets based upon frequencies found within the sample. This produces a remarkably good picture of the signal.. and if displayed, functions as a visual spectrum analyzer if looped over and over.
This post contains a library which performs both the sampling and the Fast Fourier Transformation completely in C in 8 bits, amazing fast considering that fact, and uses a few tricks to be really stingy on memory, which is at a premium on Arduino- especially with the TVout data space eating up quite a bit. Since the Atmega 328 only has 2k of RAM, every byte counts. Matrix math done like this is nothing short of awesome. Best of all, it’s usable as a library. Cut and paste the .cpp and .h into a new folder named “FFT” in the Libraries directory. My Arduino project code is adapted from the original code from the forum-posted Arduino program.
via [Blurtime]

[Paul Bishop] shared code & pics about his project mixing a 8 bit FFT library found on the forum (in C) and the TvOut library.
The first piece- data collection- is fairly standard. I use an electret microphone (which alone only produces a few mV output, far too low for our Arduino to use directly) with a transistor amplifier as the signal source, which is then sampled via the ADC on the Analog 0 pin of the Arduino.
To do spectrum analysis however, you need to capture signal over time, then process that data with what is known as a Fourier Transformation. This magical process takes a signal and breaks it down into buckets based upon frequencies found within the sample. This produces a remarkably good picture of the signal.. and if displayed, functions as a visual spectrum analyzer if looped over and over.
This post contains a library which performs both the sampling and the Fast Fourier Transformation completely in C in 8 bits, amazing fast considering that fact, and uses a few tricks to be really stingy on memory, which is at a premium on Arduino- especially with the TVout data space eating up quite a bit. Since the Atmega 328 only has 2k of RAM, every byte counts. Matrix math done like this is nothing short of awesome. Best of all, it’s usable as a library. Cut and paste the .cpp and .h into a new folder named “FFT” in the Libraries directory. My Arduino project code is adapted from the original code from the forum-posted Arduino program.
via [Blurtime]

 

6 Responses to “Arduino Realtime Audio Spectrum Analyzer with Video out! Arduino Realtime Audio Spectrum Analyzer with Video out! Arduino Realtime Audio Spectrum Analyzer with Video out!

  1. Andrew O'Malley Says:

    Wow, really excited to hear about this!

  2. Pauper Says:

    Awesome, and project and extremely well executed !! Nice job !!

  3. Pauper Says:

    Ok, that last post was suppose to say …

    “Awesome project and extremely well executed !! Nice job !!”

    My crappy laptop can’t keep up to my fingers … :-/ lol

  4. Paul Bishop Says:

    I’ve now added the circuit schematic and a second (better lit) video to the blog.. glad to hear you enjoy it!

  5. Marc Oz Says:

    Hey Paul, whow! Looks amazing – well done!

  6. Boki, Spectrum Analyzer News Says:

    This looks great. Congrats!

Leave a Reply

You must be logged in with your Arduino account to post a comment.

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy