Open access peer-reviewed chapter

Application of Polynomials in Coding of Digital Data

Written By

Sujit K. Bose

Submitted: 21 December 2022 Reviewed: 09 February 2023 Published: 25 March 2023

DOI: 10.5772/intechopen.1001285

From the Edited Volume

Recent Research in Polynomials

Faruk Özger

Chapter metrics overview

81 Chapter Downloads

View Full Metrics

Abstract

Communication of information is nowadays ubiquitous in the form of words, pictures and sound that require digital conversion into binary coded signals for transmission due to the requirement of electronic circuitry of the implementing devices and machines. In a subtle way, polynomials play a very deep, important role in generating such codes without errors and distortion over long multiple pathways. This chapter surveys the very basics of such polynomials-based coding for easy grasp in the realization of such a complicated technologically important task. The coding is done in terms of just 0 and 1 that entails use of the algebra of finite Galois fields, using polynomial rings in particular. Even though more than six decades have passed since the foundations of the subject of the theory of coding were laid, the interest in the subject has not diminished as is apparent from the continued appearance of books on the subject. Beginning with the introduction of the ASCII codification of alpha-numeric and other symbols developed for early generation computers, this article proceeds with the application of algebraic methods of coding of linear block codes and the polynomials-based cyclic coding, leading to the development of the BCH and the Reed–Solomon codes, widely used in practices.

Keywords

  • coding
  • digital data
  • finite field
  • polynomial
  • cyclic codes

1. Introduction

Communication from a “source” to a “receiver” forms a vast buzz of activity over the entire globe. Physically, it is carried out as digital signals transmitted via different pathways such as light pulses through fiber-optic cables and radiowaves through air and even over the outer space. The digital signals are created in bits of pulses by electronic circuitry that work on the principle of (nearly) 0 and + 5 volts (Leach et al. [1], p. 3). A handy mathematical representation of the two voltages is just the set of two elements {0, 1}. An information thus consists of a string of 0’s and 1’s carried optically or electromagnetically through air or outer space as the case may be. The physical channel of information transmission is naturally noisy that was treated mathematically by Claude Shannon in a seminal paper [2] entitled “A mathematical theory of communication”, showing that in such noisy channel, there is a number called channel capacity such that reliable communication is achieved at any rate below the channel capacity by proper encoding and decoding techniques of any information. This paper marked the beginning of the subject of Coding Theory for encoding and decoding of information through the maze of channels.

In its widespread usage, information can be literal or numeric. It can also be audio or video, all encoded in 01 bits. Moreover, special encoding and decoding is required for compression of the data at the very source to reduce the volume, storage on hard disks and encryption and decryption to maintain security of the data to be transmitted. The subject is therefore vast, and the mathematics involved is very special over the two numbers 0 an 1, studied in Abstract Algebra as a very special example of a finite field. However, according to Richard Hamming, a pioneer of the subject, “Mathematics is an interesting intellectual sport but it should not be allowed to stand in the way of obtaining sensible information about physical processes”. In that spirit, this article is aimed to provide just the flavor of introducing the use of polynomials over the 01 field for developing a few practical methods of coding. No attempt is made to describe the corresponding methods of decoding, keeping in view the scope of this article. Detailed account of the subject and other methods of coding not treated here can be found in the texts by Bose [3], Kythe and Kythe [4], Roth [5], Moon [6], Ling and Xing [7], Blahut [8], Gathen and Gerhard [9], Proakis and Salehi [10], Adámek [11], and Lin and Costello [12]. All of these texts deal with polynomials over finite Galois fields to varying degrees of detail for the development of important codes like the practically important cyclic codes introduced by Prange [13], the BCH codes discovered by Bose, Ray-Chaudhuri [14] and independently by Hocqenghem [15], and the RS codes developed by Reed and Solomon [16]. The texts cited above also describe in detail, decoding methods of coded messages by a receiver, using special polynomials called syndromes. Besides the polynomials-based coding methods, the texts also give accounts of further development of codes with memory of past code words (convolutional coding) and codes for modulation of data transmission. Information theoretic probabilistic uncertainties of channelizing data transmission are also discussed in these texts to considerable extent. The list of texts is indicative of the continued interest in the topic of digital coding even now, ever since the appearance of the paper by Shannon. In what follows, Sections 2, 3, and 4 may be considered as preparatory coding methods before the appearance of polynomials over finite fields.

Advertisement

2. Coding

Transmission of a message of an information from a source to a destination is broadly classified into two categories: source coding of the message and channel coding for transmission through a channel. Both the types of coding are done mostly in terms of bits 0 and 1, because of the requirement of electronic implementation. Errors may occur at the source itself as well as in the transmission channel, and both of them require rectification in the transmitted message. The coding must be such that it can be uniquely decoded.

As an example of source coding, suppose that there is a message consisting of decimal numbers 0, 1, 2, 3, 4, ..... and alphabets A, B, C, D, ...... The first list can be bit converted by striking off the numbers 2, 3, ....., and 9. So that the binary code of 0, 1, 2, 3, 4, ..... becomes 0, 1, 10, 11, 100, ...... Coding a moderately large decimal number would be prohibitively very large and may not be uniquely decodable. For instance, the message 1011 could be decoded as 23 or 51 or 211. Giving a place value to the bits in the list as in the case of decimal numbers, a binary number listed as a0a1a2a3 can, however, be uniquely converted to its decimal equivalent by the polynomial expression

a0a1a2a32=a3×23+a2×22+a1×21+a0×2010E1

where the suffixes 2 and 10 on the two sides of Eq. (1) indicate the concerned number to be binary or decimal as bases. Thus, the decimal equivalent of the binary

1011=1×23+0×22+1×21+1×20=8+0+2+1=11E2

But such a method is not applicable in the case of the alphabets A, B, C, D,......

Electronic hardware considerations on the other hand are realized for unique decoding using linear block codes, in which every numeral and alphabet is written in fixed length block of bits called word. In this respect the ASCII code of seven bits is important. For succinct coding, octal codes are used, in which the base is 8 consisting of the numbers 0, 1, 2, 3, 4, 5, 6, and 7 striking off the decimals 8 and 9. It can be easily verified that the octal digits can be represented by blocks of 3 bits as the two bits can be permuted in 23=8

Octal digits01234567
Binary blocks000001010011100101110111

The seven places of an ASCII word can be filled in 27=128 ways by the two bits 0 and 1. Accordingly 128 symbols, alphanumeric or any other can be bit coded. A very short list of ASCII words is presented below:

0123ABC<=>
0608061806280638101810281038074807580768

A full table of the code is given in Adámek [8], p.10. In practice one additional bit place is kept with every ASCII word as a check, so that the word length is actually 8. An 8 bit word is called a byte. A computer usually uses a word length of 4 bytes or 32 bits. For representation in such long length, a base of 16 = 24 bits is used to represent each symbol by 4 bits. Such coding is called hexadecimal represented by the 16 symbols 0, 1, 2,....., 9, A, B, C, D, E, F.

Audio and video information are continuous analog information. Such signals are sampled (see Leach et al. [1], p. 3) at small time or space–time intervals and are thus rendered discrete to generate digital data and suitably coded in bits. Foe instance, the basic colors of red, green, and blue are coded as #FF0000, #00FF00, and #0000FF, respectively, where the code of the symbol # is 0438. The respective color codes of white and black are #FFFFFF and #000000.

Advertisement

3. Algebraic formulation

A digital Code C is a sequence of words constituted of string of bits of some fixed length n. A code word C can therefore be considered as an nvector denoted as a=a0a1a2an1 in which the elements a0,a1,a2,,an101. The commas separating the elements of a are dropped as unwanted symbol to form the block of bits. A code word of C usually carries the message bits and some extra bits for detection of errors and their correction. This is necessary even though the loading time of bits increases to some extent. If the message consists of k bits, and nk bits for error detection and correction, then it is called an nk code. Evidently by permutation, the number of messages in C that can be formed is 2k. As an example the 74 code of three words

100001101001010010110

with the last three bits 011, 101, 110 of each message word represents the decimal number 842 according to the 4 bit hexadecimal representation of the three decimal digits.

A code C when transmitted through a channel may contain some error and transmitted as b0b1b2bn1 instead of the actual code a0a1a2an1. For error detection and correction, the following definition named after Richard Hamming [17] is introduced to keep the code words to be as wide apart as possible.

Definition (Hamming distance). Given two words a=a0a1a2an1and b=b0b1b2bn1 their distance dab is defined as the number of positions in which a and b differ. Thus,

dab=number of indices if or whichaibi,i=012n1E3

As an example consider three words x=1000011, y=0100101, and z=0010110 of the preceding example, then dx.y=dyz=dzx=4. But x and y as before and z=1100110, one gets d(x,y=4, dyz=dzx=3. The 4 bit message of the example in decimals is x=8,y=4,z=2 while z=C (in Hex) or decimal 12, in the second case. It may be observed that dxydyz+dzx and dzxdxy+dyz. In general, it can easily be shown that the Hamming distance dab is a metric on the set of words of length n satisfying the triangle inequality (Adámek [11], p. 46), as demonstrated in the example.

The definition of Hamming distance is useful for detection of errors in the following manner. A block code C is said to detect t errors provided that for each code word a and each word b obtained from a by corrupting 1,2,,t symbols b is not a code word.

Definition. The minimum distance dC of a code C is the smallest Hamming distance of two distinct code words of the code C, that is,

dC=mindababarewordsinCandabE4

For example suppose that C=100001101001010010110,dC=4 and for =100001101001011100110,dC=3. The following proposition deals with the question of detection of errors in a code.

Proposition 1. A code C detects t errors if and only if dC>t.

Proof. If dCt, then C does not detect t errors. In fact, let a, a’ be correct and received code words with daa=dC. Then daat, so the error which changes the original code a to the received word a’ escapes undetected. On the other hand, if dC>t, then C detects t errors. For, by definition, 1daat. Then a’ can not be a code word since dCdaat.

Regarding correction of codes, let a’ be the word obtained by corrupting 1,2,,t bits of the code word a, then the Hamming distance daa is strictly smaller than that between a’ and any other code word b, that is, daa<dba. This leads to the following:

Proposition 2. A code C corrects t errors if and only if dC2t+1.

Proof. Let dC2t+1>2t, where daat. Hence for any other code word ba:dabdC>2t, and by the triangle inequality

daa+dabdab>2t

Hence,

dab>2tdaa2tt=tdaa

which means that C is a t error correcting code.

The proof of the converse is more complicated (Adámek [11], p/49), but the proposition has a simple geometric interpretation. Every code word of C can be thought of as a point in the n-dimensional vector space. Hence, every code word of Hamming distance of t or less would lie within a sphere centered at the code word with a radius of t. Hence, dC>2t implies that none of these spheres intersect. Any received vector a’ of a within a specific sphere will be closed to its center a and thus decodable correctly, being the nearest neighbor.

Advertisement

4. Linear block codes: generator matrix

As one is dealing here with only two numbers 0 and 1, the arithmetic over the two bits have to be redefined. For this purpose, congruence of two numbers from the Theory of Numbers is employed. For a given integer n>1, called modulus, two integers a and b are said to be congruent modulo m if ab/m = an integer and one writes a b (mod m). Thus, for m=2

20mod2,31mod2,40mod2,51mod2,etc.E5

Thus, addition and multiplication of the bits 0 and 1 adopting modulo 2 congruence is conveniently represented in tabular form as:

This particular arithmetic is very useful in the development of very useful codes. One is by use of matrices. In the table for addition, it is noteworthy that 1+1=0 so that 1=1.

A message of length k in a binary nk block C can be formed by permutation of 0 and 1 in 2k ways. In practice k is large, and so the dictionary of words becomes very large. For abbreviation let it be assumed that the codewords belong to k-dimensional linear vector space of n-vectors. The k basis vectors of the n-vectors can then be employed to write any code word of C by a linear combination of the basis vectors. This means that if e1,e2,,ek are the (unit) basis vectors, then every code word a can be written as a linear combination

a=i=1kcieiE6

for a unique k-tuple of scalars ci. In other words, c1c2ck determine a unique code word. Eq. (6) can be written in matrix notation as

a=cGE7

where

G=e1e2ekTE8

G is called the generator matrix of the code C. Evidently it is much more convenient to store G in the memory for generating any code word. For example, Adámek [11], p.72, Kythe and Kythe [4], p.76) consider the Hamming (7, 4) of 24=16 code words as under:

Code wordCode word
0000 0000110 011
1000 0110101 010
0100 1010011 001
0010 1101110 000
0001 1111101 001
1100 1101011 010
1010 1010111 100
1001 1001111 111

employed by many authors for illustrative purposes of the coding methods, as the actual code words in practice are very long for unveiling the special features of the different methods of coding. The generator matrix of the code is

G=100001101001,0100101100001111E9

Every code word of the code can be generated from it by a linear combination of the rows. For instance, the second code word is generated by taking c1=1,c2=c3=c4=0 and the third by taking c1=0,c2=1,c3=c4=0, etc.

By a change of basis the generator matrix changes. The most systematic way is to send the message c0c1ck1 by sending it as c0c1ck1dkdn1 whose generator matrix is

G=IPE10

where I is the k×k identity (unit) matrix, and P is a k×nk matrix called the parity matrix. In the above example, the generator matrix is in the systematic form with

PT=011110111101E11

Definition. An nk code C with a generator G=IP in systematic form is defined to have a parity check matrix H=PI where I′ is the identity matrix of dimension nk.

From the above definition, it immediately follows that.

Proposition 3. The matrix HT is orthogonal to G.

Proof. GHT=IPPI=P+P=0

This relation can be checked for the Hamming 74 code keeping in mind the modulo-2 arithmetic for which 1+1=0. This means that G is a correct generator of the 74 code.

If an incorrect code word is transmitted which does not make G satisfy the condition GHT=0, then that word does not belong to C, and the error is detected. In this way, the parity matrix helps detect errors.

In general, one has the Hamming codes [17] having the properties:

Block Length:n=2m1Message Length:k=2mm1

then it can be shown that the minimum distance of such codes is 3, and therefore, a Hamming code corrects a single error according to Proposition 2.

Advertisement

5. Finite fields

The modulo arithmetic over the elements of a finite set is particularly useful for algebraically extending further development of codes by introducing the definition of fields. As is well known, a field F is a set of elements 01abc over which two closed operations `+ (addition) and ` (multiplication) can be applied which satisfy the commutative, associative, and the distributive laws. For a nonzero element a, it is also assumed that a multiplicative inverse a1Fexists such that aa1=1.. Usually one write ab simply as ab. If in a set F the multiplicative inverse does not exist, then it is called a Ring. If the number of elements of F is finite, it is called a finite field. It is easy to verify that the field F2 of the bit set 01 satisfying the mod 2 arithmetic is a finite field. However the set of all decimal integers Z=0±1±2 forms an infinite integer ring. Similarly, the set of all polynomials Fx=a0+a1x++anxn:aiFn0 also forms a polynomial ring.

Proposition 4. For every (decimal) prime p, Zp is a field.

Proof. Since Zp is a ring as noted earlier for Z it is only required to prove that every element i=1,2,,p1 possesses an inverse. Firstly, i=1 has an inverse element i1=1. Secondly, suppose that for i>1 all the inverse elements 11,21,,i11 exist. Now perform the integer division p/i, denoting the quotient by q0 and the remainder by r; then one has

p=qi+rE12

Now, as p is next to the last element p1Zp, so that in modulo p arithmetic p0, and Eq. (13) means that

r=qi=iqE13

Since q0 and i lie between 2 and p1, it follows that r0 so that r1 exists and i=q1r. It follows that

iqr1=iqr1=rr1=1E14

which means that i1 exists and is equal to qr1, and the proposition is proved by induction.

The above proposition shows that a number of finite fields exist, viz. Z2,Z3,Z5,Z7,. Of particular interest here is the field Z2 which will be written as GF2 and its extension GF2m over the elements 01αα2α2m1 which is called the Galois field named after Éveriste Galois (CE 1811 – 1832), who earned fame in his teen age to die early in a gun dual to pass into the history of stellar mathematicians. The extension is based on the treatment of polynomials over the binary field.

Advertisement

6. Binary field polynomials

Consider calculation with polynomials whose coefficients are the binary bits 01 of GF2. A polynomial fx with one variable x and binary coefficients is of the form

fx=a0+a1x+a2x2++anxnE15

where ai==0 or 1 for 0in. If an=1, the polynomial is called monic of degree n. The variable is kept indeterminate and has only a formal algebraic role in coding.The polynomials of degree 1 over GF2 are evidently x and 1+x. Similarly, the polynomials of degree 2 are x2, 1+x2, x+x2, and 1+x+x2 and so on. In general, there are 2n polynomials over GF2 with degree n.

Polynomials over Galois field GF2 can be added (or subtracted), multiplied, and divided in the usual way of treating real and complex valued polynomials.. Let

gx=b0+b1x+b2x2+,bmxmE16

be another polynomial over GF2, where mn. Then, fx and gx are added by simply adding the coefficients of the same power of x in fx and gx:

fx+gx=a0+b0+a1+b1x++am+bmxm+am+1xm+1+anxnE17

where ai+bi is carried out in modulo-2 addition. For example, let ϕx=1+x+x3+x5 and ψx=1+x+x2+x3+x4+x6, then

ϕx+ψx=1+1+x+x2+1+1x3+x4+x5+x6=x+x2+x4+x5+x6E18

as 1+1=0. Similarly, when fx is multiplied to gx, the following product is obtained

c0=a0b0c1=a0b1+a1b0c2=a0b2+a1b1+a2b0ci=a0bi+a1bi1+a2bi2++aib0cn+m=anbmE19

the multiplication and addition of the coefficients being in modulo-2. As a result, the polynomials ϕx and ψx satisfy the commutative, associative, and the distributive properties of addition and multiplication.

The division of fx by gx of nonzero degree can also be defined in the usual way by the division algorithm, so that fx/gx leaves a unique quotient qx and a remainder rx in GF2, that is

fx=qxgx+rxE20

As an example consider ψx/ϕx:

x5+x3+x+1)x6+x4+x3+x2+1(xx6+x4+x2+x¯x3+x+1

noting that x=x in GF2. Hence, qx=x and rx=1+x+x3. It can be easily verified that

x6+x4+x3+x2+1=xx5+x3+x+1+x3+x+1

If a polynomial fx in GF2 vanishes for some value a01, then a is called a zero of fx as in the case of real and complex variables. If fx has even number of terms such as in the case of the polynomial ϕx, then it is exactly divisible by x+1 as ϕ1=1+1+1+1=0. A polynomial px over GF2 of degree m is called irreducible over GF2 if px is not divisible by any polynomial over GF2 of degree less than m. Among the four polynomials of degree 2, viz. x2, x2+x, x2+1, x2+x+1, the first three are reducible, since they are divisible by x or x+1. However, x2+x+1 does not have x=0 or 1 as zero and so is not divisible by x or x+1. Thus, x2+x+1 is an irreducible polynomial of degree 2. Similarly, x3+x+1 and x4+x+1 are irreducible polynomials of degree 3 and 4, respectively, over GF2. It can be proved in general that (Gathen and Gerhard [9]):

Proposition 5. The polynomial x2m1+1 over GF2 is the product of all irreducible monic polynomials.

Example 1. It can be verified by multiplication of the factors on the right hand sides that.

If m=2, x3+1=x2+x+1x+1.

If m=3, x7+1=x3+x+1x3+x2+1x+1.

If m=4, x15+1=x4+x+1x4+x3+1x4+x3+x2+x+1x+1, etc.

An irreducible polynomial px of degree m is said to be primitive if m is the smallest positive integer for which px divides x2m1+1. It is not easy to identify a primitive polynomial because of difficulty in factorizing x2m1+1. However, comprehensive tables have been prepared for them for reference purposes (Lin and Costello [9]). A very short table is presented below:

mPrimitive Polynomial
21+x+x2
31+x+x3
41+x+x4
51+x2+x5
61+x+x6
71+x3+x7
81+x2+x3+x4+x8
91+x4+x9
101+x3+x10

Finally, the following interesting property holds.

Proposition 6. For any l0, fx2l=fx2l.

Proof.

f2x=a0+a1x+a2x2++anxn2=a02+a0a1x+a2x2+anxn+a0a1x+a2x2+anxn+a1x+a2x2++anxn2=a02+a1x+a2x2++anxn2

as 1+1=0. By similar repeated expansion, it follows that

f2x=a02+a1x2+a2x22+anxn2

Now since, ai=0 or 1, ai2=ai, so that

f2x=a0+a1x2+a2x22++anxn2=fx2

Squaring again one has f4x=fx4 and so on. Hence, the result for l0.

Corollary. If for an element β, fβ=0, then fβ2l=0. The element β2l is called a conjugate of β.

6.1 Construction of Galois field GF(2m)

The Galois field extension GF2m from that of GF2=01 is obtained by introducing a new element say α, in addition to 0 and 1. Then, by definition of multiplication

0α=α0=0,1α=α1=α;α2=αα,α3=ααα,,αj=αααjtimesE21

Thus, a set F is created by “multiplication” as

F=01αα2αjE22

Next, a condition is put on α so that F contains only 2m elements and is closed under the multiplication “”. For this purpose, let px be a primitive polynomial of degree m over GF2 such that α is a zero of px, that is, pα=0 over GF2m. Since px divides x2m1+1 exactly according to Proposition 5, one has

x2m1+1=qxpxE23

where qx is the quotient and zero the remainder. Hence, taking x=α,

α2m1+1=qαpα=qα0=0E24

So that by modulo-2 addition

α2m1=1E25

terminating the sequence in Eq. (26) at α2m1. Thus, under the condition pα=0, the set becomes a finite set F consisting of the 2m elements

F=01αα2α2m1E26

The nonzero elements of F are closed under the operation of multiplication. For proving this property, consider the product αiαj=αi+j. If i+j<2m1,αi+jF. If i+j2m1, then writing i+j=2m11+r, where 0r<2m1,

αi+j=α2m1+r=1αr=αrE27

by Eq. (26), in which αr is an element of F.

The nonzero elements of F are also closed under the operation of addition. For this purpose, divide xi,0i2m1 by px the primitive polynomial of degree n, where pα=0 as before; then for 0i<2m1 one can write

xi=qixpx+rixE28

in which qix and rix are quotient and remainder, respectively. The remainder rix is a polynomial of degree m1 or less over GF2 and hence is of the form

rix=ri0+ri1x+ri2x2++ri,m1xm1E29

Hence, setting x=α

αi=ri0+ri1α+ri2α2++ri,m1αm1E30

Similarly if 0j<2m1, αj can be represented as a polynomial at most of degree m1. Thus, αi+αj would be a polynomial at most of degree m1, and by addition of the two polynomials, the summand would be equal to some αk where 0k<2m1. This proves the assertion.

Example 2. As in Lin and Costello [12], p. 32, let m=4, so that GF24=01αα2α3α4α5α6α7α8α9α10α11α12α13α14. Its primitive polynomial over GF2 is px=1+x+x4, so that set pα=1+α++α4=0, or adding 1+α to the two sides of the equation α4=1+α. Hence,

α5=αα4=α1+α=α+α2,α6=αα+α2=α2+α3,α7=α3+α4=1+α+α3,α8=α+α2+α4=1+α2,etc.

The highest power of α is 3 in these elements and the 4-tubles form the block code words of length 4, which can be represented in the hexadecimal code as well:

Power representationPolynomial representation4-tuple representationHexadecimal
00(0 0 0 0)0
11(1 0 0 0)8
αα(0 1 0 0)4
α2α2(0 0 1 0)2
α3α3(0 0 0 1)1
α41+α(1 1 0 0)C
α5α+α2(0 1 1 0)6
α6α2+α3(0 0 1 1)3
α71+α+α3(1 1 0 1)D
α81+α2(1 0 1 0)A
α9α+α3(0 1 0 1)5
α101+α+α2(1 1 1 0)E
α11α+α2+α3(0 1 1 1)7
α121+α+α2+α3(1 1 1 1)F
α131+α2+α3(1 0 1 1)B
α141+α3(1 0 0 1)9

Proposition 7. The elements of GF2m form all the zeros of x2m+x.

Proof. The proposition obviously holds for the element 0. For a nonzero element βGF2m let, β=αi then β2m1=αi2m1=α2m1i=1i=1 by Eq. (26). Hence, by modulo-2 addition one has β2m1+1=0 or, β2m+β=0.

The next proposition determines the minimal polynomial corresponding to an element βGF2m:

Proposition 8. If f e is the smallest integer for which β2e=β, then the minimal polynomial ϕx corresponding to βGF2m is given by

ϕx=Πi=0e1x+β2iE31

Proof. Since β is a zero of ϕx, ϕβ=0. Hence, by the Corollary to Proposition 6, ϕβ2i=0 which means that β2i is also a zero of ϕx. Hence, ϕx is the product of the factors x+β2i, provided that i is one less than that makes β2i1=1 or, β2i=β.

Example 3. For β=α3GF24, the conjugates of β are β2=α6,β22=α12,β23=α24=α9. The minimal polynomial of β is ϕx=x+α3x+α6(x+α12x+α9=x2+α2x+α+α3x2+1+α2x+α2+α3=x4+x3+x+1, using the table given above, with α15=1.The following table gives the minimal polynomials for all the powers of α (Adámek [11], p. 216):

ElementsMinimal Polynomial
0x
1x + 1
α,α2,α4,α8x4+x+1
α3,α6,α9,α12x4+x3+x2+1
α5,α10x2+x+1
α7,α11,α13,α14x4+x3+1

Thus, all the irreducible minimal polynomial factors of x241+1 are obtained.

Advertisement

7. Cyclic codes

Cyclic codes introduced by Prange [13] form an important subclass of linear codes by the introduction of additional algebraic structure that a cyclic shift of a code word is also a code word. Thus, if in a code word a=a0a1an1 of a cyclic code, a shift of one place to the right is made a new word a1=an1a0a1an2 is formed. Similarly, a shift of l places to the right is made, then the word

al=anlanl+1an1a0a1anl1E32

is formed. It may be checked that the 74 Hamming code noted after Eq. (8) is not a cyclic code.

The special algebraic properties of the cyclic codes are described by a polynomial representation formed by the component elements of a:

fx=a0+a1x+a2x2++an1xn1E33

where x is indeterminate, and the degree is n1 or less according to an1=1 or 0. Here, the polynomial is called a code polynomial, and the code word al is represented by the polynomial

flx=anl+anl+1x++an1xl1+a0xl+a1xl+1++anl1xn1E34

The polynomial flx can be represented in a compact form.

Proposition 9. flx=xlfx(modxn+1).

Proof.

xlfx=a0xl+a1xl+1++anl1xn1+anlxn++an1xn+l1=anl+anl+1x++an1xl1+a0xl++anl1xn1+anlxn+1+anl+1xxn+1++an1xl1xn+1=qxxn+1+flxE35

where q(x=anl+anl+1x++an1xl1, which proves the theorem.

In general, consider an nk cyclic code C that possesses a code polynomial

gx=1+g1x+g2x++gr1xr1+xrE36

of minimum degree r (such as 1+x+x3 in the above given example), then the polynomials xgx=g1x,x2gx=g2x,,xnr1gx=gnr1x represent cyclic shifts of the code polynomial gx that are code polynomials in C. Since C is linear, a linear combination

ψx=b0gx+b1xgx++bnr1xnr1gx=b0+b1x++bnr1xnr1gxE37

is also a code polynomial with bi=0 or 1 of degree n1 or less. The number of such polynomials is 2nr. However, there are 2k code polynomials in C, so that nr=k or, r=nk. Thus,

Proposition 10. In an nk cyclic code C, one unique code polynomial

gx=1+g1x+g2x2++gnk1xnk1+xnkE38

of degree nk called the generator polynomial yields every binary polynomial code of degree n1 or less by multiplication with another polynomial of degree k1.

From Eq. (39), one can find a generator polynomial from the following:

Proposition 11. The generator polynomial gx of an nk cyclic code is a factor of xn+1.

Proof. Multiplying gx by xk in Eq.(39), one obtains a polynomial xkgx of degree n. Hence, according to Eq. (36)

xkgx=xn+1+gkxE39

where gkx is the remainder, which is a polynomial obtained by k cyclic shifts of the coefficients of gx. Hence, gkx is a multiple of gx, say ψx of degree k, viz. gkx=ψxgx. Thus,

xn+1=xk+ψxgxE40

which completes the proof.

In practice where n is large xn+1 may have several factors of degree nk to describe cyclic codes. For example (Lin and Costello [12], p. 90)

x7+1=1+x1+x+x31+x2+x3

in which either of the last two factors can be selected for a generator polynomial. In the example considered earlier, we selected gx=1+x+x3. In practice, it is difficult to make a choice because of implementation difficulty. Nevertheless it is possible to form the generator matrix of a cyclic code and parity-check matrix for error detection and correction. Lin and Costello [9] give an excellent treatment of the whole topic.

Advertisement

8. The BCH codes

The Bose, Chaudhuri, Hocqenghem (BCH) [14, 15] codes form a large class of powerful random error-correcting codes (Lin and Costello [9]). It generalizes the Hamming code in the following manner:

Block length:n=2m1Parity check bits:nkmtMinimum distance:d2t+1E41

where m3, and t<2m1.

This code is capable of correcting any combination of t or fewer errors in a code word of length n=2m1 bits and is called a terrorcorrecting code.The generator polynomial of the code gx of length 2m1 is the lowest degree polynomial over GF2 which has

α,α2,α3,,α2tE42

as its zeros, that is to say, gαi=0 for 1i2t. It follows from the Corollary to Proposition 6 that the conjugates of the zeros α,α2,α3,,α2t are also zeros of gx. If ϕix is the minimal polynomial of αi, then gx must be the lowest common multiple (LCM) of ϕ1x,ϕ2x,ϕ2tx, that is

gx=LCMϕ1xϕ2xϕ2txE43

Now, if i is an even integer, it can be written as i=i2l where i is an odd number and l1. Then, for such i, αi=αi2l, which is conjugate of αi, and therefore, αi and αi have the same minimal polynomial, that is

ϕix=ϕixE44

Hence, every even power of α in the sequence (44) has the same minimal polynomial as some preceding odd power of α in the sequence. As a result, the generator gx given by Eq. (44) reduces to

gx=LCMϕ1xϕ3xϕ2t1xE45

Since the degree of each minimal polynomial is m or less, the degree of gx is at most mt. This means that the number of parity-check bits nk of the code is at most mt. There is, however, no simple formula for enumerating the parity nk bits, but tables do exist for various values of n,k, and t (Lin and Costello [9]).

In the special case of single error correction for a n=2m1 long code word, gx=ϕ1x which is a primitive polynomial of degree 2m. Thus, the single error correcting BCH code of length 2m1 is a cyclic Hamming code.

Example 4. As in Lin and Costello [12], p. 149, let α be a primitive element of GF24 such that α4+α+1=0. From Example 2,

ϕ1x=1+x+x4ϕ3x=1+x+x2+x3+x4

Hence, the double error correcting BCH code of length n=241=15 is generated by

gx=LCMϕ1xϕ3x=ϕ1xϕ3x=1+x+x41+x+x2+x3+x4=1+x4+x6+x7+x8

It is possible to construct the parity matrix H of this code and is presented in Lin and Costello [9].

Advertisement

9. The RS codes

In the construction of BCH codes, the generator polynomials over GF2 were considered using the elements of the minimal polynomials over the extended field GF2m. Since the minimal polynomial for an element β also has all the conjugates of β as the zeros of the minimal polynomial, the product of the minimal polynomials usually exceeds the number 2t of the specified zeros. In the Reed–Solomon (RS) codes [16], this situation is tackled by considering the extended GF2m as the starting point. An element βGF2m has obviously the minimal polynomial x+β. If β=αi where αGF2m, the required generator gx of degree 2t as in Eq. (46) becomes

gx=x+αix+αi+1x+αi+2t1E46

There are no extra zeros in gx included by the conjugates of the minimal polynomial. So the degree of gx is exactly 2t. Thus, nk=2t for a RS code and the minimum distance by Proposition 2 is d=2t+1=nk+1. Hence, an RS code is

Block length:n=2m1Parity check bits:nk=2tMinimum distance:d=nk+1E47

Example 5. Let n=241=15, and consider three error codes t=3 over GF24, having the primitive polynomial px=1+x+x4. Taking i=1 in Eq. (47) the required generator polynomial is

gx=x+αx+α2x+α3(x+α4x+α5x+α6

where α4=1+α, and α15=1. Thus simplifying, one gets the generator polynomial for the (15, 9) code over GF24 as

gx=α6+α9x+α6x2+α4x3+α14x4+α10x5+x6

The corresponding code word is α6α9α6α4α14α101. Using the table of Example 2, one obtains the binary equivalent over GF2 as

0011010100111100100111101000

The length of the binary word is 28. This type of code is called derived binary code.

Advertisement

10. Conclusion

In this information age transmission of data is all pervasive due to immense development of electronic technology. In this general scenario, it is rarely recognized that the foundations of this information web were layed by “A mathematical theory of communication” propounded by Claude E. Shannon [2] that called for means of error-free transmission of information as digital data. This realization led to the creation of Theories of Coding by more mathematicians, pioneered by Richard W. Hamming [17] emphasizing that data need to be appropriately coded for realizing the objectives. As digital data consist of just two bits 0 and 1, special algebra were employed which were based on the algebra of finite fields. In this endeavor, several types of data coding have been discovered and put to practical use depending on the application. Some of the codes developed depend on polynomials over the binary field of 0 and 1; prominent among them being the BCH [14, 15] and the RS codes [16] that are widely used in practice. This chapter gives a simple mathematical preview of this type of code development and is intended for those who may be interested to further delve into the subject of coding of digital data.

Acknowledgments

The author is thankful to the SN Bose National Center for Basic Sciences for supporting this research, as also to the referees for their learned comments for the improvement in the presentation of this article.

Disclosures

There is no conflict of interests in the presented chapter.

Data availability

No data were generated or analyzed in the presented chapter.

References

  1. 1. Leach DP, Malvino AP, Saha G. Digital Principles and Applications. New Delhi: Tata McGraw Hill Education; 2011
  2. 2. Shannon CE. A mathematical theory of communication. Bell System Technology Journal. 1948;27:379-423
  3. 3. Bose R. Information Theory, Coding and Cryptography. New Delhi: McGraw Hill Education; 2016
  4. 4. Kythe DK, Kythe PK. Algebraic and Stochastic Coding Theory. Boca Raton: CRC Press; 2012
  5. 5. Roth RM. Introduction to Coding Theory. Cambridge: Cambridge University Press; 2006
  6. 6. Moon TK. Error Correction Coding: Mathematical Methods and Algorithms. Hoboken, New Jersey: Wiley-Interscience
  7. 7. Ling S, Xing C. Coding Theory a First Course. Cambridge: Cambridge University Press; 2004
  8. 8. Blahut RE. Alebraic Codes for Data Transmission. Cambridge: Cambridge University Press; 2003
  9. 9. Gathen JW, Gerhard J. Modern Computer Algebra. Cambridge: Cambridge Universit Press; 2003
  10. 10. Proakis JG, Salehi M. Digital Communications. Boston: McGraw Hill Higher Education; 2001
  11. 11. Adámek J. Foundations of Coding. New York: John Wiley & Sons; 1991
  12. 12. Lin S, Costello DJ Jr. Error Control Coding: Fundamentals and Applications. Prentice-Hall; 1983
  13. 13. Prange E. Cyclic Error-Correcting Codes in Two Symbols, AFCRC-TN-57. Cambridge: Air Force Cambridge Research Center; 1957
  14. 14. Bose RC, Ray-Chaudhuri DK. On a class of error correcting binary group codes. Information and Control. 1960;3:68-79
  15. 15. Hocquenghem A. Codes Correcteurs d’erreurs. Chiffres. 1959;2:147-156
  16. 16. Reed IS, Solomon G. Polynomial codes over certain finite fields. Journal of the Society for Industrial and Applied Mathematics. 1960;8:300-304
  17. 17. Hamming RW. Error detecting and error correcting codes. Bell System Technical Journal. 1950;29:147-160

Written By

Sujit K. Bose

Submitted: 21 December 2022 Reviewed: 09 February 2023 Published: 25 March 2023