CC-05-BCH KLNLKNLKN L;M;LM;LM;M ';';M';M'MMMMM;M';M';M'M'M LM ';LM';

87
 Wireless Information Transmission System Lab. Natio nal Sun Yat-s en Univer sity Institute of Communications Engineering Chapter 6 BCH Codes

description

feefmekwfmowgnorngirngioerngoirejgoirejgoirgjirwegjirwgjpworgjpwegjwpegjpweojgpwoejgpowejgpowejgpowejgpowejgpowejgpojewgpowjgpojwEGPOJ W[PKGW[POEGO[PEWGKJ[WEKGJ[ WE[PGWPEG[PWEGK[PWEKG[WEKG W[EPGK[WPEGK[PWEKG[PWEKG[PQEKGF WEEGF[WE[PGK[PWEGK[PWEKGE[KFWE[K[[PWEKG[PWKEG[PKWEG W[PEGKP[WEGK[PEWGKW[PEGKP[WKEG

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= + + +