The sender encodes the data using an error-correcting code (ECC) prior to transmission. The additional information (redundancy) added by the code is used by the receiver to recover the original data. In general, the reconstructed data is what is deemed the “most likely” original data 3. There are several ways of classifying the forward error correction codes as per different characteristics.
Linear vs. Nonlinear? Linear codes are those in which the sum of any two valid code words is also a valid code word. In case of nonlinear code the above statement is not always true.
Cyclic vs. Non-Cyclic ? Cyclic code word are those in which shifting of any valid code word is also a valid code word. In case of non-circular code word the above statement is not always true.
3. Systematic vs. Nonsystematic? Systematic codes are those in which the actual information
appears unaltered in the encoded data and redundant bits are added for detection and correction
of error. In non-systematic code the actual message does not appear in its original form in the code rather there exists one mapping method from the data word to code word and vice versa.
Block vs. convolutional ?The block codes are those in which one block of message is transformed into on block of code. In this case no memory is required. In case of convolutional code a sequence of message is converted into a sequence of code. Hence encoder requires memory as present code is combination of present and past message.
5. Binary vs. Non binary ?Binary codes are those in which error detection and correction is done
on binary information i.e. on bits. Hence after the error is located, correction means only flipping the bit found in error. In Non-binary code error detection and corrections are done on symbols, symbols may be binary though. Hence both the error location and magnitude is required to correct the symbol in error.