Also known as: channelizer, channelization, polyphase channelizer
A channelizer splits a single wideband IQ capture into many narrow channels at once.1 Each output is one channel, shifted to baseband, filtered, and decimated to its own low rate — so one SDR front end can feed a whole rack of decoders in parallel. In a trunking scanner this is the difference between watching one frequency and watching an entire system’s control and voice traffic simultaneously.
How it works
The brute-force way to extract N channels is to run N independent digital down-converters: mix each channel to baseband with its own oscillator, low-pass filter, and decimate. That works, but the cost scales with N — every channel pays for its own full-rate mixer and filter, and most of that arithmetic is spent computing samples that are immediately thrown away by the decimation.
An efficient channelizer collapses all of that shared work. When the channels are uniformly spaced, three observations combine:
- The per-channel low-pass filters are the same prototype, just frequency-shifted — so their taps can be shared rather than replicated.
- Because each output is decimated by the number of channels, most of the filtering arithmetic is redundant. Reorganising the prototype filter into a polyphase filter bank does only the multiplies whose results survive decimation.
- The bank of frequency shifts — one complex exponential per channel — is exactly a Discrete Fourier Transform of the polyphase outputs, so a single FFT produces all channels in one shot.
The result is the polyphase FFT channelizer: one shared prototype filter plus one FFT per
input block yields every channel simultaneously, at roughly the cost of a single filter plus a
log N FFT instead of N separate down-converters. The saving grows with the channel count,
which is what makes wideband, many-channel monitoring practical on an ordinary CPU.
Variants
- Maximally decimated (“critically sampled”). Output rate equals channel spacing; most efficient, but adjacent-channel energy can alias unless the prototype is designed carefully.
- Oversampled / M:N channelizer. Decimates by less than the channel count, leaving guard room so channels don’t overlap at the edges — needed when the wanted signals don’t sit exactly on the channel grid.
- Non-uniform / per-tap DDC. When only a few channels are wanted, or they sit at arbitrary offsets, individual DDCs can be cheaper than a full bank — a channelizer wins when many uniformly-spaced channels are needed at once.
In practice
The channelizer is the front end that turns a wideband SDR into a multi-channel receiver: spectrum monitoring, multi-carrier base stations, and trunking scanners all rely on it. The design choice is always the same trade — a full polyphase FFT bank when you want everything in a band, versus a few targeted DDCs when you want only a handful of channels.
Relevance to SDR
Channelization is central to trunking with SDR: a single capture must yield the control channel plus every voice channel it assigns. GopherTrunk down-converts and decimates the wideband capture into the individual channels it needs to decode, so it can keep the control channel locked while simultaneously following the voice calls that control channel grants — the practical payoff of channelization.
Sources
-
Filter bank — Wikipedia, on filter banks and the polyphase channelizer that splits a band into channels. ↩