Coding Theory: A First Course

In the previous chapters, we concentrated mostly on linear codes because they have algebraic structures. These structures simplify the study of linear codes. For example, a linear code can be described by its generator or parity-check matrices; the minimum distance is determined by the Hamming weight, etc. However, we have to introduce more structures besides linearity in order for codes to be implemented easily. For the sake of easy encoding and decoding, one naturally requires a cyclic shift of a codeword in a code C to be still a codeword of C. This requirement looks like a combinatorial structure. Fortunately, this structure can be converted into an algebraic one. Moreover, we will see that a cyclic code of length n is totally determined by a polynomial of degree less than n.
Cyclic codes were first studied by Prange [17] in 1957. Since then, algebraic coding theorists have made great progress in the study of cyclic codes for both random-error correction and burst-error correction. Many important classes of codes are among cyclic codes, such as the Hamming codes, Golay codes and the codes in Chapters 8 and 9.
We first define cyclic codes in this chapter, and then discuss their algebraic structure and other properties. In the final two sections, a decoding algorithm and burst-error-correcting codes are studied.
A subset S of
is cyclic if ( a n ?1 , a 0 , a 1 , ,a n