Cyclic Codes
4.1 Introduction: The Minimal Polynomial
As seen in the previous chapter, cyclic codes are linear block codes with the special property that cyclically shifted versions of code vectors are also code vectors. As a special case introduced as an example of a linear block code, the Hamming code Ccyc(7, 4) has also been shown to be
a cyclic code generated by the generator polynomial g(X )=1+X+X3.
Cyclic codes have the property that the code vectors are generated by multiplying the message polynomial m(X ) by the generator polynomial g(X ). In fact, in the non-systematic form the message polynomial m(X ) is multiplied by the generator polynomial g(X ), and in the systematic form there is an equivalent polynomial q(X ) that is multiplied by the generator polynomial g(X ). Being a polynomial, g(X ) has to have roots that are in number equal to its degree. A generator polynomial with coefficients over GF(2) need not have all of its roots belonging to this field, as some of the roots can be elements of the extended field GF(2m). This concept is described and clarified in Appendix B, in which an example of the extended field GF(23)=GF(8) is introduced.
As an example, the Hamming code Ccyc(7, 4) introduced in Chapters 2 and 3 is analysed
here, in order to see which are the roots of its generator polynomial g(X )=g1(X ). Since any
code vector is generated by multiplying a given message vector by this generator polynomial, any code vector, seen as a code polynomial, will have at least the same roots as this generator polynomial, g(X )=g1(X ). This allows us to construct a system of syndrome equations, as
the roots of the code polynomials are known. Taking into account the example in Table B.3 of Appendix B, for the case of the extended Galois field GF(8), it is seen thatα, which is a primitive element of that field, is also a root of the primitive polynomial p(X )=1+X+X3,
Essentials of Error-Control Coding Jorge Casti˜neira Moreira and Patrick Guy Farrell
C
2006 John Wiley & Sons, Ltd
which should not be confused with the generator polynomial of the code under analysis, g1(X ).
However, in this particular case, they are the same. Therefore it is possible to say thatαis a root of g1(X ) because, from Table B.3,
g1(α)=1+α+α3=1+α+1+α=0
Ifαis a root of g1(X ), then it is also a root of any code polynomial g1(X ) of the Hamming
code Ccyc(7, 4), and this allows us to state a first syndrome equation s1=r (α). As the degree
of the generator polynomial is 3, there are still two other roots to be found for this polynomial. By substituting the elementα2of the extended field GF(8), it is found that
g1(α2)=1+α2+α6=1+α2+1+α2=0
This verifies that α2 is a root of the generator polynomial g
1(X ) of the Hamming code
Ccyc(7, 4), and so it is also a root of any code polynomial of this code, allowing us to form a
second syndrome equation s2=r (α2). By substituting all the elements of the extended field,
it is possible to identify thatα4is the third root of the generator polynomial g
1(X ) of the Ham-
ming code Ccyc(7, 4), and also to state that 1, α3, α5andα6are not roots of that polynomial.
Sinceα, α2andα4are roots of the polynomial g 1(X ),
g1(X )=(X+α)(X+α2)(X+α4)
=X3+(α+α2+α4)X2+(α3+α5+α6)X+1
=X3+X+1
By substituting in the expression for a received polynomial the rootsαandα2, for instance,
it is possible to find a system of two equations that allows the solution of two unknowns, which are the position and the value of a single error in that polynomial.
In order to correct an error pattern containing two errors, for instance, it would be necessary to have a system of at least four equations, to solve for the positions and values of the two errors. This would be the case of a linear block code able to correct error patterns of size t =2. In the case of the Hamming code Ccyc(7, 4), there is just one additional root,α4, associated
with the additional equation s4=r (α4), making only three in all. This is not enough to allow the
construction of a set of four equations, the minimal requirement for correcting error patterns of size t =2. This is in agreement with the fact that this Hamming code Ccyc(7, 4), characterized
by a minimum Hamming distance dmin =3, can correct only error patterns of size t =1.
The other elements of the extended field GF(8),α3, α5andα6, which were found not to be
roots of the generator polynomial g1(X ) of the Hamming code Ccyc(7, 4), can however be the
roots of another polynomial, and thus
g2(X )=(X+α3)(X+α5)(X+α6)
=X3+(α3+α5+α6)X2+(α+α2+α4)X+1
=X3+X2+1
This polynomial also generates a linear cyclic block code Ccyc(7, 4), as seen in Example 3.4 in
Chapter 3, because this polynomial is a factor of X7+1. In fact both polynomials g
1(X ) and
of X7+1 is g
3(X )=X+1, whose unique root is the element 1 of the extended field GF(8).
In this way, all the non-zero elements of the extended field GF(8) are roots of X7+1.
The polynomial g1(X )=1(X ) is called the minimal polynomial of the elementsα, α2
andα4, and it is essentially a polynomial for which these elements are roots [4]. In the same
way, g2(X )=2(X ) is called the minimal polynomial of the elementsα3, α5 andα6, and
g3(X )=3(X ) is the minimal polynomial of the element 1.
Since, for instance, the Hamming code Ccyc(7, 4) has a generator polynomial with just three
roots, and is not able to guarantee the correction of any error pattern of size t =2, it would be possible to add the missing root,α3, by forming a generator polynomial as the multiplication of
g1(X )=1(X ) and g2(X )=2(X ). However, it could be more appropriate to take the lowest
common multiple (LCM) of these two polynomials, in order to avoid multiple roots, which will only add redundancy without improving the error-correction capability of the code. Note that the degree of the generator polynomial is the level of redundancy added by the coding technique. Therefore, in this particular case, the minimum common multiple of g1(X )=1(X )
and g2(X )=2(X ) will form a generator polynomial with rootsα, α2, α3, α4, α5andα6,
so thatα5andα6are also added automatically. Then the resulting generator polynomial is of
the form
g4(X )=1(X )2(X )
=(X3+X+1)(X3+X2+1)
=X6+X5+X4+X3+X2+X+1
which is, as has been seen in Chapter 3, Example 3.4, the generator polynomial of a cyclic repetition code with n=7, Ccyc(7, 1), whose minimum Hamming distance is dmin=7, able
to correct any error pattern of size t =3 or less. This is in agreement with the fact that, in this case, there is a system of six equations that allows us to determine the positions and values of up to three errors in a given codeword, as a consequence of its generator polynomial g4(X )
having as roots the elementsα, α2, α3, α4, α5andα6.
This introduction leads to a more formal definition of a BCH code.