Professional Documents
Culture Documents
Coding Theory
Coding Theory
Definition. The order of a nonzero element α of a finite field IF , denoted by ord(α), is the
smallest positive integer k such that αk = 1. An element α in a finite field IF of order n is
called a primitive element (or generator) of IF , if IF = 0, α, α2 , . . . , α n−1 = 1 .
Example. Consider the field IF = IK 2 [α], where α is a root of the irreducible polynomial
1 + x + x2 ∈ IK 2 [x]. Then we have: α2 = 1 + α, α3 = α(α + 1) = α2 + α = 1 + α + α = 1. Thus,
IF = {0, , α, 1 + α, , 1} = 0, α, , α2 , , α3 , so α is a primitive element.
Definition. The least common multiple of k non-zero monic polynomials f1 (x), . . . , fk (x)
n
in IK [x], denoted by lcm( f1 (x), . . . , fk (x) ), is the monic polynomial of the lowest degree
which is divisible by all the polynomials f1 (x), . . . , fk (x).
Example. The binary polynomial f (x) = x15 + 1 is divisible by f1 (x) = 1 + x + x2 ,
f2 (x) = 1 + x + x4 , and f3 (x) = (1 + x + x2 )(1 + x3 + x4 ), respectively. Then f (x) is also
divisible by
Let α be a root of the polynomial g(x) = 1 + x + x3 . Now we construct all the powers of x
modulo g(x)
Word P(x) modulo g(x)) Power of b
000 0 −−−
100 1 α0 = 1
010 x α1
001 x2 α2
110 x3 = 1 + x α3
011 x4 = x + x2 α4
111 x5 = x2 + x3 = 1 + x + x2 α5
101 x6 = x + x2 + x3 = 1 + x2 α6
100 x7 = x + x3 = 1 α7
g(x) = (1 + x + x4 ) (1 + x + x2 + x3 + x4 ) = 1 + x4 + x6 + x7 + x8 .
generates the dual code of this BCH code. The generator matrix of the dual code is:
1 1 0 1 0 0 0 1 0 0 0 0 0 0 0
0 1 1 0 1 0 0 0 1 0 0 0 0 0 0
0 0 1 1 0 1 0 0 0 1 0 0 0 0 0
0 0 0 1 1 0 1 0 0 0 1 0 0 0 0
G⊥ =
0 0 0 0 1 1 0 1 0 0 0 1 0 0 0
0 0 0 0 0 1 1 0 1 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0 1 0 0 0 1 0
0 0 0 0 0 0 0 1 1 0 1 0 0 0 1
By transposing the matrix G⊥ , we may obtain a parity-check matrix.
We may also use the primitive polynomial h(x) = 1+x+x4 to obtain a parity-check matrix.
The main reason for choosing a primitive polynomial is that we need to make sure that
x i 6= 0, for all i < 2 4 − 1 = 15.
Once all the powers of xk are obtained, we assign to each row of the parity-check matrix,
the binary numbers associated with α and α3 .
Notice that x15 = x 16−1 = 1, which indicates that h(x) = 1+x+x4 is a primitive polynomial.
Here is how we construct the parity-check matrix:
The first row of the matrix H is obtain from α0 = 1 0 0 0 and α0 = 1 0 0 0. Thus the first row
is H1 = 1 0 0 0 1 0 0 0, but the second row is derived from α = 0 1 0 0 and α3 = 0 0 0 1. Hence
H2 = 0 1 0 0 0 0 0 1, and so on.
power of α power of α3
1 0 0 0 1 0 0 0
0 1 0 0 0 0 0 1
0 0 1 0 0 0 1 1
0 0 0 1 0 1 0 1
1 1 0 0 1 1 1 1
0 1 1 0 1 0 0 0
0 0 1 1 0 0 0 1
H = 1
1 0 1 0 0 1 1
1 0 1 0 0 1 0 1
0 1 0 1 1 1 1 1
1 1 1 0 1 0 0 0
0 1 1 1 0 0 0 1
1 1 1 1 0 0 1 1
1 0 1 1 0 1 0 1
1 0 0 1 1 1 1 1
Using this parity-check matrix simplifies our decoding procedure.
To create BCH codes of length 15, we may use one of the three generator polynomials:
n k d Generator polynomial
15 11 3 g1 (x) = 1 + x + x4
15 7 5 g2 (x) = (1 + x + x4 ) (1 + x + x2 + x3 + x4 )
15 5 7 g3 (x) = (1 + x + x4 ) (1 + x + x2 + x3 + x4 ) (1 + x + x2 )
The [ 15 , 11 , 3 ] BCH code is actually a 1-error-correcting Hamming code. The code may
transmit up to 211 = 2048 different words. Although the [ 15 , 5 , 7 ] BCH is a 3-error-
correcting code, but it could transmit only 25 = 32 different words.
♣ Decoding 2 Error-Correcting BCH Code for IMLD. We describe a decoding scheme for
the 2-error-correcting [ 15 , 9 , 5 ] BCH code using the parity-check matrix H described
above. We shall identify a binary word with the corresponding power of α.
Assume the word w is received, with the syndrome of
w H = w(α) , w(α3 ) = [ s1 , s3 ].
w2 = [ 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 ] with s1 = [ 0 0 0 0 ] s3 = [ 1 0 1 0 ].
Case 3. If s13 = s3 , then correct a single error at position i, where s1 = αi .
w3 = [ 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 ] with s1 = [ 0 0 1 0 ] → α2 s3 = [ 0 0 1 1 ] → (α2 )3 = α6 . We have
s13 = s3 , so we conclude that the error occurred at x2 . Hence we correct w3 by changing
its third digit corresponding with x3 , , from one to zero.
Case 4. If s31 and s3 are different, then form the quadratic equation:
s3
x2 + s1 x + + s21 = 0.
s1
If the quadratic equation has two distinct roots αi and αj , correct errors at positions i
and j .
Suppose we received the word w4 = [ 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 ]. The syndrome is
Now α7 ∗αj = 1 = α15 , so αj = α8 is the other root. Therefore we correct errors at positions
i=7 and j = 8; that is
u = [0000001110000000]
v = w + u = [110111110011000]