Signal Processing

Convolutional Interleaver

/kon-vuh-LOO-shun-ul IN-ter-leev-er/
Reordering of a continuous symbol stream so that channel impairments which arrive in bursts are spread across many code words, a convolutional interleaver uses a bank of B parallel branches whose shift registers grow in length by a fixed increment M from branch to branch. A commutator steps through the branches one symbol at a time, giving each symbol a different delay before transmission and the inverse delay at the matching deinterleaver. The net effect converts a deep fade or impulse burst into scattered single errors that forward error correction can correct, dramatically lowering the post-decoder error floor on fading and impulsive channels. Unlike a block interleaver, the convolutional form processes data continuously and needs about half the memory and latency for the same interleaving span, which is why it pairs with the Reed-Solomon outer code in DVB-S, DVB-C, and many cable and satellite physical layers.
Category: Signal Processing
DVB Depth: B = 12, M = 17
Interleaving Span: M·B·(B−1)

How Shift-Register Branches Disperse Burst Errors

The convolutional interleaver, introduced by Ramsey and refined by Forney in the late 1960s, is built from B branches arranged in parallel. Branch 0 has zero delay, branch 1 holds a first-in first-out register of M cells, branch 2 holds 2M cells, and so on up to branch B−1 holding (B−1)M cells. An input commutator at the transmitter routes successive symbols to branches 0, 1, 2 and so on, wrapping back to branch 0 after every B symbols. A synchronized output commutator at the deinterleaver applies exactly the complementary delays: a symbol that passed through the longest register on the interleave side passes through the shortest on the deinterleave side, so every symbol experiences the same total delay and the original ordering is restored.

Because each branch imposes a different delay, two symbols that were originally adjacent in the code word end up B·M symbol periods apart on the channel. When a burst of impulse noise or a multipath fade corrupts a contiguous run of channel symbols, the deinterleaver scatters that damage so each Reed-Solomon code word sees at most a few byte errors rather than one concentrated, uncorrectable cluster. This randomizing action is what lets a code designed for independent errors operate effectively over a bursty channel.

The structure trades memory for performance. Total storage across the interleaver and deinterleaver is M·B·(B−1) symbols, and the end-to-end latency equals the same figure in symbol periods. Designers pick B and M so the guaranteed separation B·M comfortably exceeds the expected burst length while keeping latency inside the system budget.

Interleaver Span and Separation Equations

Largest branch delay (max delay difference across branches):
Dmax = (B − 1) × M  symbol periods

Separation of input-adjacent symbols on the channel:
Δmin = B × M  symbols

Total interleaver + deinterleaver memory:
Mtot = M × B × (B − 1)  cells

End-to-end latency (identical for every symbol):
Tlat ≈ M × B × (B − 1) / Rs  seconds

Where B = number of branches (depth), M = register increment per branch, Rs = symbol rate. DVB example: B = 12, M = 17 → Dmax = 187 byte periods, Δmin = 204 bytes (one RS frame), Mtot = 2,244 bytes, and at Rs ≈ 27.5 Mbaud, Tlat ≈ 82 μs.

Convolutional vs. Block Interleaving

ParameterConvolutional InterleaverBlock Interleaver
OperationContinuous stream, branch commutatorFill N×M matrix, read transposed
Memory (same span)M·B·(B−1) cells~2×N·M cells (roughly double)
LatencyM·B·(B−1) symbol periods~2 full blocks
SynchronizationBranch-index alignment requiredBlock/frame boundary alignment
Typical standardDVB-S, DVB-C (B=12, M=17)IEEE 802.11a/g OFDM, GSM
Best pairingReed-Solomon outer codeInner convolutional/Viterbi code
Common Questions

Frequently Asked Questions

How does a convolutional interleaver differ from a block interleaver?

A block interleaver must buffer an entire N×M matrix before any symbol leaves, so its end-to-end memory and latency are roughly two full blocks. A convolutional interleaver runs continuously across B branches whose registers grow by M cells each, needing only about M·B·(B−1) cells, roughly half the memory and latency for the same interleaving span. That efficiency is why DVB-S and DVB-C adopt it, at the cost of requiring the deinterleaver branch index to stay aligned with the interleaver.

How do I choose interleaver depth B and increment M for a given burst length?

Pick B and M so the guaranteed separation B·M exceeds the worst-case burst, and so no Reed-Solomon code word receives more byte errors than t = (n−k)/2 lets it correct. The end-to-end memory is M·B·(B−1) cells. DVB sets B = 12 and chooses M = N/B = 204/12 = 17 so that the input-adjacent separation B·M = 204 equals the RS(204,188) frame length, mapping each of the 12 branches cleanly across one 204-byte frame.

What is the latency and memory cost of a convolutional interleaver?

The interleaver and deinterleaver each store M·B·(B−1)/2 symbols, for a total of M·B·(B−1) cells, and end-to-end latency equals the same value in symbol periods because every symbol gets the identical combined delay. For DVB B = 12, M = 17 that is 17×12×11 = 2,244 bytes of storage and 2,244 byte-periods of delay, under 100 μs at 27.5 Mbaud and negligible for broadcast video.

Link Budget Engineering

Build a Robust Satellite Link

From interleaved FEC chains to low-noise downconverters and antenna front ends, RF Essentials supplies the millimeter-wave hardware that keeps bursty links inside spec. Talk to our engineers about your system.

Get in Touch