Learn DSP — from radio samples to decoded bits

Software-defined radio is digital signal processing wearing an antenna. This path takes the ideas the RF & SDR module introduces and shows how they become code — sampling, the Fourier transform, filters, downconversion, demodulation, and clock recovery — then maps every one of them onto the pipeline GopherTrunk runs to decode digital trunked voice.

Software-defined radio is really just digital signal processing wearing an antenna. The RF & SDR path shows you what a radio wave is; this path shows you what your computer does with it once the samples start arriving — the arithmetic that turns a stream of numbers into voice, data, and trunking control messages.

Who this is for. Anyone comfortable with the idea that an SDR hands you a list of numbers and curious about what happens next. No advanced maths is assumed — if you can follow “add these up” and “slide this along”, you can follow every lesson here. A little from the RF & SDR path helps, and we link back to it constantly, but you can start cold. Already know the DFT and just want the applied chain? Jump to DSP in GopherTrunk.

How the path works. Five units build the pipeline one stage at a time. Unit 1 turns a wave into an array of numbers. Unit 2 shows you the frequency domain — the single most useful way to look at a signal. Unit 3 is filters: keeping the signal you want and discarding the rest. Unit 4 tunes, demodulates, and recovers the data hidden in the wave. Unit 5 puts the whole chain together the way a real decoder does and maps every stage onto GopherTrunk’s actual code. Mark lessons complete as you go — your progress is saved in your browser. New here? Start with lesson 1: What is DSP?

Unit 1 — Signals as Numbers

How a continuous wave becomes an array your code can work on.

  1. What is DSP? Why we process signals with numbers instead of analog circuits, what a digital signal processor does, and where DSP sits in a software radio. beginner 8 min
  2. What is a signal? Amplitude, phase, and the sine wave that underlies everything — the vocabulary of signals before we start turning them into numbers. beginner 8 min
  3. Sampling & quantization Turning a wave into samples — sample rate, the Nyquist limit, bit depth, and the aliasing and quantization noise that come with digitizing. beginner 10 min
  4. Complex signals & I/Q Why SDRs carry signals as complex I/Q pairs, what the imaginary part really means, and how negative frequency becomes a useful, everyday idea. intermediate 10 min
  5. Decibels & dynamic range Why signal levels are measured in decibels, how dB math turns multiplication into addition, and what dynamic range means for a sampled signal. beginner 9 min

Unit 2 — The Frequency Domain

Seeing a signal as its component frequencies — the Fourier view.

  1. The Fourier transform The single idea that any signal is a sum of sine waves — what the transform computes, and why the frequency domain makes filtering and detection easy. intermediate 10 min
  2. The FFT in practice How the Fast Fourier Transform makes the DFT computable in real time, bin resolution, the time-vs-frequency tradeoff, and what a waterfall really shows. intermediate 10 min
  3. Windows & spectral leakage Why chopping a signal into blocks smears energy across bins, and how window functions trade resolution for cleaner spectra. advanced 9 min
  4. Spectrograms & the STFT The short-time Fourier transform — sliding the FFT along a signal to see how its spectrum changes over time, the math behind a waterfall. intermediate 9 min
  5. The analytic signal & Hilbert transform How a real signal becomes complex I/Q in the first place — the Hilbert transform, the analytic signal, and why it removes the negative-frequency mirror. advanced 10 min

Unit 3 — Filters

Selecting the signal you want and throwing away the rest.

  1. Convolution & impulse response The operation at the heart of every filter — what an impulse response is, and how sliding-and-summing in time equals multiplying in frequency. advanced 10 min
  2. Filter design basics Passband, stopband, transition width, and ripple — the specification you hand a filter designer, and how those choices trade off against each other. intermediate 9 min
  3. FIR filters Finite impulse response filters — taps, linear phase, and how to design a low-pass filter to isolate one channel from a wideband capture. intermediate 10 min
  4. IIR filters Infinite impulse response filters — feedback, poles and zeros, far fewer taps, and the stability and phase tradeoffs that come with them. advanced 9 min
  5. Decimation & resampling Changing sample rate without aliasing — decimation, interpolation, and rational resampling — how an SDR narrows 2.4 MS/s down to a 48 kHz channel. intermediate 10 min
  6. Matched filters & pulse shaping Root-raised-cosine filters, the Nyquist no-ISI criterion, and why a matched filter at the receiver maximizes SNR right where symbols are decided. advanced 10 min

Unit 4 — From Signal to Bits

Tuning, demodulating, and recovering the data hidden in the wave.

  1. Mixing & downconversion Multiplying by a local oscillator to shift a signal to baseband — the digital downconverter (DDC) that centres a channel before it is decoded. intermediate 10 min
  2. Demodulation in code Recovering the message from a carrier — AM, FM, and phase demodulation as arithmetic on I/Q samples, and how C4FM voice starts to appear. intermediate 10 min
  3. Clock & symbol recovery Finding where each symbol begins when you have no shared clock — timing error detectors, interpolation, and the loop that locks onto the data rate. advanced 11 min
  4. Carrier & frequency recovery Correcting the frequency and phase offset between transmitter and receiver — the PLL and Costas loop that lock a carrier before symbols can be read. advanced 10 min
  5. Gain & automatic gain control Keeping a signal at a usable amplitude as it fades — how an AGC loop works and why the demodulator needs stable levels to decide symbols correctly. intermediate 9 min
  6. Constellations & symbol mapping Reading digital modulation as points on the I/Q plane — how PSK and QAM map bits to symbols, and what a constellation diagram tells you. intermediate 10 min
  7. Equalization & multipath Why reflections smear symbols together and how an equalizer undoes a channel's distortion — the filter that adapts to clean up inter-symbol interference. advanced 10 min

Unit 5 — Signal Quality & Coding

Measuring how well a decode is working, and the coding that protects the bits.

  1. SNR, EVM & BER The three numbers that measure a digital link's health — signal-to-noise ratio, error-vector magnitude, and bit error rate — and how they relate. intermediate 9 min
  2. The eye diagram Overlaying symbol periods into an "eye" — how to read timing margin, noise, and inter-symbol interference at a glance from one picture. intermediate 8 min
  3. Error correction & framing How raw symbols become trustworthy data — sync words, framing, interleaving, and forward error correction that fix bit errors before decoding. advanced 10 min
  4. Real-time processing & buffering Block processing, ring buffers, latency, and keeping up with the sample stream — the engineering that makes DSP run live instead of offline. advanced 9 min

Unit 6 — DSP in Practice

Put the whole chain together the way a real decoder does.

  1. DSP in GopherTrunk A walkthrough of GopherTrunk's real signal path — capture, downconvert, filter, demodulate, recover symbols — mapping each stage to the lessons you just learned. advanced 11 min
  2. Testing & debugging DSP Golden vectors, offline replay of captures, and the invariants that catch a broken signal path — how you prove a decoder actually works. advanced 10 min
  3. Fixed vs floating point & performance Why real-time DSP cares about how numbers are stored, the tradeoffs of fixed vs floating point, and simple ways to keep a sample pipeline fast. advanced 9 min
  1. Glossary of DSP terms Plain-language definitions for every DSP term in the path — sample rate, Nyquist, I/Q, FFT, FIR, IIR, decimation, mixing, AGC, symbol recovery, and more — cross-linked to the lessons.