Also known as: sample rate
Sample rate is how many IQ samples per second an SDR produces.1 With complex sampling, the captured bandwidth is approximately equal to the sample rate — an RTL-SDR at 2.4 MSa/s sees about 2.4 MHz at once.
How it works
The reason complex sampling captures a bandwidth equal to the rate — rather than half the rate, as the Nyquist theorem says for a single real channel — is that each sample carries two numbers (I and Q). The two channels resolve the sign of the frequency offset, so the usable window runs from −Fs/2 to +Fs/2 around the tuned centre: a full Fs wide. A real-only stream at the same rate would only span 0 to Fs/2.
Higher rates capture more spectrum but produce more data, raising CPU and USB load and risking dropped samples on a bus that cannot keep up. Because trunked systems spread control and voice channels across a band, the practical question is not “the widest possible span” but “the narrowest span that still covers every channel I need to follow.” Once a wide capture is in hand, filtering and decimation narrow it down to one channel at a much lower rate for the demodulator.
Variants
- Oversampling — running Fs well above the minimum. Oversampling eases the analog anti-alias filter’s job and, after decimation, lowers in-band quantization noise.
- Critical (Nyquist-rate) sampling — Fs set just above twice the signal bandwidth; efficient but demands sharp filters.
- Bandpass sampling — deliberately sampling a high-frequency band below its carrier so it aliases down to baseband on purpose; used by some direct-sampling and undersampling receivers.
In practice
SDR hardware only offers a discrete menu of rates set by its clock dividers — an RTL-SDR is reliable around 2.4 and 2.56 MSa/s, an Airspy runs at 2.5, 6, or 10 MSa/s, and higher-end radios reach tens of MSa/s. The rate also fixes the frequency resolution of an FFT display: finer resolution needs either a longer transform or a lower rate. GopherTrunk’s decode chain is deliberately rate-invariant: it normalises whatever capture rate the radio delivers down to the per-protocol channel rate (48 kHz for the 4800-baud C4FM family, 144 kHz for TETRA) before demodulation, so the receiver behaves the same whether fed 2.5 or 10 MSa/s.
Relevance to SDR
For trunk-tracking, choose a rate that just covers the channels you follow — not the widest possible span — and let the digital down-converter pull each channel out. A rate mismatch, or a capture whose true problem is front-end noise at a high native clock rather than the rate itself, is a common source of decode failures.
Sources
-
Sampling (signal processing) — Wikipedia, on samples per second and the captured bandwidth they represent. ↩