CC-05-BCH KLNLKNLKN L;M;LM;LM;M ';';M';M'MMMMM;M';M';M'M'M LM ';LM';
description
Transcript of CC-05-BCH KLNLKNLKN L;M;LM;LM;M ';';M';M'MMMMM;M';M';M'M'M LM ';LM';
-
Wireless Information Transmission System Lab.
National Sun Yat-sen UniversityInstitute of Communications Engineering
Chapter 6
BCH Codes
-
2Outline
Binary Primitive BCH Codes Decoding of the BCH CodesImplementation of Galois Field ArithmeticImplementation of Error Correction Nonbinary BCH Codes and Reed-Solomon Codes
-
3Preface 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 discovered by Hocquenghem in 1959 and independently by Bose and Chaudhuri in 1960.Generalization of the binary BCH codes to codes in pm symbols (where p is a prime) was obtained by Gorenstein and Zierler.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, Berlekampsiterative algorithm, and Chiens search algorithm are the most efficient ones.
-
Wireless Information Transmission System Lab.
National Sun Yat-sen UniversityInstitute of Communications Engineering
Description of the Codes
-
5Binary Primitive BCH Codes a binary BCH codes with
Clearly, this code is capable of correcting any combination of t or fewer errors in a block of digits. We call this code a t-error-correcting BCH code. The generator polynomial of this code is specified in terms of its roots from the Galois field
. The generator poly. g(x) of the t-error-correcting BCH code of length is the lowest-degree poly. over which has
1integer 3, 2 ,mm t <
min
2 1 Block lengthNumber of parity-check digits
2 1 Minimum distance
mnn k mtd t
= +
12 = mn(2 )mGF
Let be a primitive element of (2 )mGF(2)GF
2 1m
2 3 2. . .... as its roots.t
-
6Binary Primitive BCH CodesIt follows from Theorem 2.11 that g(x) has and their conjugates as all its roots. Let be the minimal poly. of . Then g(x) must be the least common multiple (LCM) of
that is,
If i is an even integer, it can be expressed as a product of the following form :
where i is an odd number and Then is a conjugateof and therefore and have the same minimal poly., that is,
t22 ,...,,
{ }1 2 2( ) LCM ( ), ( ),... ( )tg x x x x =
)(xii
),(),...,(),( 221 xxx t
,2' lii =.1l lii 2)( ' =
i i 'i( ) ( ).i ix x =
-
7Binary Primitive BCH CodesHence, even power of has the same minimal poly. as some preceding odd power of .
The BCH codes defined above are usually called primitive (or narrow-sense ) BCH codes.
{ }1 3 2 1( ) LCM ( ), ( ),... ( )tg x x x x =
[ ]deg ( )i x m [ ] deg ( ) g x mt n k mt (Theorem 2.18 & 2.19)
-
8Binary Primitive BCH CodesThe single-error-correcting BCH codes of length is generated by since t =1.
Ex 6.1is a primitive element of given by Table 2.8 such
that . The minimal polynomials of ,3,5 are
is a primitive element of (2 )mGF1( ) is a primitive poly. of degree mx
0 1 22 2 2 2( , , ... , 1)m =
the single-error-correcting BCH codes of length 2 1 is a Hamming code
m
2 1m 1( ) ( )g x x=
4(2 )GF41 0 + + =
-
9Binary Primitive BCH Codes
The double-error-correcting BCH code of length is generated bySince and are two distinct irreducible polynomials,
)}(),({LCM)( 31 xxxg =
41
2 3 43
55
( ) 1 ( ) 1
( ) 1
x x xx x x x xx x x
= + += + + + += + +
15124 ==n
8764
4324
1 )1)(1()(
xxxxxxxxxxxg
++++=++++++=
)( )( 31 xx
min
min
(15,7) cyclic code with 5 ( ( )) 5 5
dW g x d
= =
-
10
Binary Primitive BCH CodesThe triple-error-correcting BCH code of length 15 is generated by
Its a (15,5) cyclic code with
v(x) is a code poly. because
{ }1 3 54 2 3 4 2
2 4 5 8 10
( ) LCM ( ), ( ), ( )
(1 )(1 )(1 ) 1
g x x x x
x x x x x x x xx x x x x x
== + + + + + + + += + + + + + +
.7,7))(( Since .7 minmin == dxgWd1
0 1 1Let ( ) ... be a poly.n
nv x v v x v x
= + + + with (2)iv GF2 2
1 2 2
If v( ) has roots , ,..., , then v( ) is divisible by ( ), ( ),..., ( ). (Theorem 2.14)
t
t
x xx x x
})(),...,(),(LCM{)(g|)(v 221 xxxxx t=
-
11
Binary Primitive BCH CodesWe have a new definition for t-error-correcting BCH code:A binary n-tuple v is a code word if and only if the poly. i.e.
),...,,,( 1210 = nvvvvroots as ,...,, has ...)(v 221110
tnn xvxvvx +++=
inn
iii vvvv )1(12
210 ...)(v
++++=
.21for 0
.
.
.
1
),...,,,(
)1(
1210 tivvvv
in
i
n =
-
12
Binary Primitive BCH CodesLet
If v is a code word in the t-error-correcting BCH code, then
The code is the null space of the matrix H and H is the parity-check matrix of the code.
=
122
122
1
)(...)(1...
.
.
.)(...)(1
...1
H
ntt
n
n
0Hv = T
-
13
Binary Primitive BCH Codes(Thm. 2.11)
j-th row of H can be omitted. As a result H can be reduced to the following form :
EX 6.2double-error-correcting BCH code of length (15,7) code. Let be a primitive element in
2 1
3 3 2 3 1
(2 1) 2 1 2 2 1 1
11 ( ) ( )
1 ( ) ( )
n
n
t t t n
H
=
""
"
0) v(iff 0)then v(, of conjugate a is == ijij
,15124 ==n 4(2 )GF
Row
-
14
Binary Primitive BCH CodesThe parity-check matrix is
Using , and representing each entry of H by its 4-tuple,
= 4263142
... 1 ... 1
H
115 =1 0 0 0 1 0 0 1 1 0 1 0 1 1 10 1 0 0 1 1 0 1 0 1 1 1 1 0 00 0 1 0 0 1 1 0 1 0 1 1 1 1 00 0 0 1 0 0 1 1 0 1 0 1 1 1 11 0 0 0 1 1 0 0 0 1 1 0 0 0 10 0 0 1 1 0 0 0 1 1 0 0 0 1 10 0 1 0 1 0 0 1 0 1 0 0 1 0 10 1 1 1 1 0 1 1 1 1 0 1 1 1 1
H
=
-
15
Binary Primitive BCH CodesFACT: The t-error-correcting BCH code indeed has (pf): Suppose such that
min 2 1d t + 0v
1 2Let , ,... be the nonzero components of j j jv v v v1 2 1 2 1
2 2 2 2 2
1 2
2 2
( ) ( )( ) ( )
0 ( .. )
( ) ( )
j j t j
j j t jT
j j j
j j t j
vH v v v
= =
""
# #"
1 1 2 1 2
2 2 2 2 2
2 2
( ) ( )( ) ( )
(1,1...,1) 0........
( ) ( )
j j j t
j j j t
j j j t
=
""
# # #"
(i.e. all ones)t2v)(W =
-
16
Binary Primitive BCH Codes1 1 2 1
2 2 2 2
2
( ) ( )( ) ( )
(1,1...,1) 0
( ) ( )
j j j
j j j
j j j
=
""
# # #"
( ), a square matrix 2A t 0A =
1 2
1 ( 1) 1
2 ( 1) 2( ... )
( 1)
11
0.......
1
j j
j jj j j
j j
+ + +
= ""
# # #"
Taking out the commonfactor from each row ofthe determinant.
-
17
Binary Primitive BCH CodesThe determinant in the equality above is a Vandermondedeterminant which is nonzero. The product on the left-hand side of can not be zero. This is a contradiction and hence ourassumption that there exists a nonzero code vector v of
is invalid.2t+1 is 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.Binary BCH code with length can be constructed in the same manner as for the case . Let be an element of order n in , and g(x) be the binary polynomial of minimum degree that has as roots.
min 2 1d t +t2v)(W =
2 1mn (2 ) | 2 1m mGF n
12 = mnt22 ,...,,
-
18
Binary Primitive BCH Codesbe the minimal poly. of
respectively then
We see that g(x) is a factor of +1. The cyclic code generated by g(x) is a t-error-correcting BCH code of length n. The number of parity-check
.
If is not a primitive element of GF(2m), the code is called a nonprimitive BCH code.
2 2, ,... t
2 21, , ,..., are roots of 1
( ) ( 1)
n t n
n
x
g x x
= + +
)(),...,(),(Let 221 xxx t })(),...,(),(LCM{g(x) 221 xxx t=
nX
digits mtmin 2 1d t +
-
19
General definition of binary BCH codes
General definition of binary BCH codes.and consider
. , let be the minimal poly. and order of , respectively.
and the length of the code is
Note that:
or fewer errors
0(2 ), be any nonnegative integermGF A
0For 0 1i d 0 i +A
21 0000 ,...,, ++ dlll ii nx),(
{ }00 1 2LCM , ,... dn n n n =00 1 2
g( ) LCM{ ( ), ( ), ..., ( )}dx x x x =
min 0d d0parity-check digits ( 1)m d
0is capable of correcting [( 1) / 2]d
-
20
If we let l0 = 1, d0 = 2t+1 and be a primitive element of , the code becomes a t-error-correcting primitive BCH code of lengthIf we let l0 = 1, d0 = 2t+1 and be not a primitive element of
, the code is a nonprimitive t-error-correcting BCH code of length n, which is the order of .For a BCH code with designed distance d0, we require g(x) has d0-1 consecutive powers of a field element as roots. This guarantees that the code has . This lower bound on the minimum distance is called the BCH bound.In the rest of this chapter, we consider only the primitive BCH codes.
)GF(2m
.12 m
)GF(2m
min 0d d
General definition of binary BCH codes
-
Wireless Information Transmission System Lab.
National Sun Yat-sen UniversityInstitute of Communications Engineering
Decoding of the BCH Codes
-
22
Decoding of the BCH CodesSuppose that a code word v(x) = is transmitted and the transmission errors result :
r(x) =Let e(x) be the error pattern. Then
For decoding, remember
11
2210 ...
++++ nn xvxvxvv
11
2210 ...
++++ nn xrxrxrr
e(x)v(x)r(x) +=
=
122
122
1
)(...)(1...
.
.
.)(...)(1
...1
H
ntt
n
n
-
23
Decoding of the BCH CodesThe syndrome is 2t-tuple,
for
T221 Hr),...,(S == tSSS
10 1 1Let ( ) ... ( )
i i i ni ns r r r r = = + + + 1 2i t
( )can be evaluated by ( ) [ ( )]
( ) is the minimal poly. of ( ) ( ) ( ) ( )
( ) ( )
ii i x
ii
i i ii i
i i
s b x R r x
xr x a x x b xs r b
=
= + = =
-
24
Decoding of the BCH Codes
EX6.4Consider the double-error-correcting (15, 7) BCH code given in (from Ex6.1) . 8If (100000001000000) ( ) 1r r x x= = +
1
3
41 2 4
2 3 43
21 ( )
33 ( )
( ) ( ) ( ) 1 ( ) 1
( ) [ ( )]
( ) [ ( )] 1x
x
x x x x xx x x x x
b x R r x x
b x R r x x
= = = + += + + + += == = +
2 2 41 1 2 13 9
3 33 7
4 84 1
( ) , ( ) ( ) 1
1 ( )
s b s bs b
s b
= = = == = +
= + + == =
2 4 7 8( , , , )s =
-
25
Decoding of the BCH Codes
Suppose
WhereAny method for solving these equations is a decoding algorithmfor the BCH codes.
( ) 0 for 1 2 ( ) ( )i i iiv i t s r e = = =1 2
1 2( ) ... 0 ...vjj j
ve x x x x j j j n= + + +