On This Page

Introduction to Software Defined Radio - Starting from Scratch

Paul Clark | August 4-5


My brother and I co-authored the Field Expedient SDR book series and have taught SDR to students who possessed widely varying degrees of proficiency. Based on these experiences, we believe that it takes four days of training for a newcomer to become proficient building analog and digital radios with gnuradio and SDR.

This course comprises the first half of that four days, and is for those who have no prior experience with SDR or have gotten stuck trying to learn via online tutorials. Combined with my second course, this solid foundation better enables InfoSec professionals to put SDRs to work detecting, intercepting and analyzing wireless vulnerabilities. This foundation is also useful for building digital transmitters to exploit RF vulnerabilities or to exfiltrate data.

As with my book series, this class avoids highly mathematical engineering lectures and focuses on teaching through 25 practical, hands-on exercises. Though we avoid the heavy math, we will carefully and methodically study digital radio design so that you can build your own gnuradio flowgraphs with confidence when needed.

We start off the class with a 10,000 foot view of radios, signals, tuning and modulation - just enough to get a basic idea. We then move to Analog to Digital Conversion and its reverse, Digital to Analog Conversion. We don't cover these these topics exhaustively, but rather focus on their importance to the SDR world.

Armed with these basic concepts, we next dive into how gnuradio works: flowgraphs, sources, sinks, blocks, etc. We build a few simple flowgraphs to see these elements in action.

Next, we build an AM radio receiver, using a data file as input rather than SDR hardware. Most of this radio doesn't make sense yet, but the process of building it further hones our gnuradio abilities. As we progress in this class, we can also refer back to this radio to illustrate key concepts.

We then spend a while talking about the Frequency Domain, FFTs, filters, gain and decibels. Because filters are an incredibly important tool, we work through several different projects to solidify our expertise.

Then we turn our attention to tuning, another concept that applies to nearly every radio you can build. In a series of exercises, we work through frequency shifting and channel filtering. Next, we learn about amplitude modulation in more detail, followed by sampling rate changes such as decimation and interpolation.

After fully delving into all the details of our AM receiver, we convert it to an FM receiver, noting the similarities and differences. We also clean up our flowgraph, employing a number of gnuradio best-practices. Finally, we get rid of the input data files we've been using and operate our flowgraph using real SDR hardware.

We next spend some time going over essential radio and SDR terminology: spectrum, propagation, frequency bands and baseband. We also work through projects showing how each of the three basic modulation types work: amplitude, frequency and phase. We also spend a fair amount of time talking about noise, including the computation of signal-to-noise ratio and how to mitigate noise in real-world systems.

There are a number of issues to consider when using SDR hardware to transmit and receive signals, and we learn about antenna selection, SDR hardware specs, SDR hardware configuration, the DC spike and more. Finally, we're ready to transmit and receive a number of analog signals at very low power as a capstone to everything we've learned.

Thanks to gnuradio's excellent simulation capabilities, we'll work through a number of our projects without plugging in any SDR hardware. This will result in cleaner and more deterministic exercises, but we won't stop there. We'll also build and operate the key designs in hardware to build experience working through the kinks that invariably occur in real-world projects. To keep things entertaining, a few of our projects will be competitive, Capture the Flag-style exercises.

When you've finished the class, you'll understand a host of key radio concepts, such as the sample rates, the frequency domain, filters, modulation, bandwidth, propagation, decimation, interpolation and much more. You'll also be proficient in using SDR hardware, knowing how to configure the SDR as well as they type of antenna to use. Armed with this knowledge you'll not only be able to build analog receivers and transmitters, you'll know how they work. Finally, your new SDR foundation will prepare you for understanding and implementing the myriad of SDR resources you find online.

Who Should Take this Course

SDRs are powerful and flexible tools for detecting, analyzing and exploiting vulnerabilities in wireless systems. Before you can successfully work with SDRs, however, you must have a firm foundation in the basics. This class is for those who are new to SDR, or who have struggled to get past internet cookbooks and tutorials.

Student Requirements

No previous engineering or SDR knowledge is necessary - we start from the beginning.

What Students Should Bring

You will not need to bring anything to the class. You will use our laptops and SDR hardware.

What Students Will Be Provided With

You'll take home a set of three books from the Field Expedient SDR series to further your understanding at home. You'll also get a USB thumb drive containing the projects and example files we work on in class.


Paul Clark is owner and chief engineer at Factoria Labs, an organization dedicated to the propagation of Software Defined Radio (SDR). He has experience ranging from chip design to firmware development to RF reverse engineering. He's co-author of the Field Expedient SDR series, has spoken at ShmooCon and taught SDR classes at the Wild West HackinFest.