Mobile Computing.com

forward error correction (FEC)

By Robert Sheldon

What is forward error correction (FEC)?

Forward error correction (FEC) is a method for obtaining error control in data transmission in which the source (transmitter) sends redundant data and the destination (receiver) recognizes only the portion of the data that contains no apparent errors. When FEC is used in data transmissions, the receiver can detect and correct a limited number of errors. If there are too many errors, the sender must retransmit the packets that contain the errors.

FEC does not require handshaking between the source and the destination, which means that the two systems do not need to establish a connection before data can be transmitted. This makes it possible to broadcast data to multiple destinations simultaneously from a single source. In addition, FEC's ability to correct errors means that less data needs to be retransmitted, reducing bandwidth and power consumption.

Because of its error-correcting capabilities, FEC is commonly implemented when transmitting data over noisy or unreliable communication channels, making it suitable for both wired and wireless communications. For example, FEC provides an efficient solution for streaming video content or supporting cellular networks. It can also be used by modems and routers, support cable and optic communications, and facilitate one-way data transmissions.

How does forward error correction work?

In the simplest form of FEC, the transmitter sends each character multiple times to provide a safeguard against lost or corrupted data. The receiver compares the character instances and, if there are discrepancies, uses a "majority rules" system to recover the data. For example, the transmitted data might include the capital letter W, which has a binary value of 01010111. If the transmitter were to send the W byte three times, the receiver would compare the bits in each byte instance to determine which bits are accurate, as shown in Figure 1.

In this case, there are two errors in the data when it arrives at the receiver. The fifth bit in the second character instance is different from the other two bits in that position, and the second bit in the third instance is different from the other two in its position. For each bit position, the receiver compares the bits. If all three are the same, that value is considered the correct bit. If one value is different from the other two, the two majority values are considered the correct bit.

The exact process used for FEC-based communications varies from one system to the next. At a high level, however, they generally follow a similar approach. The transmitter uses some type of encoder to add the necessary parity data to the original data, and the receiver uses some type of decoder to extract the original data from the transmitted data while correcting errors in the process. Figure 2 provides a simplified overview of how this works.

Error-coding codes used in forward error correction

The communication and storage industries use a variety of error-correcting codes when implementing FEC on their systems. Some of the more common codes include the following:

These are but a few of the many types of error-correcting codes that can be used for FEC-based communications. Organizations deploying FEC should use whatever approach works best for their circumstances. However, they should keep in mind one important guideline: The transmitter and receiver must use the same FEC type and follow the same rules when encoding and decoding data. Only then can they be certain that the decoder is properly identifying and correcting errors.

See how to check for packet loss to manage call quality, and explore if Is there an alternative to error correction and detection codes.

22 Aug 2023

All Rights Reserved, Copyright 2003 - 2024, TechTarget | Read our Privacy Statement