Introduction to Error Control

Concepts of redundancy, ARQ (feedback) and FEC (forward error correction).

The Problem: Unreliable Channels

In an ideal world, when we send data from point A to point B, it arrives perfectly intact. However, in reality, every communication channel-whether it's a copper cable, a fiber optic line, or a wireless link-is subject to noise, interference, and other disturbances. These impairments can corrupt the signal, causing the receiver to misinterpret the data.

The most common type of corruption is a bit error, where a transmitted '1' is received as a '0', or vice versa. A single bit error can have catastrophic consequences: it can corrupt a financial transaction, make a program file unusable, or introduce a noticeable glitch in a video stream. Therefore, ensuring data integrity is a fundamental challenge in telecommunications.

The Core Solution: Redundancy

The fundamental strategy to combat transmission errors is to introduce . This means adding extra, non-essential information to the original data stream according to specific rules (coding algorithms). This extra information allows the receiver to determine if the data arrived correctly.

Think of it like spelling out a name over a noisy phone line: "My name is Smith, that's S-M-I-T-H." The spelling is redundant information, but it ensures the listener correctly understands the name, even if they misheard it initially.

The Fundamental Trade-off

Introducing redundancy comes at a cost. Adding extra bits means we have to transmit more data than just the useful information itself. This reduces the effective data transmission speed. There is always a trade-off:
More Redundancy = Greater Safety (better error detection/correction) but Lower Transmission Efficiency.

Strategy 1: Detect and Request Retransmission (ARQ)

This approach, known as , uses a feedback channel. It's similar to a human conversation where you ask for clarification if you don't understand something.

  1. The sender sends a block of data along with some redundancy (e.g., a checksum).
  2. The receiver checks if the data is correct using the redundant information.
  3. If the data is correct, the receiver sends a positive acknowledgement (ACK). The sender then sends the next block.
  4. If the data is corrupted, the receiver sends a negative acknowledgement (NACK). The sender then retransmits the same block again.

This method is highly reliable and is used extensively in protocols like TCP. However, it requires a two-way channel and can be inefficient on channels with very high error rates or long propagation delays (like satellite links), as waiting for acknowledgements and retransmitting data takes time.

Strategy 2: Detect and Correct On-the-Spot (FEC)

This method, called , places the full responsibility for fixing errors on the receiver. The sender adds enough redundant information to the data so that the receiver can not only detect errors but also correct them by itself.

This is essential in situations where a feedback channel is not available or impractical:

  • One-way broadcasts: Such as digital television or radio.
  • High-latency links: Like communication with deep-space probes, where asking for a retransmission would take hours or days.
  • Real-time systems: Where there is no time to wait for a retransmission, such as in streaming audio/video.

The Math of Error Control: Hamming Distance

The ability of a code to detect and correct errors is determined by its . The greater the distance between valid code words, the more errors can be tolerated before one valid word is mistaken for another.

The Golden Rules of Error Control

  1. For Error Detection: To be able to detect up to ee bit errors in a code word, the minimum Hamming distance of the code must be:

    dmin≥e+1d_{min} \ge e + 1

    For example, a simple parity bit creates a code with dmin=2d_{min} = 2, so it can reliably detect e=1e=1 single bit error.
  2. For Error Correction: To be able to correct up to tt bit errors in a code word, the minimum Hamming distance of the code must be:

    dmin≥2t+1d_{min} \ge 2t + 1

    For example, a simple repetition code (like sending '000' for '0' and '111' for '1') has a dmin=3d_{min} = 3. Therefore, it can correct t=1t=1 single bit error.
    Introduction to Error Control | Teleinf Edu