Building a spectrum analyzer with parallel processing

fft

It’s the end of the semester for [Bruce Land]‘s microcontroller design class at Cornell, and the projects coming off the workbench this semester look as awesome as any before. For their final project, [Alexander Wang] and [Bill Jo] designed an audio frequency spectrum analyzer using two microcontrollers in a parallel setup.

This spectrum analyzer takes an audio signal from an iPod, phone, or CD player through a 3.5 mm jack and displays the level for dozens of frequency bands much like an audio visualizer in iTunes or a nice car stereo display. To display these frequency bands, the spectrum analyzer first needs to perform a Fast Fourier Transform on the incoming audio signal. While FFT is extremely fast, the calculations are rather hardware intensive; calculating the frequencies and displaying them on a TV would be a bit much even for the ATMega1284 used in the project.

To graph the audio signal on their small display, [Alexander] and [Bill] broke the build up into two parts – one to do the math on the audio, and another to generate the NTSC video signal for the display.

As seen in the video after the break, the spectrum analyzer works wonderfully, and even though it only functions up to 4kHz, it’s more than enough to see what’s going on in most music.

Comments

  1. biozz says:

    very nice project!
    i need a MHZ to GHZ spectrum analyzer but being short of 10 grand i hoped to build one XD BUT i dont think thats really possible without eating a ton of noise XDD

  2. cjwoodall says:

    Really cool project! Now I am inspired to finish up my analyzer…

  3. Evil.Spock.1@gmail.com says:

    Why use an FFT? Why not a notch filter with an ADC? I think Maxtor™ as a one chip solution for this.

  4. gmcurrie says:

    Neat project, (& not to nit-pick) but the HaD headline says ‘Building a spectrum analyzer with *parallel processing*’, but the writeup details a serial process involving one MCU doing the FFT, then passing the results onto the second to handle the display – = ‘Parallel’?

  5. Mike bradley says:

    Not parallel processing. By this logic, every freakin system out there is multi parallel processing. Using a basic stamp to drive an LCD is then parallel processing because of the processor on the LCD glass! Two processors to blink an led, one to read the switch, the other to control segments on the glass.

    Plain and simple, duel microcontrollers. Not parallel processing, the tasks aren’t even related, one micro is a video processing. Now if two chips were working together to compute everything then yes.

    This is why I don’t stop here so much any more, the bar has been lowered so much, and titles are now done by the marketing department.

  6. John U says:

    Whenever I see people complain about lack of computrons I think back to things achieved on (now) retro systems back in the day.

    I used to have a realtime-FFT program (demo) on my Amiga, 16-bit/16MHz, one version captured (stereo) from parallel port ADC, one version played back ProTracker modules and plotted the FT. Search Aminet for “Infect Scope-PT”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 92,041 other followers