Download presentation
Presentation is loading. Please wait.
Published byGerard Henry Modified over 8 years ago
1
Class Report 林格名 : Reed Solomon Encoder
2
Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s errors, r erasures) then the original transmitted code word will always be recovered –The decoder will detect that it cannot recover the original code word and indicate this fact –The decoder will mis-decode and recover an incorrect code word without any indication The probability of each of the three possibilities depends on the particular Reed-Solomom code and on the number and distribution of errors Reed-Solomon codes are particularly suited to correcting burst errors (a series of bit errors) One symbol error means one bit or more than one bits in a symbol are incorrect
3
RS(15,9) Example Parameters Any valid code polynomial must a multiple of the generator polynomial It implies that it must have roots the same 2t consecutive powers of that form the roots of g(x) Block lengthn = 15 symbols Message lengthk = 9 symbols Code rater = k/n = 60% Parity-check symbols lengthn – k = 6 symbols Minimum distanced = n – k + 1 symbols Error-correction capabilityt = (n – k)/2 = 3 symbols Finite field orderq = n + 1 = 2 m = 2 4 = 16 symbols Field generatorp(x) = x 4 + x + 1 Code generator polynomialg(x) = x 6 + 10 x 5 + 14 x 4 + 4 x 3 + 6 x 2 + 9 x + 6
4
DVB RS(204,188) Code Reed-Soromon RS(204,188,8) is applied. Code length 204 Data length 188 Correct up to 8 random erroneous bytes Overhead 16/204 = 7.84% Code Generator Polynomial with = 02 HEX g(x) = (x+ 0 )(x+ 1 )(x+ 2 ) (x+ 15 ) Field Generator Polynomial p(x) = x 8 + x 4 + x 3 + x 2 +1 16 Parity bytes187 bytes Randomized Data SYNCn Reed-Solomon RS(204,188,8) error protected packets
5
RS(n,k,t) Code Encoding Where C(x) is the transmitted codeword polynomial, of degree n-1 D(x) is the user data polynomial of degree k-1 G(x) is the generator polynomial of the code of degree 2t n – k = 2t d k-1 d k-2 d1d1 d0d0 c0c0 c1c1 c 2t-2 c 2t-1 User Data Parity
6
Encoding of Systematic RS Codes To encode RS code in a systematic manner, the codeword polynomials generated by a use of the division algorithm. Dividing the shifted message polynomial x d-1 m(x) by g(x), we obtain where g(x) is the generator polynomial and p(x) is the parity Check polynomial. The codeword vector will be in a form of c = (p 0, p 1, , p d-2, m 0, m 1, , m k-1 ) Example: Consider the (15,9) RS code with g(x) = x 6 + 10 x 5 + 14 x 4 + 4 x 3 + 6 x 2 + 9 x + and m(x) = 11 x. Then, c(x) = x 6 m(x) + (x 6 m(x) mod g(x)) = (x 6 )( 11 x) + (x 6 )( 11 x) mode g(x) = 11 x 7 + 8 x 5 + 10 x 4 + 4 x 3 + 14 x 2 + 8 x + 12 The message symbol appears unchanged in the encode codeword.
7
Finding Parity Check Symbols by LFSR RS is a cyclic code and often implemented as a LFSR with GF(2 m ) operators Example Input Data Parity Path Output Data g0g0 g1g1 g2g2 g 2t-1 Galois Multiply Galois Addition s-bit register 163163 3 326 66 55 55 22 LFSR: Linear Feedback Shift Register (parity byte, input messages) = (6 2 3 3 3 6 1) L1L1 L2L2 L3L3 L4L4 G(x) = (x + 0 )(x + 1 )(x + 2 )(x + 3 )
8
Finite Field – Galois Field GF(2 4 ) Power Repre. Binary Repre. Polynomial Representation 00 0 0 10 0 0 11 0 0 1 0 22 0 1 0 0 22 33 1 0 0 0 33 44 0 0 1 1 1 + 55 0 1 1 0 + 2 66 1 1 0 0 2 + 3 77 1 0 1 1 1 + + 3 88 0 1 1 + 2 99 1 0 + 3 10 0 1 1 1 1 + + 2 11 1 1 1 0 + 2 + 3 12 1 1 1 + + 2 + 3 13 1 1 0 1 1 + 2 + 3 14 1 0 0 1 1 + 3 GF Addition and subtraction is the same by using the exclusive OR operation Example of GF multiplication 4 5 = (1 + ) ( + 2 ) = + 2 + 2 + 3 = + 3 = 9 Example of GF division 4 / 10 = 4 (15-10) = 9 Primitive polynomial: x 4 +x +1 = 0
9
Example of Reed-Solomon Encoder DDDD 121315 Output Input Control jj kk (j+k) mod 15 66 00 44 12 jj kk j kj k g0g0 g1g1 g2g2 g3g3 Message: m(x) = x 14 + 2x 13 + 3x 12 + 4x 11 + 5x 10 + 6x 9 + 7x 8 + 8x 7 + 9x 6 + 10x 5 + 11x 4 Generator: g(x) = x 4 + 15x 3 + 3x 2 + x + 12 Remainder: r(x) = 3x 3 + 3x 2 + 12x + 12 Codeword: c(x) = m(x) + r(x) (11 10 9 8 7 6 5 4 3 2 1) Parity (12 12 3 3) Linear Feedback Shift Register
10
Pipelined Polynomial Division for (15,11) Reed-Solomon Encoder Initial 0 0 0 0 1 g(x) 1 1 15 3 1 12 latch 15 3 1 12 2 g(x) 13 13 7 4 13 3 latch 4 5 1 3 3 g(x) 7 7 11 9 7 2 latch 14 8 4 2 4 g(x) 10 10 12 13 10 1 latch 4 9 8 1 5 g(x) 1 1 15 3 1 12 latch 6 11 0 12 6 g(x) 0 0 0 0 0 0 latch 11 0 12 0 7 g(x) 12 12 8 7 12 15 latch 8 11 12 15 8 g(x) 0 0 0 0 0 0 latch 11 12 15 0 9 g(x) 2 2 13 6 2 11 latch 1 9 2 11 10 g(x) 11 11 3 14 11 13 latch 10 12 0 13 0 11 g(x) 1 1 15 3 1 12 latch 3 3 12 12 Message: m(x) = x 14 + 2x 13 + 3x 12 + 4x 11 + 5x 10 + 6x 9 + 7x 8 + 8x 7 + 9x 6 + 10x 5 + 11x 4 Generator: g(x) = x 4 + 15x 3 + 3x 2 + x + 12 Remainder: r(x) = 3x 3 + 3x 2 + 12x + 12 Codeword: c(x) = m(x) + r(x)
11
Polynomial Division x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 x 10 1 15 3 1 12 13 0 5 9 6 13x 9 13 7 4 13 3 7 1 4 5 7 7x 8 7 11 9 7 2 10 13 2 5 8 10x 7 10 12 13 10 1 1 15 15 9 9 x 6 1 15 3 1 12 0 12 8 5 10 0x 5 0 0 0 0 0 12 8 5 10 11 12x 4 12 8 7 12 15 0 2 6 4 0 0x 3 0 0 0 0 0 2 6 4 0 0 2x 2 2 13 6 2 11 11 2 2 11 0 11x 1 11 3 14 11 13 1 12 0 13 0 1x 0 1 15 3 1 12 3 3 12 12 Message: x 14 + 2x 13 + 3x 12 + 4x 11 + 5x 10 + 6x 9 + 7x 8 + 8x 7 + 9x 6 + 10x 5 + 11x 4 Generator: x 4 + 15x 3 + 3x 2 + x + 12, Remainder: 3x 3 + 3x 2 + 12x + 12, c(x) = m(x) + r(x)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.