1 / 34

Information and Coding Theory

Information and Coding Theory Some important classes of cyclic codes. Bose- Chaudhuri - Hocquenghem (BCH) codes. Reed-Solomon codes. Juris Viksna, 2014. Determinants. Lets start with something we known very well from linear algebra :). Determinants. In general case: where:

ina
Télécharger la présentation

Information and Coding Theory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Information and Coding Theory Some important classes of cyclic codes. Bose-Chaudhuri-Hocquenghem (BCH) codes. Reed-Solomon codes. Juris Viksna, 2014

  2. Determinants Lets start with something we known very well from linear algebra :)

  3. Determinants In general case: where: and Mij is obtained from | by deleting the row and column containing aij.

  4. Determinants In general case: where: and Mij is obtained from A by deleting the row and column containing aij. What we will need here is that set of n polynomials of degree nis linearly independent if and only if determinant of matrix formed by their coefficients is non-zero.

  5. Vandermonde matrices and determinants We will consider determinant of special form:

  6. Vandermonde matrices and determinants

  7. Vandermonde matrices and determinants [Adapted from V.Pless]

  8. BCH codes - we already had an example Let's recall the decoding procedure of Hamming codes: The syndrome of the received vector was either 0 (no errors), or f(i), if error has occured in i-th position. And f(i) here is just a binary representation of i. Can we design something similar for larger number of errors? E.g. a code correcting 2 errors, with an appropriate function f, such that for erros occuring in positions i and j these values (i and j) are easily computable from the sum f(i)+f(j)? As it turns out, the problem is solvable, if for example f(i)=a3i, where a is a primitive root of GF(16).

  9. BCH codes - the idea • How can we specify cyclic codes: • by specifying generator polynomial • Are there other possibilities? • Assume that generator polynomial for code C is f(x)=1+x+x3. It is minimal polynomial in GF(8) with roots a, a2 and a4. • Hence, a polynomial h(x) is in C if and only if it's roots include a, a2 and a4.

  10. BCH codes - the alphabet Until now we generally considered codes consisting of binary vectors. If we consider a BCH code over GF(2m), the codewords still can be represented as binary vectors, however, in general the encoding is done for vectors with elements from GF(2k) for some k < m and correction of t errors means that code can recover the message if up to t subblocks of length k have been corrupted. This is a useful property in case of burst errors , i.e. if in case of an error several consecutive bits tend to be corrupted. For example, consider data endoding on CD - if a CD is scratched, then it is very likely that more than just one consecutive bit will be corrupted.

  11. BCH codes - some examples Let’s consider GF(2r) and let g(x) be a primitive polynomial with coefficients from GF(2). It has degree r and defines a cyclic code over GF(2). Let  be a root of g(x). For every codeword c(x) we have c()=g()a() = 0. We also have c() = c0+c11+c22+...+cnn, where n = 2r1. We have that c is orthogonal to H = (1  2 ... n). Notice that we just have defined a code equivalent to Ham(r,2), i.e. Hamming codes can be regarded as cyclic! Notice that c is orthogonal also to H = (1 i 2i ... ni), for i = 1,2,4,...,2r  1.

  12. BCH codes Example: q=2, m=4, =5; we consider minimal polynomials for {, 2, 3, 4}, these will be x4 + x3 + 1 and x4 + x3 + x2 + x + 1. Code has dimension 7 (but we need to have minimal polynomials to know this. H is almost a parity check matrix - i.e. it is orthogonal, but may have some extra rows.

  13. BCH codes Example: q=2, m=4, =5; we consider minimal polynomials for {, 2, 3, 4}, these will be x4 + x3 + 1 and x4 + x3 + x2 + x + 1. H is almost a parity check matrix - i.e. it is orthogonal, but may have some extra rows. However, notice that any 4 columns of H are linearly independent - thus minimal distance will be at least 5.

  14. BCH codes - code length • We always will be able to obtain codes of length n = qr1. What about other sizes? • Lets consider q=2 and r=11, m = 2r1 = 2047. • we can have code of length n = m = 2047. • for other values of n polynomial xn1 should divide xm1. • m = 2047 = 8923. • x20471 is divisible by x891 and x231. • to obtain codes of length n = 89 we should consider roots that are powers of  = 23, where  is a primitive element of GF(211). • to obtain codes of length n = 23 we should consider roots that are powers of  = 89, where  is a primitive element of GF(211).

  15. Another useful reminder - Singleton bound Yet another proof: Observe that rank H = nk. Any dependence of s columns in parity check matrix yields a codeword of weight s (any set of non-zero components in codeword  dependence relation in H). Thus d  1  n  k. Thus to show that minimal distance is d, it suffices to show that any d columns of parity check matrix H are linearly independent.

  16. BCH codes [Adapted from V.Pless]

  17. BCH codes The determinant is non-zero, thus, d. [Adapted from V.Pless]

  18. BCH codes This trivially follows from the fact that H has (1) rows, however this isn’t a particularly good bound. [Adapted from V.Pless]

  19. Some known BCH codes

  20. Some known BCH codes

  21. Reed-Solomon codes The code was invented in 1960 by Irving S. Reed and Gustave Solomon, who were then members of MIT Lincoln Laboratory. Their seminal article was "Polynomial Codes over Certain Finite Fields." When it was written, digital technology was not advanced enough to implement the concept. The key to application of Reed-Solomon codes was the invention of an efficient decoding algorithm by Elwyn Berlekamp, a professor of electrical engineering at the University of California, Berkeley. Today they are used in disk drives, CDs, telecommunication and digital broadcast protocols.

  22. Reed-Solomon codes [Adapted from V.Pless]

  23. RS codes - a geometric interpretation [Adapted from P.Shankar]

  24. Reed-Solomon codes [Adapted from V.Pless]

  25. Some applications of Reed-Solomon codes PDF-417 QR code Information storage on CD, CD-ROM, DVD, hard drives etc [Adapted from wikipedia.org]

  26. Decoding of Reed-Solomon codes Reed-Solomon proposition: Look at all possible subsets of k symbols from n symbols in which errors could have occurred :) The number of subsets is - around 359 billion for (255,249) code that can correct 3 errors. Fortunately there are more practical methods: Peterson-Gorenstein-Zierler algorithm Berlekamp-Massey algorithm [Adapted from wikipedia.org]

  27. Decoding of BCH codes In case of one error correcting code we simply know y1= i, giving us error position. For two error correcting code we have y1= i+ j, y2 = i3 +j3. We managed to solve also this case. In general case we have equation system: where Yi gives error values (just 1 in binary case) and Xi gives error positions. Can we solve this? [Adapted from V.Pless]

  28. Decoding of BCH codes We possess the values Si; (2t of them) and we need to find the values of Xi (r of them) and the values of Yi (r of them, but in binary case all of these will be equal to 1). rt in this case is the number of errors that has occurred. Error-locator polynomial: s(x) = (1  xX1) (1  xX2)  (1  xXr) = 1+s1 x+...+ srxr. s(x) has zeros at the inverses from code locations. Can we compute si-s from Si-s? [Adapted from V.Pless]

  29. Decoding of BCH codes s(x) = (1  xX1) (1  xX2)  (1  xXr) = 1+s1 x+...+ srxr. Let x=Xi1and let multiply both sides of equation by YiXij+r. We get [Adapted from V.Pless]

  30. Decoding of BCH codes [Adapted from V.Pless]

  31. Decoding of BCH codes [Adapted from V.Pless]

  32. Decoding of BCH codes [Adapted from V.Pless]

  33. Decoding of BCH codes Proof Let and [Adapted from V.Pless]

  34. Decoding of BCH codes Peterson-Gorenstein-Zierler decoding scheme (binary case) [Adapted from V.Pless]

More Related