Harvey Mudd College
No video for this lesson. Lessons 24–38 were drafted in October 2026 with the help of an AI assistant (Claude) in the spirit of the lessons above, and tested on the same RTL-SDR / PlutoSDR / B210 setup. They are less polished than the video lessons; corrections and pull requests are welcome.
Everything in Lessons 12–36 is in a modern standard, usually all at once. DVB-S2 (digital satellite television, also used for data links) is a good example because GNU Radio ships its complete transmitter. The flowgraph sends fake MPEG transport-stream packets through it:
The receiver side is our own chain from Lessons 17–19 (AGC, FLL, Symbol Sync, Costas loop). Because the scrambling only rotates symbols by multiples of 90°, the result is a clean QPSK constellation. (The GNU Radio modulator emits its symbols with a zero sample between them, i.e. already at 2 samples per symbol, which is why the pulse-shaping filter is an ordinary FIR filter rather than an interpolating one: filtering fills in the zeros, Lesson 6.) Decoding the frames themselves needs the gr-dvbs2rx out-of-tree module; with it, or with any satellite-TV receiver chip, this signal is a valid DVB-S2 transmission.
gr-dvbs2rx.lesson38_DVBS2_Pluto_to_RTL.grc
Running over the air: the DVB-S2 spectrum at the RTL-SDR and the QPSK constellation after our Lesson 17-19 receiver:
All GNURadio flowgraphs are at https://github.com/gallicchio/learnSDR