

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Solutions to problem set 9 of the reed-solomon error correction course for students enrolled in ece 556, cs 577, and math 579 at the university of illinois, fall 2005. It covers the calculation of error-locator and erasure-locator polynomials, as well as the correction of errors using the extended euclidean algorithm and the peterson-gorenstein-zierler decoder.
Typology: Assignments
1 / 2
This page cannot be seen from the preview
Don't miss anything!


University of Illinois Fall 2005
S(z) = α^12 + z + α^14 z^2 + α^10 z^3 + α^12 z^5.
Find the error-locator polynomial λ(z) using the extended Euclidean algorithm for BCH decoding.
(a) S 1 = R(3^1 ) = R(3) = 1 + 4 · 3 + 3 · 32 = 5, S 2 = R(3^2 ) = R(2) = 1 + 4 · 2 + 3 · 22 = 0, S 3 = R(3^3 ) = R(−1) = 1 + 4 · (−1) + 3 · (−1)^2 = 0, S 4 = R(3^4 ) = R(−3) = 1 + 4 · (−3) + 3 · (−3)^2 = 2. The syndrome polynomial is thus S(z) = 5 + 2z^3. (b) Since the erasure locations are 3^4 = −3 and 3^5 = −2, the the erasure locator polynomial is λ(z) = (1 − (−3)z)(1 − (−2)z) = (1 + 3z)(1 + 2z) = 1 + 5z + 6z^2. The modified syndrome polynomial is
Sˆ(z) ≡ λ(z)S(z) mod z^4 = (1 + 5z + 6z^2 )(5 + 2z^3 ) mod z^4 = 5 + 4z + 2z^2 + 2z^3.
(c) We set r 0 (z) = z^4 , r 1 (z) = S(z) and divide to find the quotient q 1 (z) = 4z + 3 and remainder r 2 (z) = 6z^2 + 3z + 6. Since deg r 2 < t + μ/2 = 2 + 1 = 3, we can stop. We find the errata-locator polynomial λ(z) by initializing t 0 (z) = 0, t 1 (z) = λ(z) and then computing t 2 (z) = t 0 (z) − q 1 (z)t 1 (z) = 0 − (4z + 3)(1 + 3z)(1 + 2z) = −3(1 + 6z)(1 + 3 z)(1 + 2z). We can normalize to get
λ(z) = 2(−3)(1 + 6z)(1 + 3z)(1 + 2z) = (1 − 30 z)(1 − 34 z)(1 − 35 z), ω(z) = 2(6z^2 + 3z + 6) = 5z^2 + 6z + 5.
(d) The error location is obviously 3^0 = 1. The erasure locations are 3^4 = −3 = 4 and 35 = −2 = 5, and so the inverse errata locations are 1, 2, and 3. The derivative of λ(z) is λ′(z) = 6(1 + 3z)(1 + 2z) + 3(1 + 6z))(1 + 2z) + 2(1 + 6z)(1 + 3z) which has values 2, 6 , 2 at z = 1, 2 , 3. The errata evaluator polynomial has values 2, 2 , 5 at z = 1, 2 , 3 giving errata values − 2 /2 = − 1 , − 2 /6 = − 5 , − 5 /2 = −6, and most likely transmitted codeword as
[1, 4 , 3 , 0 , 0 , 0] − [− 1 , 0 , 0 , 0 , − 5 , −6] = [2, 4 , 3 , 0 , 5 , 6].
Note that the codeword is [u(1), u(3), u(3^2 ), u(3^3 ), u(3^4 ), u(3^5 )] where u(z) = 1 + z.
(a) Show that the matrices M 4 and M 3 are singular but M 2 is not.
(b) Show that M 2 [Λ 2 , Λ 1 ]T^ = [S 2 , S 3 ]T^ has solution Λ 2 = α^11 , Λ 1 = α^12 so that Λ(z) = (1 − z)(1 − α^11 z). (c) Show that the PGZ decoder finds errors α^6 and α^11 in locations α^0 = 1 and α^11 respec- tively, so that after the alleged error correction, the received word is changed to
rˆ(x) = α^6 + α^3 x + α^3 x^2 + α^14 x^10 + α^11 x^11 + α^5 x^12 + α^8 x^13.
(d) The PGZ decoder pats itself on the back for a job well done. It found and corrected 2 errors, well within the error-correcting capability of the code. Erase the look of smug satisfaction on the face of the PGZ decoder by explaining to it why ˆr(x) cannot possibly be a valid codeword, and it has, in fact, screwed up badly. (e) A bounded-distance decoder is supposed to output a valid codeword (hopefully the right one most of the time, but possibly some other codeword – this is the event called a decoder error) or give an indication that the errors in the received word are beyond its error-correcting capability (this is called decoder failure). In this problem, we have seen that yet another possibility exists: the decoder output is not a codeword, but the decoder is oblivious to this. How can such decoder malfunctions be avoided?