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.

[youtube=http://www.youtube.com/watch?v=qaiK_UoDqJw&w=470]

[youtube=http://www.youtube.com/watch?&v=9dBX1sY3pYI&w=470]

12 thoughts on “Building A Spectrum Analyzer With Parallel Processing

  1. 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’?

    1. It’s considered parallel because one processor is gathering data at the same time another is managing video … parallel doesn’t always mean ‘identical tasks at the same time.’

  2. 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.

  3. 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 to Mike bradleyCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.