I've been reading a lot about receivers, and it sounds like one important thing is filtering. It makes sense too - simple receivers can suffer from front end overload due to a strong signal.  And when on the ham bands, you never know where that strong signal may be - it could be someone driving down the road (which is a bit obvious once you see it), but in my neighborhood, if you don't know me, you're probably not going to know about the antennas in my attic.

I don't have a spectrum analyzer, and since I'm a traffic engineer, I really don't have access to one.  I don't need a full-blown spectrum analyzer, either, I just need to sweep through the HF band and get the difference between signal input and output.  Math will take care of the rest.

dB=20*\log{\frac{V_{out}}{V_{in}}

The way I figure it is this:

An Arduino (and this could become a Raspberry Pi or any number of other devices, but I'm going to use an Arduino because it's cheap and relatively durable) controls a direct digital synthesizer (DDS) module that just scans through it's limits... well, probably something like 0.5 MHz - 40 MHz - that gets me into the AM broadcast band (which can be a source of strong signals) to above the 10m band (I don't know what's up there, but whatever's there is probably not running 50,000 watts).

The output of the DDS would have an RF voltmeter and a probe to go to a filter.  There would be another RF voltmeter to sense a filter output.  The Arduino would handle not only control, of the DDS, but also sensing the voltage.

It'll look something like this:

This is a block diagram/schematic of how this will work. I didn't include the DDS module, which would be tied in there somewhere.

This is a block diagram/schematic of how this will work. I didn't include the DDS module, which would be tied in there somewhere.

The Arduino and DDS will look like this:

Arduino Diavolino and a home-built shield

There will have to be a companion app to this.  In Java (not just because I'm drinking coffee, but also because it's cross-platform).  It'll look like this:

This is likely how things would look.  Simple.  A button that tells the Arduino to sweep, and some other important buttons.

This is likely how things would look. Simple. A button that tells the Arduino to sweep, and some other important buttons.

I have the perfect item to test with also.  One thing I built and don't use (and never truly finished) was my Softrock RXTX.  I need to build a filter for the output to keep the harmonic of the 7 Mhz fundamental from being too strong on the 20 meter band.  I wound the coils while watching the Super Bowl-over-the-Broncos and printed a circuit board just before the game started.

Easy and small, but for 0.95 Watts, you don't really need much.

Easy and small, but for 0.95 Watts, you don't really need much.

I'm not really sure if this will work, but it certainly seems like it would, and I think it would be interesting to see how some filters respond on this compared to a real spectrum analyzer.

-73-


Category: Arduino

About the Author

Andrew is the owner of this blog and enjoys computer programming, building things, and photography. He's a pretty busy guy, which explains why updates to this blog are so infrequent.

3 Responses to New Arduino Project: Spectrum Analyzer?

  1. Russ, WB8ZCC says:

    Wow, that's a pretty ambitious project. A spectrum analyzer is not a trivial thing... here's a link with some good info if you need it:

    http://www.home.agilent.com/en/pc-1000000520%3Aepsg%3Apgr/spectrum-analyzer-signal-analyzer?&cc=US&lc=eng

    Good luck!


This is the new server