Error-Control Block Codes for Communications Engineers

Most of the known good codes belong to a class of codes called linear codes. However, the implementation complexity of decoders becomes impractical for linear codes with very large block length n. Linear codes with an extra degree of algebraic structure are most welcome, in the hope that the decoding complexity can be reduced. Cyclic codes offer such additional structure [1 3].
Cyclic codes form an important subclass of linear codes. These codes are important because their underlying Galois field description leads to encoding and decoding procedures that are computationally efficient. The treatment here will concentrate on the basic principles of binary cyclic codes and the syndrome decoding of the codes.
An ( n, k) linear code is cyclic if every cyclic shift of a codeword (codevector) is also a codeword (codevector) in the code.
A cyclic shift of a codeword of length n, represented by an n-tuple codevector V = [ v 0 v 1 . . . v n ?1], j times to the right is another n-tuple codevector V ( j) = [ v n ? j, v n ? j+1, . . ., v n ?1, v 0, v 1, . . ., v n ? j ?1]. Clearly, cyclically shifting V j places to the right is the same as cyclically shifting V