Introduction to Reed-Solomon Code Peng XuC5000 Software Development Group Texas Instruments Inc. Stafford, Texas
What is Reed-Solomon Code?♦ Word-oriented non-binary BCH code♦ Simplicity, Robustness and good performance for burst errors♦ Code block length N = 2 − 1 m♦ t errors correcting capacity with 2t parity check words♦ Galois Field based coding technique
Generator Polynomial♦ The generator polynomial determines the properties of the code: G(x) = (x −α m0 +1 )(x −α m0 +2 ) (x −α m0 +2t ) 2t −1 = x + g2t−1x 2t + + g1x + g0x 0 where α is a primitive element of GF ( 2 m ) m0 is some integer usually set to 0
Encoding RS Codes C ( x) = D( x) ⋅ x 2t − [ D( x) ⋅ x 2t mod G ( x)] 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 and N – K = 2t d K −1 d K − 2 d1 d0 c2t −1 c2t − 2 c1 c0 User Data Parity
Encoding RS Codes− d0 , ,− d K − 2 , − d K −1 + -D(x) − g 2t −1 − g1 − g0 + + c2t −1 c2 t − 2 c1 c0 RS Encoder Polynomial Remainder Circuit
Decoding RS Codeslet R(x) = C(x) + E(x)where R(x) is the received message polynomial with errors C(x) is the transmitted correct codeword polynomial E(x) is the unknown error polynomiallet S(x) = R(x) mod G(x) = E(x) mod G(x)where S(x) is the syndrome of the received message G(x) is the generator polynomial of the code
RS Decoding Procedure1. Calculate Syndrome Ei = r(αi ) i = 0,1,...,2t −12. Calculate Error Locator Polynomial Λ (x) using Berlekamp–Massey algorithm3. Determine the roots of Λ (x) which are related to the error locations using Chien Search4. Calculate the coefficients of the error evaluator polynomial Ω(x) using Forney Algorithm5. Calculate the error magnitude6. Recover the corrected codeword
Syndrome &Error Locator polynomialSyndrome Ei = r (α i ) i = 0,1,...,2t − 1Error Locator polynomial v Λ( x) = ∏ (1 − α ) = 1 + Λ1 x1 + ljx Λv xv j =1where the are the index of the errors lj v Et −1 E0 Λ1 Et = E2t −2 Et −1 Λ t E2t −1
Berlekamp-Massey AlgorithmThis algorithm was developed by Berlekmapand Massey to solve the problem ofdetermining the error locator polynomial.It reduces the complexity from O(t 3 ) ofmatrix inversion to O(t 2 ) .
Chien Search Factoring the roots of the error locator polynomial is typically done by evaluating it at every point and testing to see if the result is zero. The Chien search is a way of doing this which has a fairly regular structure.
Forney algorithmError Evaluator polynomial E ( x)Λ( x) = Ω( x)( x n − 1)Error Value α k Ω(α − k ) ek = Λ′(α −k )
Future Tasks♦ More flexible generator polynomial?♦ More Logarithm tables of GF?♦ Convert C54x to C55x codes?♦ Application Notes?♦ More…