Ecc_ Bch Codes

download Ecc_ Bch Codes

of 35

Transcript of Ecc_ Bch Codes

  • 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/