The main techniques used to correct transmission errors in radio channels:
Forward Error Correction (FEC):
- Adds redundant data (parity bits) to the transmitted message that allows the receiver to detect and correct errors without requesting retransmission
- Common FEC codes include:
- Convolutional codes: Continuous encoding of bit streams, good for random errors
- Reed-Solomon codes: Block-based coding excellent for burst errors
- Turbo codes and LDPC: Modern, powerful codes approaching Shannon limit
- Hamming codes: Simple codes that can correct single-bit errors
Automatic Repeat Request (ARQ/ACK):
- Receiver checks message integrity using error detection codes (like CRC)
- If errors are detected, receiver requests retransmission via negative acknowledgment (NACK)
- On successful receipt, sends positive acknowledgment (ACK)
- Three main ARQ types:
- Stop-and-wait: Simplest form, waits for ACK before sending next packet
- Go-back-N: Sends multiple packets, retransmits all from error point
- Selective repeat: Only retransmits specific corrupted packets
Interleaving:
- Rearranges data bits/symbols before transmission
- Spreads burst errors across multiple code words, making them easier to correct
- Common types:
- Block interleaving: Writes data in rows, transmits in columns
- Convolutional interleaving: Continuous process using shift registers
- Helical interleaving: Variation optimized for specific applications
These techniques are often used in combination:
- First apply FEC coding
- Then perform interleaving
- Use ARQ as final protection against uncorrected errors
The choice of specific techniques depends on:
- Channel characteristics (burst vs random errors)
- Required reliability
- Acceptable latency
- Available bandwidth
- Processing power constraints