A Simple Spectrum Analyzer


Glen Gardner



For some time I had a 20 MHz filter from an old spectrum analyzer laying in my junk box. It occurred to me that if I had the right components that I might be able to make a nice spectrum analyzer rather easily. During a brief conversation with Diane Bruce (VA3DB), she suggested that It might be cheaply done by building it as an add-on adapter for an oscilloscope. I rather liked the idea so I thought I would give it a try, and the end result was rather good.

This is a swept-filter spectrum analyzer. Basically, RF and swept oscillator signals are fed to a mixer and the output of the mixer is passed through a highly selective crystal filter. In this case the filter is resonant at 20 MHz and is 1 KHz wide at the 6 dB points. The RF output of the crystal filter is then passed through a high gain logarithmic amplifier based on the AD8307 log amp integrated circuit made by Analog Devices. The output voltage of the log amp is then passed to the vertical input of an oscilloscope, and a trigger signal at the beginning of each sweep is provided to the oscilloscope's trigger input from the swept frequency synthesizer.

The swept local oscillator board is a design of my own. It is a high performance frequency synthesizer based on an AD-9951 DDS chip , also from Analog Devices, and features a precision TCXO, a DSPIC33FJ128MC804 microcontroller, CAN bus, RS-232, and clocking at 400 MHz. A 100 MHz low pass filter was added to the output of the synthesizer board to help assure spectral purity. In order for this to work with my oscilloscope (a Tek TDS2012) I had to provide a trigger signal for the oscilloscope. I achieved this by borrowing an otherwise unused I/O line and programming the synthesizer to provide the appropriate 3.3V logic trigger signals (logical 1 at sweep start, logical 0 at sweep end).

The mixer is a ZAD-6+ diode ring mixer made by Minicircuits, and is rated for operation from 3 KHz through 100 MHz.

A bit of gain was needed to make the spectrum analyzer sufficiently sensitive to drive the log amplifier to a level high enough to easily resolve signals from the antenna on an oscilloscope. I added a 100KHz-30MHz 24 dB gain preamplifier made by AR^2. This arrangement was plugged into my RX distribution preamplifier (18 dB gain) which is connected directly to a 32-inch magnetic loop antenna used to cover most of the HF spectrum. A 30MHz low pass filter was added between the preamplifier output and the mixer RF input to suppress unwanted image responses. With this setup, the noise floor of the spectrum analyzer came out to about -106 dBm.

The logarithmic amplifier board was designed and built directly from the information provided by Analog Devices in the specification sheet for the AD8307. It worked exactly as specified, and there were no surprises encountered in the construction. BE SURE to pay careful attention to grounding and shielding of the log amp as it is extremely sensitive and it really needs to be shielded from stray noise. This is not an option. The board for the log amp was laid out as a two layer board, with the bottom side acting as a ground plane, and the routing layer on the component side. Decoupling capacitors of 0.1 uF and 1.0 uF were applied generously to the supply lines near each integrated circuit. The output of the AD8307 was buffered with an LMV931 rail-to rail operational amplifier integrated circuit operating in a unity gain configuration. Both the AD8307 and LMV931 operate from an on-board LM78L05 5VDC voltage regulator.

To control the DDS synthesizer board , a general purpose controller board with interfacing for panel switches, optical shaft encoders, serial LCD display support, CAN bus, and RS-232 was used. This is the same controller board which I used in my HF transceiver, and several other radios built by myself. Communications with the DDS synthesizer board is established using the CAN bus.

The software for the DDS synthesizer board and for the controller board was written by myself using the CCS PCD compiler in the C programming language (the source code is not available).

The front panel controls are fairly simple. The two-position toggle switch allows the user to adjust the step of the tuning knob, and to selectively adjust the frequency hop, start frequency, and frequency span of the spectrum analyzer. The LCD displays the pertinent information and also displays the center frequency of the swept frequency range, as a convenience.

With the default hop of 500 Hz, the spectrum analyzer will complete nearly 20 sweeps per second for a 70 KHz span. When lower sweep speeds are desired reducing the hop to something less than 500 Hz will produce proportionally slower sweeps, which are useful for resolving RTTY and SSB signals. For CW signals, a 500 Hz or 1KHz hop setting seems to work well. A hop setting of greater than 1 KHz is effectively useless, given the one-kilohertz bandwidth of the crystal filter. Increasing the span from the default of 70 KHz also has the effect of lowering the sweep speed.

The picture of the oscilloscope display at the top of this web page was captured on the 40 meter ham band in the evening. It is centered on 7.035 MHz at 7 KHz per division horizontal resolution (70KHz span, 500Hz hop), and 5 dB per division vertical resolution with an estimated noise floor of about -106 dBm.