BCH Code & Reed Solomon Code

download BCH Code & Reed Solomon Code

of 59

Transcript of BCH Code & Reed Solomon Code

  • 8/22/2019 BCH Code & Reed Solomon Code

    1/59

    Raj

  • 8/22/2019 BCH Code & Reed Solomon Code

    2/59

    Large class of powerful random error correctingcyclic codes

    Discovered by

    (1) Hocquenghem in 1059(2) Bose in 1960

    (3) Chaudhuri in 1960

  • 8/22/2019 BCH Code & Reed Solomon Code

    3/59

    For any positive integer m (m3) and t (t

  • 8/22/2019 BCH Code & Reed Solomon Code

    4/59

    Specified in terms of roots from GF(2

    m

    )g(X) is lowest degree polynomial over GF(2)which has , 2, 3, .. ,2t as roots

    g(i)=0 for 1 i 2t

    Let i(X) be the minimal polynomial ofi

    g(X) = LCM{1(X),

    2(X), .. ,

    2t(X)}

  • 8/22/2019 BCH Code & Reed Solomon Code

    5/59

    If is even theni =(

    i)2l

    iis odd andl 1iis the conjugate ofiEvery even powers ofis the conjugate of

    some odd power of

    Even powers ofandsome odd power ofhas the same (X)

    i(X)=i(X)g(X)=LCM{1(X), 3(X), 5(X).,.2t - 1(X)}

  • 8/22/2019 BCH Code & Reed Solomon Code

    6/59

    Maximum degree ofi(X) is m.There are t such polynomials

    Degree of g(X) = tm

  • 8/22/2019 BCH Code & Reed Solomon Code

    7/59

    Code defined for m

    10

  • 8/22/2019 BCH Code & Reed Solomon Code

    8/59

    n=2m-1, m

    3, t=1, dmin

    =2t+1=3

    is the primitive element of GF(2m)is the only root (t=1)g(X)=

    1(X)

    1(X) is the primitive polynomial of degree 3

    Single Error correcting BCH code with lengthn=2m-1 is the Hamming Code

  • 8/22/2019 BCH Code & Reed Solomon Code

    9/59

    n=2m-1, m3, t=1, dmin=2t+1=3

    is the primitive element of GF(2m)is the only root (t=1)g(X)=1(X)

    1(X) is the primitive polynomial of degree 3Single Error correcting BCH code with lengthn=2m-1 is the Hamming Code

  • 8/22/2019 BCH Code & Reed Solomon Code

    10/59

    m=4, n=2m-1=15 is the primitive element of GF(24)minimal polynomials are

    : 1(X) = 1 + X + X4

    3 : 3(X) = 1 + X + X2 + X3 + X45 : 5(X) = 1 + X + X2

  • 8/22/2019 BCH Code & Reed Solomon Code

    11/59

    Double Error Correcting Code t=2

    , 3 are the roots (2t-1=2x2-1=3)g(X)= LCM{1(X), 3(X)} = 1(X). 3(X)

    g(X)= 1 + X4 + X6 + X7 + X8

    n-k mt =(4 x 2) = 8k = n-(n-k)=15-8=7

    (15, 7) Code

    dmin=2t+1=2x2+1=5

  • 8/22/2019 BCH Code & Reed Solomon Code

    12/59

    Triple Error Correcting Code t=3

    , 3 , 5 are the roots (2t-1=2x3-1=5)g(X)= LCM{1(X), 3(X) , 5(X)} = 1(X) . 3(X) . 5(X)

    g(X)= 1 X + X2 + X4 + X5 + X8 + X10

    n-k = 10k = n-(n-k)=15-10=5

    (15, 5) Code

    dmin=2t+1=2x3+1=7

  • 8/22/2019 BCH Code & Reed Solomon Code

    13/59

    v(X)=v0 + v1X+ + vn-1Xn-1

    if v(X) has , 2, 3, 2t as roots v(X) isdivisible by 1(X), 2(X), 3(X), .. ,2t(X)

    v(X) divisible g(X) and it is a code polynomial

    Let v(X) be a code polynomial

    v(i)= v0 + v1(i)+ + vn-1(

    i)n-1 for 1i2t

  • 8/22/2019 BCH Code & Reed Solomon Code

    14/59

    v(i)= v0 + v1(i)+ v2(

    i)2 + vn-1(i)n-1 for 1i2t

    v(i)= v0 + v1i

    + v22i + vn-1

    (n-1)i

    2 3 n 1

    2 3 n 12 2 2 2

    2 3 n 13 3 3 3

    2 3 n 12 t 2 t 2t 2t

    1

    1

    H 1

    1

  • 8/22/2019 BCH Code & Reed Solomon Code

    15/59

    Conjugate roots can be omitted

    2 3 n 1

    2 3 n 13 3 3 3

    2 3 n 12t 1 2t 1 2t 1 2t 1

    1

    1

    H

    1

    n - columns

    t-rows

    Tv.H 0

  • 8/22/2019 BCH Code & Reed Solomon Code

    16/59

    m=4, t=1, dmin=2t+1=5, n=15, k=7

    H contain elements from GF(24)GF(24) tuples 4-tuples

    , 3 are the roots

    2 3 4 5 6 7 8 9 10 11 12 13 14

    3 6 9 12 15 18 21 24 27 30 33 36 39 42

    1H

    1

  • 8/22/2019 BCH Code & Reed Solomon Code

    17/59

    power tuple

    00001 1000

    2

    01003 11004 00105 10106 01107 1110

    power tuple

    8 00019 100110

    010111 110112 001113 101114 011115 1111

  • 8/22/2019 BCH Code & Reed Solomon Code

    18/59

  • 8/22/2019 BCH Code & Reed Solomon Code

    19/59

    Parameter 2t+1 is called designed distance

    dmin of BCH code may or may not be equal todesigned distance

  • 8/22/2019 BCH Code & Reed Solomon Code

    20/59

    Multiple error correction capability

    Syndrome may be many componentsith component of syndrome

    s i=r(i)= r0 + r1(

    i)+ r2(i)2 + rn-1(

    i)n-1 1i2t

    Syndrome components are elements in GF(2m)

    There are 2t syndrome components

  • 8/22/2019 BCH Code & Reed Solomon Code

    21/59

    Dividing r(X) by polynomial i(X)

    r(X) = ai(X)+i(X)+bi(X)i(

    i)=0

    s i=r(i)= bi(

    i)

    Syndrome component s i is obtained byevaluating bi(X) with X=

    i

  • 8/22/2019 BCH Code & Reed Solomon Code

    22/59

    Double error correcting BCH Code, t=2

    r = ( 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 )r(X) = 1 + X8

    s=(s1, s2, s3, s4)

    minimal polynomials are : 1(X) = 1 + X + X42 : 2(X) = 1 + X + X43

    : 3(X

    )= 1 + X + X

    2

    + X

    3

    + X

    4

    4 : 4(X) = 1 + X + X4

  • 8/22/2019 BCH Code & Reed Solomon Code

    23/59

    b1(X)=b2(X)=b4(X) = rem(r(X) / 1(X) ) = X2

    b3(X) = rem(r(X) / 3(X) ) = 1+X3

    s1=b1()= (1)2 = 4

    s2=b1()= (2)2 = 4

    s3=b3()= 1+(3)3 =1+9=1+ +3 = 7s4=b1()= (

    4)2 = 8

    s=(2, 4, 7, 8)

  • 8/22/2019 BCH Code & Reed Solomon Code

    24/59

    r(X)=v(X)+e(X)

    si=r(i)=v(i)+e(i)=e(i) 1 i 2t

    Let e(X)= Xj1 + Xj2 + . + Xjv 0 j1 j1 . j1 n

    s1

    = j1 + j2 + .. + jv

    s2 = (j1)2 + (j2)2 + .. + (jv)2

    s3 = (j1)3 + (j2)3 + .. + (jv)3

    ...

    s2t = (j1)2t + (j2)2t + .. + (jv)2t

    j1, j2, . , jv are unknown

  • 8/22/2019 BCH Code & Reed Solomon Code

    25/59

    Let e(X)= Xj1 + Xj2 + . + Xjv 0 j1 j1 . j1 n

    s1

    = j1 + j2 + .. + jv

    s2 = (j1)2 + (j2)2 + .. + (jv)2

    .........................

    s2t = (j1)2t + (j2)2t + .. + (jv)2t

    j1, j2, . , jv are unknown

    Any method of solving above equations is thedecoding algorithm.

    Solutions yields the smallest number of errors is

    the right solution.

    This is the most probable error pattern e(X)caused by channel.

  • 8/22/2019 BCH Code & Reed Solomon Code

    26/59

    Let l= ji 1 l v

    s1 = 1 + 2 + .. + v

    s2 = (1)2 + (2)

    2 + .. + (v)2

    ...

    s2t = (1)2t + (2)

    2t + .. + (v

    )2t

    Above 2t equations are called power sumsymmetric functions

    1,2, .. , v are error location numbers

  • 8/22/2019 BCH Code & Reed Solomon Code

    27/59

    Define (X) = (1+ 1X) (1+ 2X).. (1+ vX)

    (X) = 0 + 1X + 2X + + vXV

    Roots are 1-1,2

    -1, .. , v-1

    (X) is the unknown polynomial whose

    coefficients must be determined(X) is know as error location polynomial

  • 8/22/2019 BCH Code & Reed Solomon Code

    28/59

    Define (X) = (1+ 1X) (1+ 2X).. (1+ vX)

    0 = 11 = 1 + 2 + ..+v

    2 = 12+ 23 ++V-1v

    ..v = 12. vis

    are knows are elementary symmetric

    functions ofi

    s.

  • 8/22/2019 BCH Code & Reed Solomon Code

    29/59

    Newtons Identities

    s1 + 1 =0s2 + 1s1 + 22 =0

    s3 + 1s2 +2s1 + 33 =0

    ..sv + 1sv-1 + +v-1s1 + vv =0

    sv+1 + 1sv + +v-1s2 + vs1 =0

    ii= i for a odd i ii= 0 for even iSolutions that yield (X) of minimal degree giveinformation about most probable error pattern

    if v

    t

    (X)will give the actual error pattern e(X).

  • 8/22/2019 BCH Code & Reed Solomon Code

    30/59

    Compute the syndrome s=(s1, s2,,s2t) from r(X)

    Determine error location polynomial (X) fromthe syndrome components s1, s2,,s2tDetermine the error location numbers

    1,2, .. , v by finding the roots of the (X)and correct the errors in r(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    31/59

    Compute the syndrome s=(s1, s2,,s2t) from r(X)

    Determine error location polynomial (X) fromthe syndrome components s1, s2,,s2tDetermine the error location numbers

    1,2, .. , v by finding the roots of the (X)and correct the errors in r(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    32/59

    Berlekamp iterative algorithm

    Find minimum degree polynomial (1)(X) whosecoefficients satisfy the first Newtons identitys1 + 1 =0

    Next step is to test whether the coefficients of(1)(X) satisfy the second Newtons identitys2 + 1s1 + 22 =0

    If the coefficients of(1)(X) satisfy second

    Newtons identity we set(2)(X)=

    (1)(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    33/59

    If the coefficients of(1)(X) does not satisfy

    second Newtons identity a correction term isadded to (1)(X) to form (2)

    (X) such that (2)

    (X)has minimum degree and its coefficients satisfyfirst two Newton's identities

    There are at the end of second step we obtain aminimum degree polynomial (2)(X) whosecoefficients satisfy first two Newtons identifies

  • 8/22/2019 BCH Code & Reed Solomon Code

    34/59

    The third step is to find the minimal polynomial

    (3)

    (X) from (2)

    (X) such that (3)

    (X) coefficientssatisfy first three Newtons identities

    Again we test (2)(X) satisfy third Newton'sidentity s3 + 1s2 +2s1 + 33 =0

    If they do not, a correction term is added to(2)(X) to from

    (3)(X)

    Iteration continues until (2t)(X) is obtained

    The (2t)(X) is taken to be error locationpolynomial (X)

    (X) =(2t)

    (X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    35/59

    Let ()(X) =1 +1()X + 2

    ()X2 + .+ l()Xl

    be the minimum polynomial determined at theth step of iteration whose coefficients satisfyNewtons identities

    To determine

    (+1)

    (X) we compute the

    following quantity

    d = s+1+ 1()s+1+ 2

    ()s-1+..+l()s+1l

    The discalleddiscrepancy

    If d=0 the coefficients of()

    (X) satisfy(+1)th Newton's identity and (+1)(X) =

    ()(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    36/59

    If d0 the coefficients of()

    (X) do not satisfy

    (+1)th

    Newton's identity and a correction termmust be added to ()(X) to obtain (+1)

    (X)

    Go back to the steps prior to th step anddetermine a polynomial ()(X) such that theth discrepancy d0 and ( -l)[lis thedegree of()(X)] has the largest value.

    (+1)(X)= ()

    (X) + dd-1X (-)()(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    37/59

    To carry out iteration of finding ()(X) we begin

    with following table and proceed to fill out thetable wherel is the degree ()

    (X)

    The (+1)th is can be fill out as followsIf d=0 then

    (+1)(X)=

    ()(X) andl+1=l

    If d0, find another row prior to the throwsuchthat d0 and the number (-l) in the lastcolumn of the table has the largest value.

    (+1)

    (X)= ()

    (X) + dd-1

    X(-)

    ()

    (X)l+1 = max(l,l+ - )

  • 8/22/2019 BCH Code & Reed Solomon Code

    38/59

    ()

    (X) d l -l-1 1 1 0 -1

    0 1 s1 0 0

    1

    2

    2t

  • 8/22/2019 BCH Code & Reed Solomon Code

    39/59

    Consider a (15,5) triple error correcting code.

    v = ( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 )r = ( 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 )

    r(X)= X3 + X5 + X12

    Minimal Polynomials : 1(X) = 1 + X + X

    4

    2 : 2(X) = 1 + X + X4

    3 : 3

    (X) = 1 + X + X2 + X3 + X4

    4 : 4(X) = 1 + X + X4

    5 : 5(X) = 1 + X + X2

    6 : 6(X) = 1 + X + X2 + X3 + X4

  • 8/22/2019 BCH Code & Reed Solomon Code

    40/59

    Dividing r(X) by 1(X), 3(X) and 5(X)

    We obtain the following remaindersb1(X) = 1

    b3(X) = 1+X2+X3

    b5(X) = X2Syndrome Components are

    s1=s2=s4=1

    s3=1 + 6 + 9 = 10 and s6=1 + 12 + 18 = 5s5=

    10

  • 8/22/2019 BCH Code & Reed Solomon Code

    41/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

  • 8/22/2019 BCH Code & Reed Solomon Code

    42/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

  • 8/22/2019 BCH Code & Reed Solomon Code

    43/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

    2 1 + X 5 1 1

  • 8/22/2019 BCH Code & Reed Solomon Code

    44/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

    2 1 + X 5 1 1

    3 1 + X + 5X2 0 2 1 take = 0

  • 8/22/2019 BCH Code & Reed Solomon Code

    45/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

    2 1 + X 5 1 1

    3 1 + X + 5X2 0 2 1 take = 0

    4 1 + X + 5X2 10 2 2

  • 8/22/2019 BCH Code & Reed Solomon Code

    46/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

    2 1 + X 5 1 1

    3 1 + X + 5X2 0 2 1 take = 0

    4 1 + X + 5X2 10 2 2

    5 1 + X + 5X3 0 3 2 take = 2

  • 8/22/2019 BCH Code & Reed Solomon Code

    47/59

    s1 = 1

    s2 = 1

    s3 = 10

    s4 = 1

    s5 = 10

    s6 = 5

    ()(X) d l -l Remarks-1 1 1 0 -1

    0 1 1 0 0

    1 1 + X 0 1 0 take = -1

    2 1 + X 5 1 1

    3 1 + X + 5X2 0 2 1 take = 0

    4 1 + X + 5X2 10 2 2

    5 1 + X + 5X3 0 3 2 take = 2

    6 1 + X + 5X3 - - 2

  • 8/22/2019 BCH Code & Reed Solomon Code

    48/59

    (X)=(6)(X) = 1 + X + 5X3

    roots of(X) are 3, 10, 12There inverses are 12, 5, 3

    3= 3,5=

    5,12=

    12

    j3=3, j5=4, j12=12e(X)=Xj1 + Xj2 + . + Xjv

    Therefore error pattern is

    e(X)=X3 + X5 + X12Adding e(X) to v(X) we obtain all zero codevector

  • 8/22/2019 BCH Code & Reed Solomon Code

    49/59

    If p is prime number and q is a any power of p

    there are codes with symbols from Galois fieldGF(q)

    Codes are called q - ary codes

    Concepts and properties developed for binarycodes apply q - ary codes with littlemodifications

  • 8/22/2019 BCH Code & Reed Solomon Code

    50/59

    An (n, k) linear code with symbols from GF(q) is

    a k dimensional subspace of vector space of alln-tuples over GF(q)

    A q-ary (n, k) cyclic code generated by apolynomial of degree (n k) with coefficients

    from GF(q) which is a factor Xn + 1

    Encoding and decoding are similar to that of abinary cods

  • 8/22/2019 BCH Code & Reed Solomon Code

    51/59

    In binary BCH codes defined can be generalized

    to non-binary codes in a straight forwardmanner.

    For any choice of positive integer s and t, thereexists a q-ary BCH code of length n=qs-1 which is

    capable of correcting any combination of t orfewer errors and requires no more than 2stparity check digits

  • 8/22/2019 BCH Code & Reed Solomon Code

    52/59

    Let be a t-error correcting q-ary BCH code is

    the polynomial of lower degree with coefficientform GF(q) for which , 2, .. ,2t are the roots

    Let i(X) be the minimal polynomial ofi then

    g=(X) = LCM{1

    (X), 2

    (X), .. ,2t

    (X)}

    Degree of each minimal polynomial is s or less

    Therefore degree of g(X) is at most 2st.

    Hence number of parity check digits of codegenerated by g(X) is no more than 2st

    For q=2 we obtain BCH codes

  • 8/22/2019 BCH Code & Reed Solomon Code

    53/59

    Special subclass of q-ary BCH code for which s=1

    A t-error correcting Reed-Solomon code withsymbols from GF(q) has the followingparameters

    Block length: n = q 1

    No. parity check digits n-k = 2t

    Minimum distance dmin = 2t + 1

  • 8/22/2019 BCH Code & Reed Solomon Code

    54/59

    Length of the code is one less than the size of

    code symbols (q-1) and minimum distance isone greater than the no: of parity check digits(2t + 1)

    Codes with code symbols from Galois field

    GF(2m), q=2m

    A (n, k) RS-code have dmin > (n-k+1) and itbelongs to maximum distance separable code

    category of LBCRS code are particularly useful in situationswhere errors tends to happen in bursts ratherthan randomly

  • 8/22/2019 BCH Code & Reed Solomon Code

    55/59

    Let be the primitive element in GF(2m)

    The generator polynomial g(X)g(X)= (X+) (X+ 2) .. (X+ 2t)

    g(X)=g0 + g1X +.. + g2t-1X2t-1 + X2t

    g(X) has , 2, .. ,2t as all roots and hascoefficients form GF(2m)

    k=n-(n-k)=n-2t

    Code generated by g(X) is an (n, n t)

  • 8/22/2019 BCH Code & Reed Solomon Code

    56/59

    Cyclic code which consists of those polynomials

    of degree (n 1) or less with coefficients fromGF(2m) that are multiples of g(X)

  • 8/22/2019 BCH Code & Reed Solomon Code

    57/59

    Similar to binary case

    Encoder operates on multiple bits rather thanindividual bits

    Let message, a(X) = a0 + a1X +.. + ak-1Xk-1

    Where k=n 2tIn systematic form the 2t parity check digits arethe coefficients of remainder b(X) resulting fromdividing message polynomial X2ta(X) by

    generator polynomial g(X)

    b(X) = rem(X2ta(X)/g(X))= b0 + b1X +.. + b2t-1X2t-1

  • 8/22/2019 BCH Code & Reed Solomon Code

    58/59

    Incoming data stream bits are grouped into

    blocks of m symbols GF(2m

    ) of block lengthn=2m-1

    Each block is treated as k symbols with eachsymbol having m bits

    Encoding algorithm expands a block of ksymbols to a n symbols by adding n k paritycheck digits

  • 8/22/2019 BCH Code & Reed Solomon Code

    59/59

    Similar to binary code