Field Guide · concept

Also known as: SDR receiver, software radio receiver, digital receiver

A software-defined receiver is the end-to-end software chain that turns the raw IQ sample stream from a radio front end into decoded data — performing tuning, filtering, demodulation, and decoding in code rather than in fixed analog or digital hardware.1 Where a classic superheterodyne set buries those steps in tuned circuits and discriminators, the software-defined receiver reads that a general-purpose CPU is fast enough to do the same arithmetic on sampled numbers, so the “radio” becomes a program you can change without touching a soldering iron.

front end software filter demod decode IQ msgs
A software-defined receiver: the SDR front end digitises; all radio work happens in software.

How it works

The boundary between hardware and software is drawn as early as the ADC allows. A tuner mixes the signal of interest near baseband, an analog-to-digital converter samples it, and from that point on the receiver is code operating on a stream of complex numbers:

  • Tune and channel-select. A digital down converter shifts the wanted channel to 0 Hz and a low-pass filter removes everything else.
  • Resample. The stream is decimated to a rate matched to the signal’s symbol rate — a handful of samples per symbol — which both shrinks the work and sizes every later stage.
  • Demodulate. The demodulator recovers the modulating quantity (frequency for FSK/C4FM, phase for PSK), producing a symbol-bearing waveform.
  • Synchronise and decode. Clock recovery slices the waveform into symbols, frame synchronization finds message boundaries, and error-correction turns symbols into bytes.

Because these stages are software, one program can host many of them at once, retune instantly, and be tested against recorded files instead of live RF.

In practice

The decisive property of a good software-defined receiver is that its decode path is rate-invariant: the DDC normalises every capture to a fixed per-protocol channel rate, so the demodulator and its loops behave identically whether the front end sampled at 2 MS/s or 10 MS/s. That lets the whole receiver be validated deterministically from IQ recordings, with no radio attached — the same bytes in always produce the same bytes out.

Relevance to SDR

The software-defined receiver is the application when you build SDR software: cheap dongles like the RTL-SDR and wideband front ends like the Airspy provide only samples, and everything that makes them a scanner, a decoder, or an ADS-B tracker lives in the receiver code. GopherTrunk is exactly such a program — a pure-Go software-defined receiver whose front end (RTL-SDR, Airspy, others) hands it IQ, and whose internal/scanner/ccdecoder down-converter, per-protocol demodulators, and framing decode P25, DMR, NXDN, TETRA and more entirely in software. Its receiver chain is the concrete instance of the abstract stages above; it demodulates and decodes clear and scrambled traffic but does not break keyed encryption, and it is a receiver only — it has no transmit path.

Sources

  1. Software-defined radio — Wikipedia, on moving receiver functions from hardware into software operating on sampled signals. 

See also