Download presentation

Presentation is loading. Please wait.

Published byArianna Walter Modified about 1 year ago

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

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

3
Determinants In general case: where: and M ij is obtained from | by deleting the row and column containing a ij.

4
Determinants In general case: where: and M ij is obtained from A by deleting the row and column containing a ij. What we will need here is that set of n polynomials of degree n is 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
[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 errors 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)= 3i, where 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+x 3. It is minimal polynomial in GF(8) with roots , 2 and 4. Hence, a polynomial h(x) is in C if and only if it's roots include , 2 and 4.

10
BCH codes - the alphabet Until now we generally considered codes consisting of binary vectors. If we consider a BCH code over GF(2 m ), the codewords still can be represented as binary vectors, however, in general the encoding is done for vectors with elements from GF(2 k ) 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(2 r ) 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( ) = c 0 +c 1 1 +c 2 c n n, where n = 2 r 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,...,2 r 1.

12
BCH codes Example: q=2, m=4, =5; we consider minimal polynomials for { , 2, 3, 4 }, these will be x 4 + x and x 4 + x 3 + x 2 + 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 x 4 + x and x 4 + x 3 + x 2 + 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 = q r 1. What about other sizes? Lets consider q=2 and r=11, m = 2 r 1 = we can have code of length n = m = for other values of n polynomial x n 1 should divide x m 1. m = 2047 = 89 23. x 2047 1 is divisible by x 89 1 and x 23 1. to obtain codes of length n = 89 we should consider roots that are powers of = 23, where is a primitive element of GF(2 11 ). to obtain codes of length n = 23 we should consider roots that are powers of = 89, where is a primitive element of GF(2 11 ).

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 [Adapted from V.Pless] The determinant is non-zero, thus, d.

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

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 [Adapted from wikipedia.org] PDF-417 QR code Information storage on CD, CD-ROM, DVD, hard drives etc

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 y 1 = i, giving us error position. For two error correcting code we have y 1 = i + j, y 2 = i3 + j3. We managed to solve also this case. In general case we have equation system: where Y i gives error values (just 1 in binary case) and X i gives error positions. Can we solve this? [Adapted from V.Pless]

28
Decoding of BCH codes We possess the values S i ; (2t of them) and we need to find the values of X i (r of them) and the values of Y i (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 xX 1 ) (1 xX 2 ) (1 xX r ) = 1+s 1 x+...+ s r x r. s(x) has zeros at the inverses from code locations. Can we compute s i -s from S i -s? [Adapted from V.Pless]

29
Decoding of BCH codes s(x) = (1 xX 1 ) (1 xX 2 ) (1 xX r ) = 1+s 1 x+...+ s r x r. Let x=X i 1 and let multiply both sides of equation by Y i X i j+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]

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google