Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,

Similar presentations


Presentation on theme: "Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,"— Presentation transcript:

1 Chapter 11 Algebraic Coding Theory

2 Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1, 0, …, 1) is an n-bit codeword, then Mc T = 0 (use XOR addition). If c ′ = c + e contains an error, then the syndrome is: M c ′ T = M(c + e) T = Mc T + Me T = Me T = 1 This detects errors: 0 for none, 1 for an error. 11.4

3 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 M′ = for double-error detection (optional) the 3 x 7 parity check matrix for a single-error correcting Hamming code 11.2 If c is a 7 bit code word, then Mc T = (0 0 0) T = 0 and Mc ′ T = Me T = the syndrome for the error (e.g. try 0110011 → 0100011). In general, we can choose any parity check matrix for M, provided the rows are linearly independent (otherwise the checks themselves are redundant), and Mc T = 0. But, to correct a double-error, we must have the property that the syndrome M(e 1 + e 2 ) T = Me 1 T + Me 2 T is unique for every pair of columns (assuming e 1 and e 2 are single-error vectors). Single Error Correction / Double Error Detection

4 Polynomials  2 [x] = {b n x n + … + b 0 | n ≥ 0; b i = 0, 1; b n = 1} Associate with each n-bit vector the corresponding polynomial. Like a generating function. Arithmetric operations (+, ×) apply to  2 [x], provided we do arithmetic on the coefficients in  2 (mod 2). degreecoefficientsleading coefficient unless n = 0 A polynomial P(x) is prime (or irreducible) if it cannot be factored (over  2 [x]) into lower-order polynomials. Examples:x, x + 1, x 2 + x + 1, x 3 + x + 1, x 3 + x 2 + 1 all prime composite:x 2, x 2 + 1 = (x + 1) 2, x 2 + x, x 3, x 3 + 1, x 3 + x 2 + x + 1 = (x + 1) 3. Primitive roots:e 2πi/n generates all roots of x n − 1 over . If n is prime, any root (except 1) will work. 11.5, 11.6, 11.7

5 Consider arithmetic in  2 [x] / p(x) modulo an irreducible polynomial p(x) of degree n. Since x n ≡ p(x) − x n (mod p(x)) there are no polynomials of degree ≥ n. In fact,  2 [x] / p(x) has 2 n elements: b n−1 x n−1 + … + b 0, which form a field, and hence there exists a polynomial g(x) whose powers generate all the non-zero elements. E.g.The powers of g(x) = x mod p(x) = x 3 + x + 1 are: 1, x, x 2, x + 1, x 2 + x, x 2 + x + 1, x 2 + 1. Writing these as column vectors of a matrix gives a rearranged Hamming code: n = 3 2 n = 8 = |  2 [x] / p(x) | 7 = 8 − 1 (# non-zero) 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 x6 x5 x4 x3 x2 x1 x0x6 x5 x4 x3 x2 x1 x0 M = 11.8 Polynomial arithmetic x2x1x0x2x1x0

6 Polynomial Coding A sent codeword should have Mc T = 0, which means that c(x), as a polynomial, is evenly divisible by p(x), the modulus polynomial. Why? Because c(x) = c 6 x 6 + … + c 0, and Mc T = c(x) by definition of matrix multiplication, and since the powers of x that make up the columns of M are modulo p(x), Mc T = 0  c(x) ≡ 0 (mod p(x)). For a received codeword c′, Mc′ T = Me T = syndrome, and similarly, the corresponding polynomial s(x) has c′(x) − s(x) ≡ 0 mod p(x)  c′(x) ≡ s(x) and that the column matched, x i ≡ s(x) is the error location (assuming e contains only one error, i.e. s(x) ≡ x i ). 11.8 end

7 Encode:Place message in colums 6, 5, 4, 3, and compute b 6 x 6 + b 5 x 5 + b 4 x 4 + b 3 x 3 modulo p(x). Put remainder, r(x) = b 2 x 2 + b 1 x + b 0, in the last columns. b 6 b 5 b 4 b 3 b 2 b 1 b 0 message checks Decode:Divide received polynomial by p(x), and use the remainder r(x) ≡ g i (x) to locate error position i). no error  i doesn’t exist. 11.8 Example: 1 0 0 1  x 6 + x 3 + ?/\ 1 0 0 1 1 1 0  x 2 + 1 + x + 1 = x 2 + x

8 Double error-correcting Code An illustration: start with a 15 bit Hamming code having 4 parity checks. Verify that x 4 + x + 1 is prime, and that the primitive x generates  2 [x] / (x 4 + x + 1) \ {0}. The resulting parity check matrix M 1 is single error-correcting, but x + x 2 = x 12 + x 14 so double error-correction is impossible. Now, pick another primitive generator x 3 of the same  2 [x] / (x 4 + x + 1), with resulting matrix M 2. Let s 1 = x i + x j = M 1 c ′ T be the first syndrome and s 2 = (x 3 ) i + (x 3 ) j = M 2 c ′ T be the second syndrome. Then s 2 = (x i ) 3 + (x j ) 3 = (x i + x j )((x i ) 2 + (x i )(x j ) + (x j ) 2 ) = s 1 [x i x j + s 1 2 ] So that:x i + x j = s 1 and x i x j = s 1 2 + s 2 /s 1 11.11


Download ppt "Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,"

Similar presentations


Ads by Google