BCH Codes
BCH Codes
BCH Codes
A class of cyclic codes discovered independently by Hocquenghem in 1959 and Bose & Ray-Chaudhuri in 1960. 9 One of the most powerful known classes of Linear Cyclic Block Codes 9 Capable of correcting multiple errors 9 Easy Encoding and Decoding
9
Features
A BCH Code can be defined for any positive integers m ( m 3) and any t (t<2m-1) with the following parameters Block Length, n=2m -1 No. of parity check bits, n k mt Minimum Distance, dmin 2t+1
3
Generator Polynomial
This code is capable of correcting any combination of t or fewer errors in a block length of n=2m -1 bits. The generator polynomial of this code can be specified in terms of its roots from the extension field GF(2m) The generator polynomial g(x) of the t error correcting BCH code of length 2m -1 is the lowest degree polynomial over GF(2) which has , 2 , 3 ,....... 2t as its roots [ g ( i ) = 0 for 1 i 2t ]
4
g(x) has , 2 , 3 ,....... 2t and their conjugates as all its roots If i ( x) is the minimal polynomial of i Then g ( x) = LCM {1 ( x), 2 ( x),......, 2t ( x)} As every even power of in the sequence of , 2 , 3 ,....... 2t has the same minimal polynomial as some preceding odd power of in the sequence, the expression for the generator polynomial reduces to
5
Single error correcting BCH code of length 2m-1 is generated by g(x) = 1(x) Since the primitive element specifies the primitive polynomial 1(x), single error correcting BCH code is a Hamming Code.
Coding Procedure
The coding approach is different in BCH code compared with other LBCs We begin by specifying the no. of random errors we want the code to correct for a given block length n. Then we construct the generator polynomial for that code.
Definition: A binary n-tuple is a codeword iff the polynomial V(x)= v0+v1x+ .+vn-1xn-1 has , 2, 2t as roots. This definition is useful in proving the minimum distance of the code.
10
Let V(x)= v0+v1x+ .+vn-1xn-1 be a code polynomial in a t error correcting BCH code of length n= 2m-1. Since i is a root of v(x) for 1 i 2t , then
v( ) = v0 + v1 + v2 + ....... + vn 1
i i 2i
( n 1) i
=0
11
13
If for some i & j, j is a conjugate of i, then v(j)=0 iff v(i)=0. This says that the inner product of v =(v0,v1,.vn-1) and the i-th row of H is zero, and the inner product of v and the j-th row of H is also zero. So the j-th row of H can be omitted. Then the H matrix can be reduced to the following form,
14
1 1 1 H = . . . . 1
. . . . . . . . . . . . . .
( ) ( )
3 5
( ) ( )
. . . .
3 2
5 2
( ) ( )
. . . .
3 3
5 3
. . . .
2 t 1
( ) ( ) ( )
2 t 1 2
2 t 1 3
. .
n 1 3 ( ) 1 n 5 ( ) . . . . 2 t 1 n 1 ( )
n 1
The entries of H are elements from GF(2m). Each element in GF(2m) can be represented by a m-tuple over GF(2). Then we get the binary parity check matrix for the code.
15
16
To prove the bound we have to show that no 2t or fewer columns of H sums to zero. Suppose that there exists a non-zero code vector of weight
2t
17
The second matrix on the right is a square matrix. To satisfy the equality of the previous expression, the determinant of the matrix must be zero.
18
19
After taking out the common factor from each row of that determinant, we get
20
The determinant in the above equality is a Vandermonde Determinant which is non-zero. Hence the product on the RHS cannot be zero. This is a contradiction and hence our assumption that there exists a codeword v of weight 2t is invalid. This implies that the minimum weight of the t error correcting BCH code is atleast 2t+1.
21
2t+1 is usually the designed distance of the terror correcting BCH code. The true minimum distance of a BCH code may be greater than or equal to its designed distance.
22