This past summer I bought an RTL-SDR dongle. If you’re not familiar, it’s a software defined radio (SDR) module that is typically used for TV and radio tuner cards in computers. Well, the cool thing about this chipset is you can get more than just radio and TV! In fact, you can get anything 20 kHz to about 1GHz!
Traditional radios are hardware based, either analog or digital, intended and tuned for one specific frequency range or band. What’s cool about software defined radio is, the raw signal is sent from the radio and is processed by the computer. The CPU does all the heavy lifting, and as a result, you can do very interesting things for very cheap!
I started out with a program called SDR#, it allows you to tune to a frequency range and see the radio spectrum in real time, with both a FFT graph as well as a waterfall view of that FFT. Here’s what it looks like tuned to FM 102.1
What’s even cooler, is I can pick up the radio signals from anything… My car fob, police/fire radio, garage door openers, the radio signals that control the railroad signals, GPS, and so on.
I also got the Hack-RF, a half duplex SDR transceiver. It can receive and transmit from 20 kHz up to 6 GHz! I’m also just getting started with a program called GNU radio. Very powerful, open source, allows you to do a lot of cool things. I made this basic FM station in less than an hour, and it can be tuned to any frequency!
That small flow chart, made in the GNU Radio companion program, gets converted to python code. It makes the development of radio programs much faster and easier. And it has all of the basic DSP and radio modules built in, modulation, demodulation, FFT, complex resampling, etc. Anything you could ever want to do.
It’s been a great way to get familiar with DSP, something I’ve been thinking about going to grad school for.