Block Interleaver
Understanding Block Interleavers
Consider R=4 rows, C=6 columns. Bits 1-6 fill row 1, bits 7-12 fill row 2, etc. Reading column-by-column: bits 1,7,13,19,2,8,14,20,... A burst of 6 consecutive errors in the transmitted stream affects one bit in each of 6 different rows, spreading the burst across 6 codewords. If each codeword's FEC can correct 1 error, the burst is fully recoverable.
The deinterleaver at the receiver performs the inverse operation (write column-by-column, read row-by-row), restoring original order with the burst errors now scattered.
Write: row-by-row (R codewords of C bits)
Read: column-by-column
Burst protection: up to C bits
Latency: R × C / bit_rate
Memory: R × C bits
Interleaver Type Comparison
| Type | Latency | Memory | Burst Protection | Used In |
|---|---|---|---|---|
| Block | R×C | R×C | C bits | LTE, GSM |
| Convolutional | R×C/2 | R×C/2 | C bits | DVB-T, DAB |
| Random | Block length | Block | Statistical | Turbo codes |
| S-Random | Block length | Block | Guaranteed S | LTE Turbo |
Frequently Asked Questions
Why interleave?
FEC corrects random errors. Bursts overwhelm FEC. Interleaving spreads bursts across codewords so each sees only random errors.
Block vs convolutional?
Block: R×C matrix, full latency. Convolutional: shift registers, half latency. Convolutional starts output sooner.
How deep?
Depth > expected burst length. 5 ms fade at 1 Mbps = 5,000 bit burst. Need R×C > 5,000. Balance protection vs latency.