Post on 02-Jun-2018
8/10/2019 Ecc_ Bch Codes
1/35
Subject Seminaron
BCH Codes
(Bose , Chaudhuri, Hocquenghem Codes)
Presented byUmamaheswar.V
4JN12LDS17MTech DECS, III Sem
JAWAHARLAL NEHRU NATIONAL COLLEGE OF ENGINEERING,SHIMOGA.
http://find/8/10/2019 Ecc_ Bch Codes
2/35
CONTENTS first slide
CONTENTS
Introduction
Binary primitive BCH codes
Generator polynomial of Binary BCH CodesProperties of Binary BCH CodesParity 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
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
3/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 Hammingcodes 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 binarycodes of length 2m 1 for some integer m. These were extended laterby Gorenstein and Zieler (1961) to the nonbinary codes with symbolsfrom Galois field GF(q).
Among the nonbinary BCH codes, the most important subclass is theclass of Reed-Solomon (RS) codes.
Among all the decoding algorithms for BCH codes, Berlekampsiterative algorithm, and Chiens search algorithm are the most efficient
ones.Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 3 / 35
http://find/8/10/2019 Ecc_ Bch Codes
4/35
Binary primitive BCH codes
Binary primitive BCH codes
For any integer m 3 and t
8/10/2019 Ecc_ Bch Codes
5/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 fieldelement i.
The degree ofi(x) is m or a factor of m.The generator polynomial g(x) of a t-error-correcting primitive BCHcodes 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
Bi i iti BCH d G t l i l f Bi BCH C d
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
6/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 polynomials1(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 sameminimal polynomial as some preceding odd power of in GF( 22m ).As aconsequence, the generator polynomial of the t-error-correcting binaryBCH 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
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
7/35
Binary primitive BCH codes Example 1
Example:Let be a primitive element of the Galois field GF(24)given by table belowsuch 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 are1(x) = 1 +X+X
4
3(x) = 1 +X+X2 +X3 +X4
5(x) = 1 +X+X2
The single-error-correcting BCH codes of length n=24-1=15 is generatedby g(x)=1(x) since t =1.
The double-error-correcting BCH code of length 15 is generated byg(x) =LCM{1(x), 3(x)}Since 1(x) and 3(x) are two distinct irreducible polynomials,g(x)=(1 +X+X4)(1 +X+X2 +X3 +X4)=1 +X4 +X6 +X7 +X8
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 7 / 35
Binary primitive BCH codes Example 1
http://find/8/10/2019 Ecc_ Bch Codes
8/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 isexactly 5.
The triple-error-correcting BCH code of length 15 is generated by
g(x) =LCM{1(x), 3(x), 5(x)}
=(1 +X+X4)(1 +X+X2 +X3 +X4)(1 +X+X2)=1 +X+X2 +X4 +X5 +X8 +X10
Its a (15,5) cyclic code with dmin 7.Because the weight of the generatorplolynomial 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 Example 1
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
9/35
Binary primitive BCH codes Example 1
Power Polynomial 4 Tuplerepresentation representation representation
0 0 (0000)
1 1 (1000) (0100)
2 2 (0010)3 3 (0001)4 1 + (1100)
5 + 2 (0110)6 2 + 3 (0011)7 1 + + 3 (1101)8 1 + 2 (1010)9 + 3 (0101)
10 1 + 2 + 3 (1110)11 + 2 + 3 (0111)12 1 + + 2 + 3 (1111)13 1 + 2 + 3 (1011)
14
1 + 3
(1001)Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 9 / 35
Binary primitive BCH codes Properties of Binary BCH Codes
http://find/8/10/2019 Ecc_ Bch Codes
10/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 withgenerator 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+v1x+ ... +vn1xn1
has , 2, 3,...,2t as rootsi.e. v(i) =v0+v1
i +v22i + ... +vn1
(n1)i=0
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 10 / 35
Binary primitive BCH codes Properties of Binary BCH Codes
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
11/35
y p p y
v= (v0, v1, v2, ..., vn1).
1i
2i
.
.
.
(n1)i
= 0 for 1 i 2t
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 11 / 35
Binary primitive BCH codes Parity Check Matrix of the BCH code
http://find/8/10/2019 Ecc_ Bch Codes
12/35
y p y
H matrix (Parity Check Matrix) of the BCH code
H=
1 ... n1
1 (2)...(2)n1
.
.
.
1 (2t)...(2t)n1
If v is a code word in the t-error-correcting BCH code, then v HT = 0j is a conjugate ofi, then v(j)=0 iff v(i)=0(Thm. 2.11) j-th row ofH can be omitted. As a result H can be reduced to the following form :
H=
1 2... n1
1 3 (3
)2
... (3
)n
1.
.
.
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
http://goforward/http://find/http://goback/8/10/2019 Ecc_ Bch Codes
13/35
y y
Note that the entries of H are elements in GF(2m). Each element inGF(2m) can be represented by a m-tuple over GF(2). If each entry of H isreplaced by its corresponding m-tuple over GF(2) arranged in columnform, we obtain a binary parity-check matrix for the code.
EX 6.2For 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
H= 1 234 5 67 8 910 1112 13 14
13691215182124273033363942
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 Parity Check Matrix of the BCH code
http://find/8/10/2019 Ecc_ Bch Codes
14/35
H=
100010011010111
010011010111100
001001101011110
000100110101111100011000110001000110001100011001010010100101
011110111101111
The t-error-correcting BCH code defined above indeed has minimumdistance 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 equalto its designed distance. There are many cases where the trueminimum 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
http://goforward/http://find/8/10/2019 Ecc_ Bch Codes
15/35
Binary BCH code with length n = 2m 1 can be constructed in thesame 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 thebinary 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 ofXn + 1
g(x)|(xn + 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
http://find/8/10/2019 Ecc_ Bch Codes
16/35
We see that g(x) is a factor ofXn + 1.
The cyclic code generated by g(x) is a t-error-correcting BCH code oflength n.
The number of parity-check digits mt
dmin 2t+ 1
Ifnot a primitive element ofGF(2m), the code is called a nonprimitiveBCH 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
http://find/8/10/2019 Ecc_ Bch Codes
17/35
Example 6.3:Consider the Galois field GF(26).The element =3 has ordern=21.Let t=2.Let g(x) be the binary polynomial of minimum degree thathas , 2, 3, 4 as roots.
The elements , 2 and 4 have the same minimal polynomial,which is
1(x) = 1 +X+X2 +X4 +X6
The minimal polynomial of3
is
3(x) = 1 +X2 +X3
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- correctingnonprimitive BCH code.
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 17 / 35
Decoding of BCH Codes
http://find/8/10/2019 Ecc_ Bch Codes
18/35
Decoding of BCH Codes
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 18 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
19/35
Suppose that a code word v(x) =v0+ v1x+ ... + vn1xn1 is transmittedand the transmission errors result :
r(x) =r0+r1x+r2x2 + ... +rn1x
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.HT
Si =
r(
i
) =r
0+r
1
i
+ ... +rn
1(
i
)
n1
for1 i 2
t
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 19 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
20/35
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 Sican 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
http://find/8/10/2019 Ecc_ Bch Codes
21/35
EX6.4Let be a primitive element of the Galois field GF(24) such that1 + + 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 +x8
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+x4
The minimal polynomials of3 is
3(x) =1 +x+x2 +x3 +x4
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 21 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
22/35
Dividing r(x) = 1 +x8 by1(x) =1 +x+x4,we obtain the remainder
b1(x) =x2
Dividing r(x) = 1 +x8 by3(x) =1 +x+x2 +x3 +x4,we obtain the
remainder
b3(x) =1+x3
Substituting , 2 and 4 into b1(x),we obtainS1 =b1() =
2
S2 =b1(2) =4
S4 =b1(4) =8
Substituting 3 into b3(x),we obtainS3 =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
http://find/8/10/2019 Ecc_ Bch Codes
23/35
(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 2tThis gives a relationship between the syndrome and the error pattern.Suppose
e(x) =xj1+xj2+....+xjv 0 j1
8/10/2019 Ecc_ Bch Codes
24/35
Once j1 , j2 ,....,jvhave been found, the powers j1,j2, ...,jv tell usthe error locations in e(x).
If the number of errors in e(x) is t or less, the solution that yields anerror pattern with the smallest number of errors is the right solution.
For convenience,let l=jl , 1 l vbe the error location numbers.
S1=1+2+...+vS2=
21 +
22 +...+
2v
...
S2t=
2t
1 +
2t
2 +...+
2t
v
power sum symmetricfunction
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 24 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
25/35
Define(x) = (1 + 1x)(1 + 2x)...(1 + vx)
=0+ 1x+ 2x2
+ ... + vxv
Where (x)is called the error-location polynomial.
The roots of(x) are 11 , 12 ,...,
1v which are the inverse of the
error location numbers.
Coefficients of(x):
0 = 11 =1+ 2+ ... + v2 =12+ 23+ ... + v1v
...v =12...v
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 25 / 35
Decoding of BCH Codes Decoding
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
26/35
These coefficients are known as elementary symmetric functions. is arerelated to sjsby Newtons identities.
S1+ 1 = 0S2+ 1S1+ 22 = 0S3+ 1S2+ 2S1+ 33 = 0...Sv+ 1Sv1+ ... + v1S1+vv = 0Sv+1+ 1Sv+ ... + v1S2+ vS1 = 0
Note that, for binary case,1+1=2=0,we have
ii=
i for odd i0 for even i
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 26 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
27/35
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
http://find/8/10/2019 Ecc_ Bch Codes
28/35
l is the degree of()(x).
Ifd= 0, then +1(x) =(x)and l+1 =l.
Ifd= 0, find another row prior to the th row such that d= 0and the number l in the last column of the table has the largestvalue.Then +1(x) is given by
(+1)(x) =()(x) +dd1
x()()(x)
and l+1 =max(l, l+ ).
In either case,d+1 =S+2+ (+1)1 S+1+ ... +
(+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
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
29/35
Ex 6.5: Let be a primitive element of the Galois field GF(24) such that1 + + 4 = 0.Consider (15,5) triple-error-correcting BCH codes withp(x) = 1 +x+x4.
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) =x3 +x5 +x12
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+x4
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 29 / 35
Decoding of BCH Codes Decoding
http://find/8/10/2019 Ecc_ Bch Codes
30/35
The minimal polynomials for 3
and 6
are identical and
3(x) =6(x) =1 +x+x2 +x3 +x4
The minimal polynomials of5 is
3(x) =1 +x+x2
1(x) = 1 +X+X4
3(x) = 1 +X+X2 +X3 +X4
5(x) = 1 +X+X2
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)and 5(x) respectively we obtain the following
http://find/http://goback/8/10/2019 Ecc_ Bch Codes
31/35
Dividing r(x) by 1(x), 3(x)and5(x),respectively,we obtain the followingremainders:b1(x) = 1b3(x) = 1 +X
2 +X3
b5(x) =X2
Substituting , 2 and 4 into b1(x),we obtain the following syndromecomponents:
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 Decoding
http://find/8/10/2019 Ecc_ Bch Codes
32/35
d+1=S+2+ (+1)1 S+1+ ... +
(+1)l+1
S+2l+1
(+1)(x) =()(x) +dd1
x()()(x)
l+1 = max(l, l+ )
S1 = 1= 0; d0 = 1 = 0
= 1(1)(x) =(0)(x) +d0d11 x
(0+1)(1)(x) = 1 + 1.1.x.1 = 1 +xl1 = max(l0, l1+ ) = max(0, 0 + 0 + 1) = 1 l = 1 l1 = 1 1 = 0
d1 =S2+ (1)1 S1 = 1 + 1.1 = 0
(2)(x) =(1)(x) = 1 +xl2 =l1 = 1 l = 2 l2 = 2 1 = 1
d2 =S3+ (2)1 S2+
(2)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
http://find/8/10/2019 Ecc_ Bch Codes
33/35
d2 =5 = 0
= 0
(3)(x) =(2)(x) +d2d10 x
(20)(0)(x) = 1 +x+ 5.1.x2.1= 1 +x+ 5x2
l3 = max(l2, l0+ ) = max(1, 0 + 2 0) = 2 l= 3 l3 = 3 2 = 1
d3 =S4+ (3)1 S3+
(3)2 S2+
(3)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
http://find/8/10/2019 Ecc_ Bch Codes
34/35
(x) =(6)(x) = 1 +x+ 5x3
x=3
, 10
, 12
Error location numbers
1 =3 =12, 2 =
10 =5, 3 =12 =3
e(x) =x3 +x5 +x12
r(x) =r(x) +e(x) = 0Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 34 / 35
End
http://find/8/10/2019 Ecc_ Bch Codes
35/35
Umamaheswar.V (III Sem M.tech) BCH Codes November 11, 2013 35 / 35
http://find/http://goback/