Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
BCH (Bose Chaudhuri - Hocquenghem) Codes form a large class of multiple random error-correcting codes. They were first discovered by A. Hocquenghem in 1959 and independently by R. C. Bose and D. K. Ray-Chaudhuri in 1960.
BCH codes are cyclic codes. Only the codes, not the decoding algorithms, were discovered by these early writers.
The original applications of BCH codes were restricted to binary codes of length 2 m 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).
The first decoding algorithm for binary BCH codes was devised by Peterson in 1960. Since then, Petersons algorithm has been refined by Berlekamp, Massey, Chien, Forney, and many others.
n = 2m 1 n k mt d min 2t + 1
(5- 1)
2 m 1 bit positions.
The code is a t-error-correcting BCH code.
n = 2 6 1 = 63 n k = 6 3 = 18 d min = 2 3 + 1 = 7
This is a triple-error-correcting (63, 45) BCH code.
The generator polynomial g(x) of a t-error-correcting primitive BCH codes of length 2 m 1 is given by
g ( x ) = LCM { 1 ( x ), 3 ( x ), L, 2 t 1 ( x )}
(5- 2)
Note that the degree of g(x) is mt or less. Hence the number of parity-check bits; n-k, of the code is at most mt.
(pp. 191-196)
Note that the generator polynomial of the binary BCH code is originally found to be the least common multiple of the minimum polynomials 1 , 2 , L, 2 t
i.e. g ( x ) = LCM { 1 ( x ), 2 ( x ), 3 ( x ), L, 2 t 1 ( x ), 2 t ( x )}
However, generally, every even power of in GF( 2 m ) has the same minimal polynomial as some preceding odd power of in GF( 2 2 m ). 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 ), L, 2 t 1 ( x )}.
g ( i ) = 0 for 1 i 2t
3)
(5-
g(x).
transmitted.
n 1 Let r ( x ) = r0 + r1 x + L + rn1 x be the received polynomial.
If yes, then r(x) is a code polynomial, otherwise r(x) is not a code polynomial and the presence of errors is detected.
Decoding procedure (1) syndrome computation. (2) determination of the error pattern. (3) error correction.
6. Syndrome computation
The syndrome consists of 2t components in GF( 2 m )
S = ( S1 S 2 L S 2 t )
4)
i and S i = r ( ) for 1 i 2t .
(5-
r ( x ) = a( x ) i ( x ) + b( x )
i Then S i = b( )
(5- 5)
(5-
6) for 1 i 2t . This gives a relationship between the syndrome and the error pattern.
x j1 , x j2 ,L, x j .
j j j i.e. e ( x ) = x 1 + x 2 + L + x
(5- 7)
From equations (5-6) & (5-7), we have the following relation between syndrome components and error location:
S1 = e ( ) = j1 + j2 + L + j S 2 = e ( 2 ) = ( j1 ) 2 + ( j2 ) 2 + L + ( j ) 2 M S 2 t = e ( 2t ) = ( j1 ) 2 t + ( j2 ) 2 t + L + ( j ) 2 t
(5- 8)
It
1
we
2
can
solve
the
2t
equations,
we
can
determine
j , j , L, j .
give us the error locations in e(x). these 2t equation of eq. (5-8) Are known as power-sum symmetric function.
1 = S1
L( z ) = 1 + S1 z
S1 0 S 3 = S13
1 = S1 2 = S ( S3 + S )
1 1 3 1
S1 0, S 3 S13 S13 + S 3 2 L( z ) = 1 + S1 z + z S1
1 = S1
S S3 + S5 S13 + S 3 3 = ( S13 + S 3 ) + S1 2
S1 0 S 3 S13
2 =
2 1
1 ( x ) = 1 + x + x 4 3 ( x) = 1 + x + x 2 + x 3 + x 4 5 ( x) = 1 + x + x 2
n = 2 4 1 = 15
g ( x ) = LCM{ 1 ( x ), 3 ( x ), 5 ( x )} = 1 3 5 = 1 + x + x 2 + x 4 + x 5 + x 8 + x 10
1 ( x ) = 2 ( x ) = 4 ( x ) = 1 + x + x 4
The root 3 and 6 have the same minimum polynomial
3 ( x) = 6 ( x) = 1 + x + x 2 + x 3 + x 4
The minimum polynomial of 5 is
5 ( x) = 1 + x + x 2
Suppose all-zero code word c = (0 0 0 L 0) is transmitted
2 5 12 and r ( x ) = x + x + x is received.
b1 ( x ) = 1 b3 ( x ) = 1 + x + x 3 b5 ( x ) = x 2
The syndrome components are
s1 s2 s4 s3 s6 s5
= b1 ( ) = 1 = b1 ( 2 ) = 1 = b1 ( 4 ) = 1 = b3 ( 3 ) = 1 + 6 + 9 = 10 = b3 ( 6 ) = 1 + 12 + 18 = 5 = b3 ( 5 ) = 10
10 10 5 Hence S = (1 , 1 , , 1 , , ) .
Example: (p. 209) consider t = 2, m = 5, (32, 21) BCH code The primitive polynomial for m = 5 is
( x) = 1 + x 2 + x 5 , 2 , 4 , 8 and 16 have the same minimum polynomial 3 , 6 , 12 , 24 and 17 have the same minimum polynomial 3 ( x) = 1 + x 2 + x 3 + x 4 + x 5 5 , 10 , 20 , 9 and 8 have the same minimum polynomial 5 ( x) = 1 + x + x 2 + x 4 + x 5 7 , 14 , 28 , 25 and 19 have the same minimum polynomial 7 ( x) = 1 + x + x 2 + x 3 + x 5 11 , 22 , 13 , 26 and 21 have the same minimum polynomial 11 ( x ) = 1 + x + x 3 + x 4 + x 5
The generator polynomial of (32, 21) code is
g ( x ) = 1 ( x ) 3 ( x ) = 1 + x 3 + x 5 + x 6 + x 8 + x 9 + x 10
2 3 The roots of the generator polynomial include , , and
4
2 7 8 11 12 Since r ( x ) = x + x + x + x + x
We obtain
S1 S2 S3 S4
= r ( ) = 7 = r ( 2 ) = 14 = r ( 3 ) = 8 = r ( 4 ) = 28
1 =7 8 + ( 7 ) 3 2 = = 15 7 L( z ) = 1 + 7 z + 15 z 2 = (1 + 5 z )(1 + 10 z ) Z 1 = 5 = 31 26 Z 2 = 10 = 31 21
Thereby indicating errors at 26th and 21st coordinates of r
c ( x ) = x 2 + x 5 + x 7 + x 8 + x 10 + x 11 + x 12
r (Note Z i = i )
Z1 Z 2 De = 1 M Z1
Z 2 L Z e i1 S1 2 Z 2 L Z2 e i2 S 2 = M M M M Z 2 L Z e i S
(5- 20)
Decoding is completed by solving for the {e il } This is a general case of nonbinary BCH codes.
Example (5.9) Consider a nonbinary BCH code (7, 3) of length 7 (symbols) this code is constructed over GF(8) with generator polynomial
g ( x ) = ( x )( x 2 )( x 3 )( x 4 ) = x4 + 3 x3 + x2 + 3
Let the received polynomial be
r( x ) = 2 x 6 + 2 x 4 + x 3 + 5 x 2
Then the syndrome components are
S1 = 6 , S 2 = 3 , S 3 = 4 , S 4 = 3
6 3 2 4 S' = 3 = 4 1 3 1 = 2, 2 =
2 2 Thus L( x ) = x + x + 1
Z 1 = 3 = 74 , Z 2 = 5 = 7 2 e( x ) = e 3 x 3 + e5 x 5
Eq. (5-20) gives
3 5 e 3 6 De = 6 = 3 3 e 5
The error magnitudes are found to be
e3 = , e5 = 5 e ( x ) = x 3 + 5 x 5
Finally
c( x ) = e( x ) + r( x ) = 2 x 6 + 5 x 5 + 2 x 4 + 3 x 3 + 5 x 2
Note that m = 3, the primitive polynomial is
p( x ) = 1 + x + x 3