Before this:IQ data & complex signals
Sample rate, bandwidth & Nyquist
Key takeaways An SDR’s sample rate (samples per second) sets how much spectrum it captures at once: with IQ sampling, captured bandwidth ≈ sample rate. The Nyquist theorem is the rule behind this — sample too slowly for the bandwidth and signals alias (fold back to the wrong frequency). Higher sample rate = more spectrum but more data, more CPU, more USB load. For trunk-tracking you want just enough rate to cover the channels you follow — not the widest possible span.
You know the SDR streams IQ samples. How wide a slice of spectrum do those samples represent, and how fast must they come? That’s this lesson — and it directly sets one of the few numbers you’ll configure.
Sample rate and what it buys you
The sample rate is how many IQ samples per second the ADC produces, in samples/second (Sa/s) or, loosely, “MHz.” Its headline effect is simple:
With complex (IQ) sampling, the captured bandwidth is approximately equal to the sample rate.
So an RTL-SDR at 2.4 MSa/s shows you about 2.4 MHz of spectrum at once, centred on whatever frequency the LO is tuned to. Want to see more than that span? Raise the rate (within hardware limits) or retune the centre frequency to a different chunk.
The Nyquist theorem, plainly
The Nyquist theorem is the law underneath that rule of thumb. In its general form: to represent a signal faithfully you must sample at least twice its highest frequency. For SDRs doing IQ sampling, the practical takeaway is the one above — usable bandwidth ≈ sample rate. Try to capture more bandwidth than your sample rate supports and the information doesn’t just vanish; it corrupts your data through aliasing.
What is aliasing?
Aliasing is when energy outside the bandwidth your sample rate can represent gets folded back into your captured spectrum, showing up at a wrong frequency. It can look exactly like a genuine signal — a phantom that isn’t really there (or is really somewhere else).
SDR front ends include anti-aliasing filtering, and choosing an adequate sample rate keeps real signals safely inside the usable window. The edges of that window can be less clean, so it’s common to keep your target a little away from the very edge.
The bandwidth vs. CPU trade-off
It’s tempting to crank the sample rate to “see everything,” but more bandwidth has costs:
| Higher sample rate | Consequence |
|---|---|
| More spectrum captured | Good — more channels at once |
| More samples/second | More USB bandwidth (can cause dropped samples) |
| More data to process | More CPU for FFTs, filtering, demod |
| Cheap-tuner edge quality | Wider spans expose front-end limits |
GopherTrunk takes a wide IQ stream and channelises it — digitally filtering and decimating out each narrow channel it needs. So the question isn’t “how wide can I go” but “how wide do I need.”
Worked example. Suppose a system’s control channel is at 851.0 MHz and its voice channels span up to 853.4 MHz — a 2.4 MHz spread. Centre an RTL-SDR at 852.2 MHz and run it at 2.4 MSa/s: the whole system fits in one capture, with no retuning. Each 12.5 kHz channel is then filtered out and decimated down to perhaps 24 kSa/s — a 100× reduction — before demodulation. That’s the magic: you sample the band fast, but each channel slowly, so a modest CPU can follow many at once.
Choosing a sample rate for trunk-tracking
A trunked system’s control channel and its voice channels may be spread across some span of a band. You want a sample rate (and centre frequency) that covers the channels you actually follow, with a little margin, and no more:
- If all your channels fit within ~2 MHz, an RTL-SDR’s 2.4 MSa/s is plenty.
- If they’re spread wider, you may need a wider-bandwidth radio (Airspy) or a second dongle covering another chunk.
- Avoid maxing the rate “just in case” — it risks dropped samples and wastes CPU you could spend decoding more calls.
The Hardware guide lists practical rates per radio.
Quick check: an RTL-SDR runs at 2.4 MSa/s. Roughly how much spectrum does it capture at once?
Recap
- Sample rate ≈ captured bandwidth for IQ sampling.
- Nyquist is the rule behind it; under-sampling causes aliasing (false signals).
- Higher rate = more spectrum but more USB/CPU load and possible dropped samples.
- For trunk-tracking, pick a rate that just covers your channels, with margin.
Next: the setting people get wrong most — gain — and how to avoid overloading the ADC.
Frequently asked questions
How much spectrum can an SDR capture at once?
With IQ (complex) sampling, the captured bandwidth roughly equals the sample rate. An RTL-SDR running at 2.4 million samples per second captures about 2.4 MHz of spectrum at once. To see or decode signals across a wider span you either raise the sample rate (if the hardware allows) or retune to a different centre frequency.
What is the Nyquist theorem in simple terms?
The Nyquist theorem says you must sample at least twice as fast as the highest frequency you want to represent, or you lose information. For SDRs using IQ sampling, the practical version is that the usable bandwidth is about equal to the sample rate. Sample too slowly for the bandwidth you’re capturing and signals fold back as aliases.
What is aliasing?
Aliasing is when a signal outside the bandwidth your sample rate can represent gets “folded” back into your captured spectrum, appearing at the wrong frequency. It looks like a real signal but isn’t where it seems. Anti-aliasing filtering and choosing an adequate sample rate prevent it.
Does a higher sample rate always help?
No. A higher sample rate captures more spectrum but produces more data, so it uses more USB bandwidth and more CPU to process. For trunk-tracking you only need enough sample rate to cover the channels you’re following. Capturing a huge span you don’t use just wastes CPU and can stress the hardware.