Presentation is loading. Please wait.

Presentation is loading. Please wait.

BCH Codes Hsin-Lung Wu NTPU. p2. OUTLINE [1] Finite fields [2] Minimal polynomials [3] Cyclic Hamming codes [4] BCH codes [5] Decoding 2 error-correcting.

Similar presentations


Presentation on theme: "BCH Codes Hsin-Lung Wu NTPU. p2. OUTLINE [1] Finite fields [2] Minimal polynomials [3] Cyclic Hamming codes [4] BCH codes [5] Decoding 2 error-correcting."— Presentation transcript:

1 BCH Codes Hsin-Lung Wu NTPU

2 p2. OUTLINE [1] Finite fields [2] Minimal polynomials [3] Cyclic Hamming codes [4] BCH codes [5] Decoding 2 error-correcting BCH codes

3 p3. BCH Codes [1] Finite fields 1. Irreducible polynomial f(x)  K[x], f(x) has no proper divisors in K[x] Eg. f(x)=1+x+x 2 is irreducible f(x)=1+x+x 2 +x 3 =(1+x)(1+x 2 ) is not irreducible f(x)=1+x+x 4 is irreducible

4 p4. BCH Codes 2. Primitive polynomial f(x) is irreducible of degree n > 1 f(x) is not a divisor of 1+x m for any m < 2 n -1 Eg. f(x)=1+x+x 2 is not a factor of 1+x m for m < 3 so f(x) is a primitive polynomial f(x)= 1+x+x 2 +x 3 +x 4 is irreducible but 1+x 5 =(1+x)(1+x+x 2 +x 3 +x 4 ) and m=5 < =15 so f(x) is not a primitive polynomial

5 p5. BCH Codes 3. Definition of K n [x] The set of all polynomials in K[x] having degree less than n Each word in K n corresponds to a polynomial in K n [x] Multiplication in K n modulo h(x), with irreducible h(x) of degree n If we use multiplication modulo a reducible h(x), say, 1+x 4 to define multiplication of words in K 4, however: (0101)(0101)  (x+x 3 )(x+x 3 ) = x 2 +x 6 = x 2 +x 2 (mod 1+x 4 ) = 0  0000 (K 4 -{0000} is not closed under multiplication.)

6 p6. BCH Codes Furthermore each nonzero element in K n can have an inverse if we use irreducible h(x). But if we use reducible h(x) then there exists nonzero element, which has no inverse. Why? Let f(x) is nonzero element and h(x) is irreducible then gcd(f(x),h(x))=1 and so exists a(x)f(x)+b(x)h(x)=1 => a(x)f(x)=1 mod h(x) and so a(x) is the inverse of f(x)

7 p7. BCH Codes 4. Definition of Field (K n,+,x) (K n,+) is an abelian group with identity denoted 0 The operation x is associative a x ( b x c) = ( a x b ) x c There is a multiplicative identity denoted 1, with 1  0 1 x a = a x 1 = a,  a  K n The operation x is distributive over + a x ( b + c ) = ( a x b ) + ( a x c ) It is communicative a x b = b x a,  a,b  K n All non-zero elements have multiplicative inverses Galois Fields: GF(2 r ) For every prime power order p m, there is a unique finite field of order p m Denoted by GF(p m )

8 p8. BCH Codes Example Let us consider the construction of GF(2 3 ) using the primitive polynomial h(x)=1+x+x 3 to define multiplication. We do this by computing x i mod h(x): word  x i mod h(x) x 001x 2 110x 3  1+x 011x 4  x+x 2 111x 5  1+x+x 2 101x 6  1+x 2

9 p9. BCH Codes 5. Use a primitive polynomial to construct GF(2 n ) Let   K n represent the word corresponding to x mod h(x)  i  x i mod h(x)  m  1 for m<2 n -1 since h(x) dose not divide 1+x m for m<2 n -1 Since  j =  i for j  i iff  i =  j-i  i   j-i = 1 K n \{0}={  i | i = 0,1,…,2 n -2}

10 p10. BCH Codes 6.   GF(2 r ) is primitive  is primitive if  m  1 for 1  m <2 r -1 In other words, every non-zero word in GF(2 r ) can be expressed as a power of  Example Construct GF(2 4 ) using the primitive polynomial h(x)=1+x+x 4. Write every vector as a power of   x mod h(x)(see Table 5.1 below) Note that  15 =1. (0110)(1101)=  5.  7 =  12 =1111

11 p11. BCH Codes Table 5.1 Construction of GF(2 4 ) using h(x)=1+x+x 4 wordpolynomial in x mod h(x) power of   0 =1 0100x  0010x2x2 22 0001x3x3 3 x=x 4 44 0110x+x 2 =x 5 55 0011x 2 +x 3 =x 6 66

12 p12. BCH Codes Table 5.1 (continue) Construction of GF(2 4 ) using h(x)=1+x+x 4 wordpolynomial in x mod h(x) power of  x+x 3 =x 7 7 x 2 =x 8 88 0101x+x 3 =x 9 9 x+x 2 =x 10  x+x 2 +x 3 =x 11  x+x 2 +x 3 =x 12  x 2 +x 3 =x 13  x 3 =x 14  14

13 p13. BCH Codes  [2] Minimal polynomials  1. Root of a polynomial   : an element of F=GF(2 r ), p(x)  F[x]   is a root of a polynomial p(x) iff p(  )=0  2. Order of   The smallest positive integer m such that  m =1   in GF(2 r ) is a primitive element if it has order 2 r -1

14 p14. BCH Codes  3. Minimal polynomial of   The polynomial in K[x] of smallest degree having  as root  Denoted by m  (x)  m  (x) is irreducible over K  If f(x) is any polynomial over K such that f(  )=0, then m  (x) is a factor of f(x)  m  (x) is unique  m  (x) is a factor of

15 p15. BCH Codes  Example Let p(x)=1+x 3 +x 4, and let  be the primitive element in GF(2 4 ) constructed using h(x)=1+x+x 4 (see Table 5.1): p(  )=1+  3 +  4 = =0101=  9  is not a root of p(x). However p(  7 )=1+(  7 ) 3 +(  7 ) 4 =1+  21 +  28 =1+  6 +  13 = =0000=0  7 is a root of p(x).

16 p16. BCH Codes  4. Finding the minimal polynomial of   Reduce to find a linear combination of the vectors {1, ,  2,…,  r }, which sums to 0  Any set of r+1 vectors in K r is dependent, such a solution exists  Represent m  (x) by m i (x) where  =  I  eg. Find the m  (x),  =  3,  GF(2 4 ) constructed using h(x)=1+x+x 4

17 p17. BCH Codes  Useful facts: f(x) 2 =f(x 2 )  If f(  )=0, then f(  2 )=(f(  )) 2 =0  If  is a root of f(x), so are ,  2,  4,…,  The degree of m  (x) is |{ ,  2,  4,…, }|

18 p18. BCH Codes  Example  Find the m  (x),  =  3,  GF(2 4 ) constructed using h(x)=1+x+x 4  Let m  (x)= m 3 (x)=a 0 +a 1 x+a 2 x 2 +a 3 x 3 +a 4 x 4 then we must find the value for a 0,a 1,…,a 4  {0,1} m  (  )=0=a 0 1+a 1  +a 2  2 +a 3  3 +a 4  4 =a 0  0 +a 1  3 +a 2  6 +a 3  9 +a 4  =a 0 (1000)+a 1 (0001)+a 2 (0011)+a 3 (0101)+a 4 (1111)  a 0 =a 1 =a 2 =a 3 =a 4 =1 and m  (x)=1+x+x 2 +x 3 +x 4

19 p19. BCH Codes  Example  Let m 5 (x) be the minimal polynomials of  =  5,  5  GF(2 4 ) Since { ,  2,  4,  8 }={  5,  10 }, the roots of m 5 (x) are  5 and  10 which means that degree (m 5 (x))=2. Thus m 5 (x)=a 0 +a 1 x+a 2 x 2 : 0=a 0 +a 1  5 +a 2  10 =a 0 (1000)+a 1 (0110)+a 2 (1110) Thus a 0 =a 1 =a 2 =1 and m 5 (x)=1+x+x 2

20 p20. BCH Codes  Table 5.2: Minimal polynomials in GF(2 4 ) constructed using 1+x+x 4 Element of GF(2 4 )Minimal polynomial 0 1 ,  2,  4,  8  3,  6,  9,  12  5,  10  7,  11,  13,  14 x 1+x 1+x+x 4 1+x+x 2 +x 3 +x 4 1+x+x 2 1+x 3 +x 4

21 p21. BCH Codes  [3] Cyclic Hamming codes  1. Parity check matrix  The parity check matrix of a Hamming code of length n=2 r -1 has its rows all 2 r -1 nonzero words of length r   is a primitive element of GF(2 r )  H is the parity check ma- trix of a Hamming code of length n=2 r -1

22 p22. BCH Codes  2. Generator polynomial  For any received word w=w 0 w 1 …w n-1 wH=w 0  +w 1  +…+w n-1  n-1  w(  )  w is a codeword iff  is a root of w(x)  m  (x) is its generator polynomial Theorem A primitive polynomial of degree r is the generator polynomial of a cyclic Hamming code of length 2 r -1

23 p23. BCH Codes  Example: Let r=3, so n=2 3 -1=7. Use p(x)=1+x+x 3 to construct GF(2 3 ), and   010 as the primitive element. Recall that  i  x i mod p(x). Therefore a parity check matrix for a Hamming code of length 7 is

24 p24. BCH Codes  3. Decoding the cyclic Hamming code  w(x)=c(x)+e(x), where c(x) is a codeword, e(x) is the error  w( β )=e( β )  e has weight 1, e( β )= β j, j is the position of the 1 in e  c(x)=w(x)+x j

25 p25. BCH Codes  Example: Suppose GF(2 3 ) was constructed using 1+x+x 3. m 1 (x)=1+x+x 3 is the generator for a cyclic Hamming code of length 7. Suppose w(x)=1+x+x 3 +x 6 is received. Then w(  )=1+  2 +  3 +  6 = =110 =  3 e(x)= x 3 and c(x)=w(x)+x 3 =1+x 2 +x 6

26 p26. BCH Codes  [4] BCH codes  1. BCH: Bose-Chaudhuri-Hocquengham  Admit a relatively easy decoding scheme  The class of BCH codes is quite extensive  For any positive integers r and t with t  2 r-1 -1, there is a BCH codes of length n=2 r -1 which is t-error correcting and has dimension k  n-rt

27 p27. BCH Codes  2. Parity check matrix for the 2 error-correcting BCH  The 2 error-correcting BCH codes of length 2 r -1 is the cyclic linear codes, generated by g(x)=, r  4 The generator polynomial: g(x)=m 1 (x) m 3 (x) Degree(g(x))=2r, the code has dimension n-2r=2 r -1-2r

28 p28. BCH Codes Example:  is a primitive element in GF(2 4 ) constructed with p(x) = 1+x+x 4. We have that m 1 (x)=1+x+x 4 and m 3 (x) = 1+x+x 2 +x 3 +x 4. Therefore g(x)= m 1 (x) m 3 (x)= 1+x 4 +x 6 +x 7 +x 8 is the generator for a 2 error-correcting BCH code of length 15

29 p29. BCH Codes  3. The parity check matrix of C 15 (distance d=5) (Table 5.3)

30 p30. BCH Codes  [5] Decoding 2 error-correcting BCH codes  1. Error locator polynomial w(x): received word syndrome wH=[w(  ),w(  3 )]=[s 1,s 3 ]  H is the parity check matrix for the (2 r -1, 2 r -2r-1, 5) 2 error-correcting BCH code with generator g(x)=m 1 (x) m 3 (x)  wH=0 if no errors occurred  If one error occurred, the error polynomial e(x)=x i wH=eH=[e(  ), e(  3 )]=[  i,  3i ]=[s 1,s 3 ],

31 p31. BCH Codes  If two errors occurred, say in positions i and j, i  j, e(x)=x i +x j, wH=eH=[e(  ), e(  3 )] =[  i +  j,  3i +  3j ]=[s 1,s 3 ]  The error locator polynomial:

32 p32. BCH Codes  Example: Let w  w(x) be a received word with syndromes s 1 =0111=w(  ) and s 3 =1010= w(  3 ), where w was encoded using C 15. From Table 5.1 we have that s 1   11 and s 3   8. Then We form the polynomial x 2 +  11 x+  2 and find that it has roots  4 and  13. Therefore we can decide that the most likely errors occurred in positions 4 and 13, e(x)= x 4 +x 13, the most likely error pattern is

33 p33. BCH Codes  2. Decoding algorithm of BCH codes  Calculate the syndrome wH=[s 1,s 3 ]=[w(  ),w(  3 )]  If s 1 =s 3 =0, no errors occurred  If s 1 =0 and s 3  0, ask for retransmission  If (s 1 ) 3 =s 3, a single error at position i, where s 1 =  i  From the quadratic equation: (*)  If equation(*) has two distinct roots  i and  j, correct errors at positions i and j  If equation(*) does not have two distinct roots in GF(2 r ), conclude that at least three errors occurred

34 p34. BCH Codes  Example: Assume w is received and the syndrome is wH=  [  11,  8 ]. Now In this case equation(*) is x 2 +  11 x+  2 =0 which has roots  4 and  13. Correct error in positions i=4 and j=13.  Example: Assume the syndrome is wH=[w(  ),w(  3 )]=[  3,  9 ]. Then (s 1 ) 3 = (  3 ) 3 =s 3. A single error at position i=3. e(x)=x 3 is the error polynomial.

35 p35. BCH Codes  Example Assume w= is received. The syndrome is wH=  [  11,  5 ]= [s 1,s 3 ]. Now So in this case, (*) becomes x 2 +  11 x+  0 =0.

36 p36. BCH Codes So in this case, (*) becomes x 2 +  11 x+  0 =0. Trying the elements of GF(2 4 ) in turn as possible roots, we come to x=  7 and find (  7 ) 2 +  11  7 +  0 =  14 +  3 +  0  =0000 Now  7  j =1=  15, so  j =  8, is the other root. Correct error at positions i=7 and j=8; u= is the most likely error pattern. We decode v=w+u= as the word sent.

37 p37. BCH Codes  Example: Assume a codeword in C 15 is sent, and errors occur in positions 2, 6 and 12. Then the syndrome wH is the sum of rows 2, 6, and 12 of H, where w is the word received. Thus wH= =  [  10,  3 ]= [s 1,s 3 ] Now (*) becomes x 2 +  10 x+  4 =0, no roots in GF(2 4 ). Therefore IMLD for C 15 concludes correctly, that at least three errors occurred.


Download ppt "BCH Codes Hsin-Lung Wu NTPU. p2. OUTLINE [1] Finite fields [2] Minimal polynomials [3] Cyclic Hamming codes [4] BCH codes [5] Decoding 2 error-correcting."

Similar presentations


Ads by Google