Block interleaver that rearranges data to distribute burst errors across multiple codewords. Uses matrix transposition to convert burst errors into random errors. Note: Interleaving is a technique used WITH error correction codes, not a standalone correction algorithm.
| Property | Value |
|---|---|
| Category | Error Correction |
| Sub-category | Interleaving |
| Security status | 🎓 Educational Only |
| Complexity | Beginner |
| Inventor | Unknown (Data Reorganization Concept) |
| Year | 1960 |
| Origin | Not specified |
| Source | algorithms/ecc/interleaver.js |
Status: 🎓 Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| No Error Correction | Interleaving only redistributes errors. Must be combined with error correction codes for actual correction capability. | — |
| Latency Introduction | Block interleaving introduces delay as entire blocks must be buffered before transmission/processing. | — |
3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — 4x4 block interleaving test
| Field | Value |
|---|---|
rows |
4 |
cols |
4 |
input |
0102030405060708090a0b0c0d0e0f10 |
expected |
0105090d02060a0e03070b0f04080c10 |
Vector 2 — Sequential interleaving pattern
| Field | Value |
|---|---|
rows |
4 |
cols |
4 |
input |
000102030405060708090a0b0c0d0e0f |
expected |
0004080c0105090d02060a0e03070b0f |
Vector 3 — 3x3 interleaving test
| Field | Value |
|---|---|
rows |
3 |
cols |
3 |
input |
010203040506070809 |
expected |
010407020508030609 |