April 27, 2005
Coding theory is a practical application of abstract algebra which relies heavily on
one’s understanding of finite fields, group theory, and number theory. After learning
algorithms concerning prime numbers, group generators, polynomial rings, and
permutations, it is only fitting to discuss these in terms of relevance to real-world
Cyclic codes, generated using shift registers, were among the first codes used
practically. Observing the algebraic structure of cyclic codes, it was realized that abstract
algebra was a valuable tool in code design. To find the generating polynomial of a cyclic
code choose a monic polynomial g(x), which is an element in F[x] where F is a field, that
divides xn-1. For each polynomial p(x) which is an element of F[x], compute
p(x)g(x)(modxn-1). Denote the answer by c0+c1x+…+cn-1xn-1 where c= (c0, c1,…, cn-1) is
a “codeword” in C. Hence, the linear code C of length n is a cyclic code if it is invariant
under a cyclic shift, namely, c = (c0, c1, . . . , cn−1) is an element of C if and only if ˜c =
(cn−1, c0, c1 . . . , cn−2) is an element of C (http://www.math.msu.edu/~jhall/classes/codenotes/Cyclic.pdf).
Adding a parity check bit to an information string helps detect errors in the string.
Depending upon the parity, even or odd, of the information string, one can tell if an error
has occurred in the encoding or transmission. The binary parity check code is also cyclic.
Some examples of cyclic codes include the 0-code, Fn, and repetition codes. Let’s
look at the following example from http://web.usna.navy.mil/~wdj/book/node136.html : let the
polynomial g(x)=(x-2)(x-4)=x2+4x+3 be an element of F5[x] and divide x4-1 in F5[x].
Let C be the cyclic code of length 4 generated by g(x) with the check polynomial
h(x)=(x4-1)/g(x). Thus, c=(1, 4, 0, 2) is the codeword satisfying the equation
(1+4x+2x3)h(x)=0. Note that (1+4x+2x3) = (2+2x)g(x), so c is a codeword as a result of
the constructive definition of a cyclic code.
Coding theory deals with the design of error-correcting codes for the reliable
transmission of information across noisy channels (http://mathworld.wolfram.com/CodingTheory).
Coding is a very important example of mathematics that is used in practical applications
such as decoding music onto compact discs and encoding pictures from satellites into
binary strings. In addition, efficient communication which is enhanced by coding and
whose structure mirrors mathematical models is essential to all aspects of present day
society. Thus, a firm understanding of the concepts of abstract algebra, especially finite
fields, allows one to grasp the importance of coding and its relationship to a variety of
real world situations.