What is Forward Error Correction (FEC)?
Forward Error Correction (FEC) digital signal processing technique that enhances data reliability in communication systems by allowing the receiver to detect and correct errors without needing retransmission.
Forward Error Correction works by adding redundant bits to the transmitted data. These extra bits enable the receiver to detect and correct errors caused by noisy channels. Unlike retransmission-based methods (like ARQ), FEC improves reliability without extra communication between sender and receiver. That is also the reason why it is called Forward Error Correction as there is no feedback.
Figure 1: FEC Block Diagram.
Example
Imagine you want to send the word “HELLO” over a noisy channel. To protect it, you could use a repetition code , where each letter is repeated multiple times. For example, “HELLO” could be sent as “HHEELLLLOO” .
If some letters get corrupted during transmission, the receiver can use the repeated copies to detect and correct the errors , recovering the original word.
This is a simple example of FEC in action—adding redundancy so errors can be fixed without asking for a retransmission.
Why we need FEC?
Higher-order modulation schemes like 16QAM, 64QAM, and 256QAM transmit multiple bits per symbol, packing constellation points closely together. This increases spectral efficiency and data rate but also makes the system more sensitive to noise.
FEC helps by:
- Detecting and correcting errors caused by noise.
- Reducing bit error rates (BER).
- Enabling higher-order modulation in real-world, noisy channels.
- Supporting reliable transmission of high-data-rate content, like video and IoT signals.
Types of FEC
There are several types of FEC, each with unique properties:
1. Block Codes
- Data is divided into fixed-length blocks, and redundancy is added to each block.
- Examples: Hamming Codes, Reed-Solomon (RS).
- Use case: Correcting burst errors, common in satellite or storage systems.
2. Convolutional Codes
- Redundancy is added by combining current and previous bits, forming a continuous stream.
- Decoded using Viterbi algorithm.
- Use case: Wireless communication like LTE and 3G.
3. Turbo Codes
- Iterative decoding provides near Shannon-limit performance*.
- Use case: Satellite communication, 3G/4G systems.
4. LDPC (Low-Density Parity-Check) Codes
- Sparse parity-check matrices with iterative decoding
- Use case: 5G, Wi-Fi 6, high-data-rate satellite links.