Sie sind auf Seite 1von 35

Subject Seminar

on
BCH Codes
(Bose , Chaudhuri, Hocquenghem Codes)

Presented by
Umamaheswar.V
4JN12LDS17
MTech DECS, III Sem

JAWAHARLAL NEHRU NATIONAL COLLEGE OF ENGINEERING,


SHIMOGA.

CONTENTS

first slide

CONTENTS
Introduction
Binary primitive BCH codes
Generator polynomial of Binary BCH Codes
Properties of Binary BCH Codes
Parity Check Matrix of the BCH code

Decoding procedures
Syndrome computation.
Determination of the error pattern.
Error correction.

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

2 / 35

Introduction

Introduction
The Bose, Chaudhuri, and Hocquenghem (BCH) codes form a large
class of powerful random error-correcting cyclic codes.
This class of codes is a remarkable generalization of the Hamming
codes for multiple-error correction.
Binary BCH codes were first discovered by Hocquenghem in 1959 and
independently by Bose and Chaudhuri in 1960.
The original applications of BCH codes were restricted to binary
codes of length 2m 1 for some integer m. These were extended later
by Gorenstein and Zieler (1961) to the nonbinary codes with symbols
from Galois field GF(q).
Among the nonbinary BCH codes, the most important subclass is the
class of Reed-Solomon (RS) codes.
Among all the decoding algorithms for BCH codes, Berlekamps
iterative algorithm, and Chiens search algorithm are the most efficient
ones.
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

3 / 35

Binary primitive BCH codes

Binary primitive BCH codes


For any integer m 3 and t < 2m1 there exists a primitive BCH code
with the following parameters:
n=2m - 1 Block length
n k mt Number of parity-check digits
dmin 2t + 1 Minimum distance
This code can correct t or fewer random errors in a block of 2m 1 digits.
The code is a t-error-correcting BCH code.
For example, for m=6, t=3
n=26 -1=63
n-k=6 3=18
dmin =23+1=7
This is a triple-error-correcting (63, 45) BCH code.
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

4 / 35

Binary primitive BCH codes

Generator polynomial of Binary BCH Codes:

Generator polynomial of Binary BCH Codes


Let be a primitive element in GF (2m ) .
For 1 i 2t, let i (x) be the minimum polynomial of the field
element i .
The degree of i (x) is m or a factor of m.
The generator polynomial g(x) of a t-error-correcting primitive BCH
codes of length 2m -1 is given by
g (x) = LCM{1 (x), 3 (x)..., 2t1 (x)}
Since deg[i (x)]m,the deg[g(x)]mt. Hence the number of parity
-check digits n-k of the code is atmost mt.

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

5 / 35

Binary primitive BCH codes

Generator polynomial of Binary BCH Codes:

Note that the generator polynomial of the binary BCH code is originally
found to be the least common multiple of the minimum polynomials
1 (x), 2 (x), 3 (x)..., 2t (x)
g (x) = LCM{1 (x), 2 (x), 3 (x)..., 2t (x)}
However, generally, every even power of in GF( 2m ) has the same
minimal polynomial as some preceding odd power of in GF( 22m ).As a
consequence, the generator polynomial of the t-error-correcting binary
BCH code can be reduced to
g (x) = LCM{1 (x), 3 (x)..., 2t1 (x)}

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

6 / 35

Binary primitive BCH codes

Example 1

Example:
Let be a primitive element of the Galois field GF(24 )given by table below
such that 1++4 =0 Find the generator polynomial of Single
error,double error and tripple error correcting BCH code.
The minimal polynomials of ,3 and 5 are
1 (x) = 1 + X + X 4
3 (x) = 1 + X + X 2 + X 3 + X 4
5 (x) = 1 + X + X 2
The single-error-correcting BCH codes of length n=24 -1=15 is generated
by g(x)=1 (x) since t =1.
The double-error-correcting BCH code of length 15 is generated by
g (x) = LCM{1 (x), 3 (x)}
Since 1 (x) and 3 (x) are two distinct irreducible polynomials,
g(x)=(1 + X + X 4 )(1 + X + X 2 + X 3 + X 4 )
=1 + X 4 + X 6 + X 7 + X 8
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

7 / 35

Binary primitive BCH codes

Example 1

Thus the code is a (15,7)cyclic code with dmin 5.Because the weight of
the generator plolynomial is 5, the minimum distance of this code is
exactly 5.
The triple-error-correcting BCH code of length 15 is generated by
g (x) = LCM{1 (x), 3 (x), 5 (x)}
=(1 + X + X 4 )(1 + X + X 2 + X 3 + X 4 )(1 + X + X 2 )
=1 + X + X 2 + X 4 + X 5 + X 8 + X 10
Its a (15,5) cyclic code with dmin 7.Because the weight of the generator
plolynomial is 7, the minimum distance of this code is exactly 7.

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

8 / 35

Binary primitive BCH codes

Power
representation
0
1

2
3
4
5
6
7
8
9
10
11
12
13
14
Umamaheswar.V

(III Sem M.tech)

Example 1

Polynomial
4 Tuple
representation
representation
0
(0000)
1
(1000)

(0100)
2
(0010)
3
(0001)
1+
(1100)
+ 2
(0110)
2 + 3
(0011)
3
1++
(1101)
1 + 2
(1010)
3
+
(0101)
1 + 2 + 3
(1110)
+ 2 + 3
(0111)
2
3
1++ +
(1111)
1 + 2 + 3
(1011)
3
1+
(1001)
BCH Codes

November 11, 2013

9 / 35

Binary primitive BCH codes

Properties of Binary BCH Codes

Properties of Binary BCH Codes


Consider a t-error-correcting BCH code of length n =2m -1 with
generator polynomial g(x).
g(x) has as , 2 , 3 , ..., 2t roots, i.e.
g(i )=0 for 1 i 2t
The code polynomial v(x) is a multiple of g(x), v(x) also has
, 2 , 3 , ..., 2t as roots, i.e. v(i )=0 for 1 i 2t
We have a new definition for t-error-correcting BCH code:
A binary n-tuple v = (v0 , v1 , v2 , ..., vn1 ) is a code word if and only if
the poly.
v (x) = v0 + v1 x + ... + vn1 x n1
has , 2 , 3 , ..., 2t as roots
i.e. v (i ) = v0 + v1 i + v2 2i + ... + vn1 (n1)i =0
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

10 / 35

Binary primitive BCH codes

v = (v0 , v1 , v2 , ..., vn1 ).

Umamaheswar.V

(III Sem M.tech)

1
i
2i
.
.
.
(n1)i

Properties of Binary BCH Codes

= 0 for 1 i 2t

BCH Codes

November 11, 2013

11 / 35

Binary primitive BCH codes

Parity Check Matrix of the BCH code

H matrix (Parity Check Matrix) of the BCH code

1 ... n1
1 (2 )...(2 )n1

H =

.
2t
2t
n1
1 ( )...( )
If v is a code word in the t-error-correcting BCH code, then
v HT = 0
j is a conjugate of i , then v(j )=0 iff v(i )=0(Thm. 2.11) j-th row of
H can be omitted. As a result H can be reduced to the following form :

1 2 ... n1

1 3 (3 )2 ... (3 )n1

H =
.

1 (2t1) (2t1 )2 ... (2t1 )n1


Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

12 / 35

Binary primitive BCH codes

Parity Check Matrix of the BCH code

Note that the entries of H are elements in GF(2m ). Each element in


GF(2m ) can be represented by a m-tuple over GF(2). If each entry of H is
replaced by its corresponding m-tuple over GF(2) arranged in column
form, we obtain a binary parity-check matrix for the code.
EX 6.2
For Double-error-correcting (15,7) BCH code,find the parity check
matrix. Let be a primitive element in GF(24 )
The parity-check matrix is


1 2 3 4 5 6 7 8 9 10 11 12 13 14
H=
13 6 9 12 15 18 21 24 27 30 33 36 39 42
Using 15 =1 , and representing each entry of H by its 4-tuple,

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

13 / 35

Binary primitive BCH codes

H =

Parity Check Matrix of the BCH code

100010011010111
010011010111100
001001101011110
000100110101111
100011000110001
000110001100011
001010010100101
011110111101111

The t-error-correcting BCH code defined above indeed has minimum


distance at least 2t + 1.
The parameter 2t + 1 is usually called the designed distance of the
t-error-correcting BCH code.
The true minimum distance of a BCH code may or may not be equal
to its designed distance. There are many cases where the true
minimum distance of a BCH code is equal to its designed distance.
However, there are also cases where the true minimum distance is
greater than the designed distance.
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

14 / 35

Binary primitive BCH codes

Parity Check Matrix of the BCH code

Binary BCH code with length n 6= 2m 1 can be constructed in the


same manner as for the case n = 2m 1.
Let be an element of order n in GF(2m ) ,n | 2m 1 and g(x) be the
binary polynomial of minimum degree that has , 2 , ..., 2t as roots.
Let 1 (x), 2 (x), ..., 2t (x) be the minimal poly. of , 2 , ..., 2t
respectively then
g (x) = LCM{1 (x), 2 (x), ..., 2t (x)}
n = 1, , 2 , ..., 2t are roots of X n + 1
g (x)|(x n + 1)

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

15 / 35

Binary primitive BCH codes

Parity Check Matrix of the BCH code

We see that g(x) is a factor of X n + 1.


The cyclic code generated by g(x) is a t-error-correcting BCH code of
length n.
The number of parity-check digits mt
dmin 2t + 1
If not a primitive element of GF (2m ), the code is called a nonprimitive
BCH code.

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

16 / 35

Binary primitive BCH codes

Parity Check Matrix of the BCH code

Example 6.3:Consider the Galois field GF(26 ).The element =3 has order
n=21.Let t=2.Let g(x) be the binary polynomial of minimum degree that
has , 2 , 3 , 4 as roots.
The elements , 2 and 4 have the same minimal polynomial,which is
1 (x) = 1 + X + X 2 + X 4 + X 6
The minimal polynomial of 3 is
3 (x) = 1 + X 2 + X 3
Therefore,
g (x) = 1 (x)3 (x)
= 1 + X + X4 + X5 + X7 + X8 + X9
The (21,12) code generated by g(x) is a double-error- correcting
nonprimitive BCH code.
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

17 / 35

Decoding of BCH Codes

Decoding of BCH Codes

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

18 / 35

Decoding of BCH Codes

Decoding

Suppose that a code word v (x) = v0 + v1 x + ... + vn1 x n1 is transmitted


and the transmission errors result :
r (x) = r0 + r1 x + r2 x 2 + ... + rn1 x n1
Let e(x) be the error pattern. Then
r (x) = v (x) + e(x)
Decoding procedure:
(1) Syndrome computation.
(2) Determination of the error pattern.
(3) Error correction.
(1)Syndrome computation:
The syndrome is 2t-tuple,
S = (S1 , S2 , ..., S2t ) = r .H T
Si = r (i ) = r0 + r1 i + ... + rn1 (i )n1 for 1 i 2t
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

19 / 35

Decoding of BCH Codes

Decoding

Computation:
Let i (x) be the minimum polynomial of i .
Dividing r(x) by i (x),we obtain
r (x) = ai (x)i (x) + bi (x)
Where bi (x) is the remainder and i (i )=0.
Then Si = r (i ) = bi (i )
Thus, the syndrome component Si can be obtained by computing bi (x)
with x=i .

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

20 / 35

Decoding of BCH Codes

Decoding

EX6.4
Let be a primitive element of the Galois field GF (24 ) such that
1 + + 4 = 0.Consider double-error-correcting (15, 7) BCH code. If r =
(100000001000000)is the received vector, find the syndrome components.
The corresponding received polynomial is
r (x) = 1 + x 8
The syndrome consists of four components:
S = (S1 , S2 , S3 , S4 )
The minimal polynomials for , 2 and 4 are identical and
1 (x) =2 (x) =4 (x) =1 + x + x 4
The minimal polynomials of 3 is
3 (x) =1 + x + x 2 + x 3 + x 4
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

21 / 35

Decoding of BCH Codes

Decoding

Dividing r (x) = 1 + x 8 by 1 (x) =1 + x + x 4 ,we obtain the remainder


b1 (x) = x2
Dividing r (x) = 1 + x 8 by 3 (x) =1 + x + x 2 + x 3 + x 4 ,we obtain the
remainder
b3 (x) = 1 + x3
Substituting , 2 and 4 into b1 (x),we obtain
S1 = b1 () = 2
S2 = b1 (2 ) = 4
S4 = b1 (4 ) = 8
Substituting 3 into b3 (x),we obtain
S3 = b3 (3 ) = 1 + 9 = 1 + + 3 = 7
S = (2 , 4 , 7 , 8 )
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

22 / 35

Decoding of BCH Codes

Decoding

(2)Determination of error pattern:


Since r(x)=v(x)+e(x) then Si = r (i ) = v (i ) + e(i ) = e(i ) for 1
i 2t
This gives a relationship between the syndrome and the error pattern.
Suppose
e(x) = xj1 +xj2 +....+xjv

0 j1 < j2 <...j3 < n

S1 =j1 +j2 +....+jv


S2 = (j1 )2 +(j2 )2 +....+(jv )2
..
.
S2t = (j1 )2t +(j2 )2t +....+(jv )2t
Where j1 , j2 ,....,jv are unknown.
Any method for solving these equations is a decoding algorithm for the
BCH codes.
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

23 / 35

Decoding of BCH Codes

Decoding

Once j1 , j2 ,....,jv have been found, the powers j1 , j2 , ..., jv tell us


the error locations in e(x).
If the number of errors in e(x) is t or less, the solution that yields an
error pattern with the smallest number of errors is the right solution.
For convenience,let l = jl , 1 l v be the error location numbers.

S1 =1 +2 +...+v

2
2
2

S2 =1 +2 +...+v
power sum symmetricfunction
..

S2t =12t +22t +...+v2t

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

24 / 35

Decoding of BCH Codes

Decoding

Define
(x) = (1 + 1 x)(1 + 2 x)...(1 + v x)
= 0 + 1 x + 2 x 2 + ... + v x v
Where (x)is called the error-location polynomial.
The roots of (x) are 11 , 21 , ..., v1 which are the inverse of the
error location numbers.
Coefficients of (x):
0 = 1
1 = 1 + 2 + ... + v
2 = 1 2 + 2 3 + ... + v 1 v
..
.
v = 1 2 ...v

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

25 / 35

Decoding of BCH Codes

Decoding

These coefficients are known as elementary symmetric functions. i0 s are


related to sj0 s by Newtons identities.
S1 + 1 = 0
S2 + 1 S1 + 22 = 0
S3 + 1 S2 + 2 S1 + 33 = 0
..
.
Sv + 1 Sv 1 + ... + v 1 S1 + v v = 0
Sv +1 + 1 Sv + ... + v 1 S2 + v S1 = 0
Note that, for binary case, 1+1=2=0,we have

i for odd i
ii =
0 for
even i

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

26 / 35

Decoding of BCH Codes

Decoding

Berlekamps iterative algorithm: To carry out the iteration of finding


(X ) , we begin with the following table:

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

27 / 35

Decoding of BCH Codes

Decoding

l is the degree of () (x).


If d = 0, then +1 (x) = (x)and l+1 = l .
If d 6= 0, find another row prior to the th row such that d 6= 0
and the number l in the last column of the table has the largest
value.Then +1 (x) is given by
(+1) (x) = () (x) + d d1 x () () (x)
and l+1 = max(l , l + ).
(+1)

In either case,d+1 = S+2 + 1

(+1)

S+1 + ... + l+1 S+2l+1

The polynomial 2t (x) in the last row should be the required (x).

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

28 / 35

Decoding of BCH Codes

Decoding

Ex 6.5: Let be a primitive element of the Galois field GF (24 ) such that
1 + + 4 = 0.Consider (15,5) triple-error-correcting BCH codes with
p(x) = 1 + x + x 4 .
Assume that the codeword of all zeros,
v = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
is transmitted and the received vector is
r = (0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0)
Then r (x) = x 3 + x 5 + x 12
Obtain the error polynomial and corrected vector.
Solution:
The minimal polynomials for , 2 and 4 are identical and
1 (x) =2 (x) =4 (x) =1 + x + x 4
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

29 / 35

Decoding of BCH Codes

Decoding

The minimal polynomials for 3 and 6 are identical and


3 (x) =6 (x) =1 + x + x 2 + x 3 + x 4
The minimal polynomials of 5 is
3 (x) =1 + x + x 2
1 (x) = 1 + X + X 4
3 (x) = 1 + X + X 2 + X 3 + X 4
5 (x) = 1 + X + X 2

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

30 / 35

Decoding of BCH Codes

Decoding

Dividing r(x) by 1 (x), 3 (x)and5 (x),respectively,we obtain the following


remainders:
b1 (x) = 1
b3 (x) = 1 + X 2 + X 3
b5 (x) = X 2
Substituting , 2 and 4 into b1 (x),we obtain the following syndrome
components:
S1 = S2 = S4 = 1
Substituting 3 and 6 into b3 (x),we obtain
S3 = 1 + 6 + 9 = 10
S6 = 1 + 12 + 18 = 5
Substituting 5 into b5 (x),we obtain
S5 = 10
S = (1, 1, 10 , 1, 10 , 5 )
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

31 / 35

Decoding of BCH Codes

(+1)

Decoding

(+1)

d+1 = S+2 + 1
S+1 + ... + l+1 S+2l+1
(+1)
()

(x) = (x) + d d1 x () () (x)


l+1 = max(l , l + )
S1 = 1
= 0; d0 = 1 6= 0
= 1
1 (0+1) (1)
(1) (x) = (0) (x) + d0 d1
x

(x) = 1 + 1.1.x.1 = 1 + x
l1 = max(l0 , l1 + ) = max(0, 0 + 0 + 1) = 1
l = 1 l1 = 1 1 = 0
(1)
d1 = S2 + 1 S1 = 1 + 1.1 = 0
(2) (x) = (1) (x) = 1 + x
l2 = l1 = 1
l = 2 l2 = 2 1 = 1
(2)
(2)
d2 = S3 + 1 S2 + 2 S1 = 10 + 1.1 + 0.1 = (1 + + 2 ) + 1 = 5
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

32 / 35

Decoding of BCH Codes

Decoding

d2 = 5 6= 0
=0
(3) (x) = (2) (x) + d2 d01 x (20) (0) (x) = 1 + x + 5 .1.x 2 .1
= 1 + x + 5 x 2
l3 = max(l2 , l0 + ) = max(1, 0 + 2 0) = 2
l = 3 l3 = 3 2 = 1
(3)
(3)
(3)
d3 = S4 + 1 S3 + 2 S2 + 3 S1 = 1 + 1.10 + 5 .1 + 0.1
= 1 + (1 + + 2 ) + ( + 2 ) = 0

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

33 / 35

Decoding of BCH Codes

Decoding

(x) = (6) (x) = 1 + x + 5 x 3


x = 3 , 10 , 12
Error location numbers
1 = 3 = 12 , 2 = 10 = 5 , 3 = 12 = 3
e(x) = x 3 + x 5 + x 12
r (x) = r (x) + e(x) = 0
Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

34 / 35

End

Umamaheswar.V

(III Sem M.tech)

BCH Codes

November 11, 2013

35 / 35

Das könnte Ihnen auch gefallen