Interleaver
An interleaver is a device or algorithm that permutes the order of symbols in a data stream before transmission and restores the original order after reception. In error-correcting codes, interleavers serve a critical structural function: they transform burst errors — sequences of consecutive corrupted symbols produced by fading channels or physical damage — into distributed errors that the code can correct. A code that corrects isolated errors will fail against a burst; an interleaver makes the burst appear isolated.
The choice of permutation matters. A random interleaver provides average-case protection but may have pathological patterns where bursts align after deinterleaving. Structured interleavers — used in turbo codes — are designed to maximize the minimum distance between positions that interact in the decoding graph. The interleaver is not merely a preprocessing step; it is part of the code's mathematical structure, and its design determines whether the iterative decoder converges or oscillates.