Forward error correction (FEC) is a technique used in data transmission that enables the recipient to correct common errors without asking the sender to resend the affected message. This error correction technique is commonly used when transmitting data over unreliable communication channels where data errors are expected to occur.
When using FEC, the sender encodes redundant data so the receiver can still make sense of the message despite the noise. The sender does not have to retransmit the message.
FEC is similar to ordering furniture online. The store would include extra bolts, screws, and nuts so you can assemble the piece even when a bolt is accidentally lost during shipment. You do not need to wait for a replacement because there are extra bolts in the package.
Other interesting terms…
Read More about the “Forward Error Correction (FEC)”
We usually see FEC in action in both wired and wireless telecommunication systems, where data transmission happens constantly. Instead of rejecting erroneous data and requesting for them again from the sender, the receiver can automatically correct errors on his/her own.
This error correction technique saves users a lot of time. Imagine if your mobile phone is required to resend every message that contains errors—it will take a very long time for a single web application to load.
How Does Forward Error Correction Work?
The word “forward” in FEC implies how the data stream flows when using this error correction technique. Since erroneous data doesn’t have to be retransmitted, it only flows forward, that is, from the encoder or transmitter to the decoder or recipient. But, how exactly does FEC work?
Put simply, FEC entails the transmitter to send each character of the message more than once. The receiver would then check each of the characters’ instances for consistency.
Forward Error Correction Example
To better understand how FEC works, here is an example. Let’s say that you want to transmit the word “shoes” to your friend. Using the repetition feature of FEC, you choose to send each character three times. The table below shows the data your friend received and how his/her device interprets it.
Received | Interpretation | Error Status |
sss | s | No error |
hhk | h | With error |
ooo | o | No error |
ete | e | With error |
wss | s | With error |
As you can see, FEC detects the erroneous data and interprets it based on how many types a character occurred. It nominates the most dominant character as the correct one. For instance, in the second line in the table above, “h” occurred more times than “k.” Hence, the character is interpreted as “h.”
In reality, however, the data transmitted over the Internet is converted into binary code, a machine-readable language that only uses 0s and 1s. As such, the table above could look like this:
Received | Interpretation | Error Status |
000 | 0 | No error |
101 | 1 | With error |
111 | 1 | No error |
011 | 1 | With error |
100 | 0 | With error |
Advantages and Disadvantages of Forward Error Correction
FEC does not require a handshake, which is a telecommunications process that requires the sender and receiver to establish a connection first. Therefore, it can be used to broadcast data to multiple receivers simultaneously. That is especially helpful when streaming video content over wireless Internet since there is a lot of noise, and data can get mangled.
Another advantage of this error correction technique is bandwidth saving since it doesn’t require data retransmission, especially when the errors are common.
FEC also has its drawbacks, though. For one, it can only deal with so many errors. If the data has too many errors, it has to be retransmitted, which would take time and bandwidth.
—
FEC may be difficult to grasp at first, but the concept behind it is pretty simple. The goal is to avoid spending too much time and bandwidth on retransmission, so recipients are empowered to detect and correct errors on their own.