Forward error correction is a method of data transmission that allows receivers to detect and repair many kinds of errors in the information automatically. The process does not require communication with the transmitter. Instead, receivers independently manage errors, when possible. In situations where data becomes hopelessly corrupted, it may be necessary to request a retransmission to get a clean copy to use.
The process starts at the transmitter, which adds some extra bits to the message. The nature of the redundant data can vary, depending on the approach used to add data; some options include algebraic coding, the Viterbi decoding algorithm, and convolutional coding. These create a pattern that the receiver can recognize and use to check the rest of the data.
If the transmission is clean, the check will show that there are no errors, and the receiver can deliver the data to the user. In the event there is a problem, the receiver uses forward error correction to compare the known redundant data against the apparently corrupted information and uses this analysis to fix the corrupted data and generate an output for the user. If the receiver cannot correct the error, it may indicate that the data is too corrupt, or it could include blank spots where it was not possible to restore the information.
One advantage to forward error correction is that a transmitter can send out a burst of data to as many receivers are available, all at once. The receivers do not need to handshake with the transmitter, and are not tied up with responses to its transmissions. It also can reduce loads on the system, as requests to resend data can quickly eat up bandwidth and may delay other transmissions. Adding redundant information to transmissions, however, can also clog bandwidth. Designers need to consider this when they develop a forward error correction technique because they want to send enough extra data for receivers to use, without overloading the system.
A basic framework for forward error correction technology has been around since the beginning of the 20th century, with transmissions over radio. Considerable research into this topic was performed in the 1940s and 1950s. Companies continue to develop new ways of efficiently transmitting accurate data with the lowest possible bandwidth load. Bandwidth demands are on the rise in many regions, which means that this can be an important consideration in transmission algorithms.