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:

  1. First apply FEC coding
  2. Then perform interleaving
  3. 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