Also known as: digital down-converter, DDC
A digital down-converter (DDC) shifts a chosen channel within a wideband IQ stream to baseband using a numerically controlled oscillator (a software local oscillator), then filters and decimates it.1 It is the software realisation of a mixer, IF filter, and rate reduction, all in arithmetic.
How it works
Three stages run in sequence. First, mix: an NCO generates a complex tone rotating at the negative of the channel’s offset from the capture centre, and multiplying the IQ stream by it slides that channel down to exactly 0 Hz. Because both operands are complex, the shift is one-sided — the wanted channel moves to baseband while everything else moves too, harmlessly. Second, filter: a low-pass digital filter keeps only the band now sitting around zero and rejects the neighbouring channels. Third, decimate: with the bandwidth narrowed, decimation drops the sample rate to just what the single channel needs — often a large factor, since one 12.5 kHz channel lives inside a multi-MHz capture. Filtering must precede decimation so the discarded neighbours cannot alias back in.
Variants
- Per-channel DDC — one NCO/filter/decimate chain per channel of interest. Simple and flexible; cost scales with the number of channels. This is the classic single-channel down-converter.
- Polyphase channelizer — when many equally spaced channels are wanted at once, a polyphase filter bank plus an FFT extracts them all far more cheaply than N independent DDCs.
- CIC-based DDC — hardware and FPGA designs favour a multiplierless CIC filter for the bulk of the decimation, followed by a short FIR to correct its droop; the ubiquitous “DDC” building block in radio ASICs.
In practice
GopherTrunk runs more than one flavour. Its wideband path feeds a multi-tap DDC bank that pulls the control channel and several voice channels out of a single capture in parallel; its offline replay path uses a separate single-channel down-converter with its own tuning offset. The two are genuinely distinct code paths, so a fix to one does not touch the other — a subtlety that has caused a bug to look “fixed” on the wideband path while still live on replay. Both normalise their output to the per-protocol channel rate before demodulation.
Relevance to SDR
The DDC is how GopherTrunk extracts a control channel and multiple voice channels from a single wideband capture, and how any SDR “tunes” without moving the analog LO. It is the last frequency-shifting stage before the demodulator sees a clean baseband channel.
Sources
-
Digital down converter — Wikipedia, for the NCO/filter/decimate channelization architecture. ↩