Summary
Much of how radios work can be illustrated using ideas you already understand. In our introductory course, we build on those intuitions and show how they will apply to your SDR work. At the same time, we teach you how to use gnuradio and to build your first radio flowgraphs.
Course Result
You’ll be able to use gnuradio to build basic AM and FM radios using SDR hardware. You’ll also understand how to build filters, gain stages, modulators, demodulators and more.
Prerequisites
No previous engineering or SDR knowledge is necessary – we start from the beginning.
You will not need to bring anything to the class. You will use our laptops and SDR hardware.
Description
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 our 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 our 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.
Outline
- Discuss class goals and methods
- Goals for Day 1
- Why SDR Matters
- Simple Radio Model
- Defining Signals
- Channels and Tuning
- Modulation Basics
- Slightly Less Simple Radio Model
- Analog to Digital Conversion
- ADC/DAC Parameters
- Sample Rates
- Minimum Sample Rates and Consequences of Violation
- Project 1 – Simple Number Generator
- Project 2 – Simple Arithmetic Flowgraph
- Revisit Goal of using gnuradio to demonstrate radio theory
- Project 3 – Build AM Receiver as Alien Technology
- Review components of AM Radio from 10,000 ft
- Break for Lunch
- Recap Morning Material
- Frequency – What is it?
- Sound and Your Pre-existing Intuitions
- Audio Spectrum
- Project 4 – Tone Generator
- Frequency Domain
- Project 5 – C Major Chord
- Gain
- Project 6 – Programmable Gain
- Decibels
- Filter Theory
- LPF Example
- Filter Transition Width
- Project 7 – C Major Chord Filtering (LPF, HPF, BPF, BRF)
- Project 8 (Capture the Flag) – Filter Race (Extract Voice from Noise)
- Review AM Radio Receiver – Block by Block
- File Source
- Record and Playback
- Tuning
- Project 9 – Shifting via Complex Multiplication
- Project 10 – Tuner (shift and channel filter)
- Demodulation
- Complex Numbers (very light coverage at this point)
- AM Demod Block – Audio Filter
- Resampling Theory
- Project 11 – Decimation
- Additional Challenges with Interpolation
- Project 12 – Interpolation
- Project 13 – Fractional Resampling
- Sampling Rates and Flowgraph Performance
- Project 14 (CTF) – Find and Demodulate AM Radio Message Hidden at multiple locations in RF Haystack
- Goals for Day 2
- Project 15 – Convert AM Radio to FM
- Project 16 – Optimize Flowgraph with Parameterization and Freq Xlating FIR Filter
- Project 17 – Convert Flowgraph to use SDR HW
- Terminology
- Spectrum
- RF Propagation
- Frequency Bands
- Baseband Definition
- Bandwidth versus Channel Width
- Modulation – Deeper Dive
- Project 18 – Frequency Modulation
- Project 19 – Phase Modulation
- Project 20 – Using Waterfall Plots
- Noise
- Signal to Noise Ratio
- Project 21 – SNR Measurements
- Break for Lunch
- Goals for Afternoon
- SDR Hardware
- Key SDR Specs
- Configuring the SDR
- Project 22 – SDR Receive Gain
- The DC Spike and What to Do About It
- Antenna Types
- Antenna Characteristics
- Antenna Orientation
- How Your Computer Affects SDR Work
- Noise Mitigation
- Transmission
- Project 23 – Simple Analog Transmitter/Receiver (IQ File-based)
- IQ File Naming Conventions
- Project 24 – Hardware-based, Low Power Analog Transmitter
- Project 25 (CTF) – Locate and demodulate analog mystery transmissions
- Quick Look Ahead at Digital
- Class Wrap-Up
- Suggested Next Steps for Students