September
1998, Issue 98
PIC'Spectrum
Audio
Spectrum Analyzer
by
Robert Lacoste
Sure,
a DSP can make the calculations and generate the pixel
bitmap for an audio spectrum analyzer, but at what
cost? Robert gets the same result from a single PIC
processor with a design so good he walked
away with a Design98 first prize.

I
remember being quite astonished when one of my professors
explained the basics of frequency domain analysis, "Every
periodic signal is the sum of pure sinusoidal signals,
with given frequencies, amplitudes, and phases."
Hmm
every
signal. That includes the light coming from the sun,
the vibrations of my old car, even the tears of my two-month-old
baby!
And,
I bet that 99% of INK readers are like me. You
want to understand, and you understand it better if
you make it yourself.
So,
years ago, I quickly wire-wrapped an analog acquisition
board and wrote a small BASIC program on my old Apple
II to display the frequency decomposition of an incoming
audio signal. It was my first audio spectrum analyzer.
Later, I did the same on my PCs, and the x86s
were soon powerful enough to get real-time performance.
Using
a PC is OK, but how about an autonomous device? Something
small enough to bring along anywhere but that has a
VGA video output with a decent quality image and real-time
refreshes.
My
first idea was something like the block diagram in Figure
1a. An amplifier and low-pass filter suppress out-of-the-band
signals before the signal goes to an ADC, which transforms
it into numerical samples.
|

Figure 1aHeres
a classic block diagram for a spectrum analyzer.
The signal is amplified and low-pass filtered
before going to an ADC. A DSP calculates the
FFT and drives the VGA screen through a video
controller.
|
A
DSP can calculate the frequency decomposition of this
signal with the classic Fast Fourier Transform (FFT)
algorithm and generate the pixel bitmap in video RAM,
which is displayed by a CRT controller chip.
Youd
need a fair amount of computing power, but is it possible
to do the same with a simpler design? How about a high-end
microcontroller? INKs Design98 contest
presented a great opportunity to try it with one of
the newer Microchip devicesthe PIC17C756.
This
chip has enough horsepower not only to do an FFT in
real time but also to eliminate the CRT controller.
The video output can be made with some general-purpose
parallel output lines, and the software toggles the
corresponding bits to generate the video synchronization
and color signals in real time.
With
this controller, the block diagram of my logic analyzer
(shown in Figure 1b) is, well, as simple as possible.
PICSpectrum is born!
|

Figure1bThe
PICSpectrum block diagram is much simpler.
The microphone signal is amplified and low-pass
filtered and goes directly to the PIC, which
calculates the FFT and directly generates the
video. Its all in the software.
|