Field Guide · term

Also known as: decimation

Decimation reduces a signal’s sample rate by keeping only every Nth sample, after a low-pass filter removes the frequencies that would otherwise alias.1 The integer N is the decimation factor; the pair “low-pass then downsample” is treated as one operation.

high rate keep every 4th (÷4) low rate
Decimation lowers the sample rate after filtering, cutting the data the rest of the pipeline must process.

How it works

Downsampling by N lowers the sample rate to Fs/N, which drops the Nyquist frequency to Fs/2N. Any energy that was between the new and old Nyquist limits does not disappear — it folds down onto the surviving band as an alias. So the order is non-negotiable: filter first, then decimate. The low-pass stage confines the signal to the new, narrower band before the samples are thrown away, so nothing folds back. Skipping or under-designing that filter is one of the most common DSP mistakes, and it manifests as noise or phantom carriers that no later stage can remove.

Once a narrow channel has been isolated, decimating cuts the workload of everything downstream in direct proportion — halve the rate and you halve the multiply-adds per second in the demodulator, the timing recovery, and the decoder. This is why decimation, not raw CPU speed, is what makes running many channels from one wide capture practical.

Variants

  • Cascaded (multistage) decimation — a large factor is split into smaller stages (e.g. ÷2 several times). Each early stage runs a short filter at a high rate and a heavier filter runs last at a low rate, drastically cutting total computation.
  • Half-band filters — the efficient choice for ÷2 stages: nearly half their coefficients are zero.
  • CIC filter — a multiplierless integrator-comb structure for very large decimation factors in FPGAs and radio ASICs; needs a corrective FIR afterward to flatten its passband droop.
  • Polyphase decimation — restructures the filter so it only computes the output samples that are kept, never wasting work on discarded ones.

In practice

Non-integer rate changes need a resampler (interpolate, filter, decimate), since plain decimation only divides by an integer. In GopherTrunk decimation lives inside the digital down-converter: after the NCO shifts a channel to baseband, the signal is low-pass filtered and decimated down to the per-protocol channel rate (48 kHz for 4800-baud C4FM, 144 kHz for TETRA), so the demodulator always runs at a fixed, low rate regardless of the capture rate.

Relevance to SDR

Decimation is what makes running many channels from one capture computationally feasible, and it is the reason GopherTrunk’s decode path is rate-invariant to the radio’s capture rate.

Sources

  1. Decimation (signal processing) — Wikipedia, on filter-then-downsample and anti-alias requirements. 

See also