written 2.6 years ago by |
Most of the error-correcting block codes that are in use are in a category called cyclic codes. For such codes, if the n-bit sequence c = (co, c1,........cn-I) is a valid codeword, then (cn-1,co, c1,........cn-z), which is formed by ,~yclically shifting c one place to the right, is also a valid codeword. This class of codes can be easily encoded and decoded using linear feedback shift registers (LFSRs). Examples of cyclic codes include the Bose-Chaudhuri-Hocquenhem (JBCH) and Reed- Solomon codes.
The LFSR implementation of a cyclic error-correcting encoder is the same as that of the CRC error-detecting code. The key difference is that the CRC code takes an input of arbitrary length and produces a fixed-length CRC check code, while a cyclic error-correcting code takes a fixed-Iength input (k bits) and produces a fixed-length check code (n - k bits).
For decoding of a cyclic code, the following procedure is used:
- Process received bits to compute the syndrome code in exactly the same fash- ion as the encoder processes the data bits to produce the check code.
- If the syndrome bits are all zero, no error has been detected,
- If the syndrome is nonzero, perform additional processing on the syndrome for error correction.