Roll Your Own SSB Receiver

[Paul Maine] was experimenting with GNU Radio and an RTL-SDR dongle. He created an SSB receiver and, lucky for us, he documented it all in a video you can see below. He walks through how to generate SSB, too. If videos aren’t your thing, you can go back to the blog post from [Gary Schafer] that inspired him to make the video, which is also a wealth of information.

There is a little math — you almost can’t avoid it when talking about this topic. But [Paul] does a good job of explaining it all as painlessly as possible. The intuitive part is simple: An AM signal has most of its power in the carrier and half of what’s left in a redundant sideband. So if you can strip all those parts out and amplify just one sideband, you get better performance.

We love to play with GNU Radio. Sure, the GNU Radio Companion is just a fancy shell over some Python code, but we like how it maps software to blocks like you might use to design a traditional receiver.

If you want to try any of this out and don’t have a sufficient HF antenna or even an HF-capable SDR, no worries. [Paul] thoughtfully recorded some IQ samples off the air into a file. You can play back through your design to test how it works.

If you have never used GNU Radio, starting with audio isn’t a bad way to get your feet wet. That’s how we started our tutorial a decade ago. Still worth working through it if you are trying to get started.

3 thoughts on “Roll Your Own SSB Receiver

    1. Gnuradio is doing most of the work at that level already.

      From their wiki: “GNU Radio uses Python as a scripting language, not (usually) for runtime signal processing (see the question on Python blocks, too). All of GNU Radio blocks and the scheduler are written in C++. We export the interface into Python to allow us to use that as a scripting language to make it easy to put flowgraphs together. At runtime, Python gets out of the way unless you’ve programmed something yourself in Python, which is common for user interface, controls, and interaction. “

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.