My SDR – Results

I’ve had the SDR system up and running for a few days and I’ve been very pleased with the overall performance. I used a piece of half inch PVC pipe to construct a very rudimentary dipole about 4 ft tall. I don’t have the ability to mount this antenna any place so it is just leaning up against the wall. The dipole is connected directly to the ADC without any preamp or even a balun.

I created a basic QT program to help facilitate data collection. The figure below shows the main program screen. This program allows me to quickly manipulate many of the ADC and analog front end parameters as well as parameters in the data processing (e.g. IQ frequency, bit selection, etc…).

QT Main Screen

Once the data has been streamed to the computer, it is then pushed into a Matlab workspace, and a configurable script is evoked. The figure below shows a screen shot of this script. In general I prefer to do as much as I can in C++ with either my own coding or something like Intel’s Math Kernel Library, however, the script gives me the ability to dynamically reconfigure my signal processing as well as take advantage of Matlab’s routines and displays.

QT Matlab Script

I’ll detail two of the more interesting signals I was able to receive. The first is a local AM radio station with both an audio band and an HD Radio band. The second is the NIST time signal station, WWV at 10 MHz.

AM Radio Station

The spectrogram below shows the signal received from a local AM radio station at 830 KHz.

You can clearly make out the voiceprint between +-5KHz of the carrier. You can also see the HD Radio spectrum between 10 to 15 KHz and 34 to 39 KHz. HD, in this case, refers to Hybrid Digital not High Definition, and transmits digital information along with the analog signal. I was hopeful I’d be able to decode this OFDM modulated bitstream but it appears the details of this encoding and modulation are proprietary. A company Ibiquity requires you to license their IP to build any sort of a demodulator. This seems a little sleazy since these signals are being transmitted on public airwaves. There is an alternative data transmission scheme used in some parts of the world called DRM. This is an open source transmission scheme that claims to be just as effective as HD Radio. It would be nice to see something like this gain more acceptance.

I used a an envelope detector to recover the voice signal from this data. The time series from a few seconds worth of data is shown below.

Voice SignalThe audio of the demodulation can be heard here. One thing I’d like to do is look at the gain in the overall SNR when I demodulate with envelope detection vs. coherent detection.

WWV Atomic Clock

The second interesting source I looked at was the NIST time signal from Colorado. This signal is transmitted at a number of frequencies, I listened to the signal transmitted at 10 MHz. The plot below shows the normalized spectrum of the received signal. You can see not only the signal of interest but also the nice uniformity of the compensation filter.
WWV Spectrum
Not only was I happy to be able to receive such a distant signal, this particular signal has some data modulated on the carrier. On a 100 Hz subcarrier is a low rate (1 bit/second) data stream detailing the timing information. The figure below of the baseband data stream.

100 Hz Bit StreamThere is some VERY low frequency modulation present on the envelope but it’s still possible to recover the data. The length of the 100 Hz carrier determines the value of each bit. If the carrier is present for 200 ms the bit is a zero, 500 ms the bit is a 1, and 800 ms the bit is a marker bit. You can see a marker bit at the 7 second mark in the closeup plot below. This marker corresponds to the 39th second after the previous minute mark.

Bit Stream Closeup

This station transmits quite a bit more information in addition to the 1 bit/second data stream. Each minute there is some sort of audible announcement. Usually it is just a man telling you the current time at the mark, but sometimes there are updates on the GPS constellation of satellites, weather warnings, etc… You can listen to the audible announcement, collected at the same time as the above bit stream, here.


There are a number of free programs available for interfacing to SDR systems. Many of these systems rely on the sound card to get the baseband signal onto the computer. A few systems allow for control over an external system such as this. One of these programs is Winrad. Winrad offers the ability to load a DLL which contains a set of standard functions for interfacing with your own custom hardware. These functions allow Winrad to communicate that the user wants to change certain parameters and also allows the hardware to stream data to Winrad for processing. Once in Winrad, you can listen to different frequencies with various modulation schemes. It’s a really convenient tool and would recommend it to anyone playing around with a software defined radio.
Below I show a screen grab from the same AM radio station as above.
Winrad Screen GrabAt the top you can see a waterfall plot of the signal. You can again see the audio signal around the carrier with the digital information in the bands +-10 KHz from the carrier. The light blue region in the middle plot shows the band which is being demodulated and played out the speakers. This can be dragged and dropped to various locations within the band to inspect different signals. The passband of this filter can also be dynamically adjusted for the best audio signal.

Something interesting I noticed while playing around with this system was the effect of the earth ground. The signals above have all been collected while attaching the system ground to the earth ground. If I remove the earth ground connection, I’m still able to receive signals but they are significantly degraded. The screen shot below shows the same station as above but with the earth ground removed.

No Earth Ground Connection

Future Work

There are a couple of things I would like to do with this system. The first would be to make a basic preamp to help buffer and amplify the signal from the antenna. I’m able to receive local stations and powerful distant stations, but I’d like to see what this system could do with an appropriate analog front end. I’d also like to make the decimation software selectable. This is an almost trivial change since I have more than enough transmission bandwidth with the GbE. I’ll just need to modify the CIC core and be sure I select the appropriate range of bits at its output.

The other thing I’d like to do is to take advantage of the other 7 channels on the AFE5801 and create a basic phased array receiver. At the range of frequencies available right now, it would be difficult to spread the antennas far enough to have any sort of meaningful effect as a phased array. Because of the analog front end built into this chip I can’t undersample a signal, but if I could build a simple mixer with a DDS chip I could begin to look at higher frequency signals. I wouldn’t need to move too high before I could construct an array with a sufficiently spaced baseline to do some meaningful array processing.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>