Forward Error Correction in Computer Networks


What is Forward Error Correction?

Forward Error Correction (FEC) is a way of getting error control in data transmission in which the source (transmitter) provides redundant data and the destination (receiver) recognizes only the portion of the data that is error-free. FEC can broadcast data to several destinations simultaneously from a single source because it does not require handshaking between the source and the destination.

  • Each character is conveyed twice in the simplest form of FEC.

  • The receiver verifies that both instances of each character follow the protocol in use.

  • If both conformance cases occur, the character is accepted.

  • If one instance of conformance occurs but not the other, the character that follows protocol is accepted.

  • If there is no conformance, in either case, the character is rejected and replaced with a blank space or an underscore.

Simple FEC is one of two self-correcting digital modes called AMTOR utilised by radio amateurs (an abbreviation for Amateur Teleprinting Over Radio). It's also known as Mode B. Another AMTOR mode that combines handshaking is Automatic Repeat Request (ARQ), used with communications systems like the Global System for Mobile Communications (GSM).

Advantages and Disadvantages of FEC

  • FEC can be used to broadcast data to several destinations simultaneously from a single source because it does not require handshaking between the source and the destination.

  • Another benefit is that FEC reduces the amount of bandwidth required for retransmission. As a result, it is employed in real-time systems.

  • Its primary drawback is that if there are too many faults, the frames must be resent.

Types of FEC

Block codes and convolutional codes are two structurally different types of codes that are often used nowadays.

Block codes

A block code encoder divides the information sequence "u" into message blocks of "k" information bits (symbols) and converts each message "u" into an n-bit code (symbols). The coding rate is defined as "R = k/n". The redundant bits (symbols), n-k, give the code the ability to deal with channel noise.

The minimum distance, dmin, between two closest codewords, which specifies the minimum amount of data changes required to turn one valid codeword into another, is an essential parameter of a block code. This parameter determines a code's ability to detect and rectify errors.

Usually, an FEC code can detect and correct up to (dmin - 1)/2 mistakes per codeword.

Convolutional codes

A convolutional code encoder accepts k-bit blocks of the information sequence "u" and generates an encoded sequence "v" of n-symbol blocks. However, each encoded block is dependent on "m" prior message blocks and the matching k-bit message block at the same time unit.

To provide reliable transmission across a noisy channel and redundant bits, n-k, further redundancy is added by raising the memory order "m" of the code.

Updated on: 26-Aug-2021

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements