Reed-Solomon Error Correction: Problem Set 9 Solutions for ECE 556/CS 577/MATH 579, Assignments of Electrical and Electronics Engineering

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

Pre 2010

Uploaded on 02/24/2010

koofers-user-aqj
koofers-user-aqj 🇺🇸

10 documents

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
University of Illinois Fall 2005
ECE 556/CS 577/MATH 579: Solutions to Problem Set 9
1. Consider the (15,9) triple-error-correcting Reed-Solomon code over GF(24) whose generator
polynomial has roots αi, i = 1,2, . . . , 6 where α4+α+1 = 0 that we encountered on Problem
5 of Problem Set 8. As before, the syndrome polynomial of the received word is
S(z) = α12 +z+α14z2+α10 z3+α12z5.
Find the error-locator polynomial λ(z) using the extended Euclidean algorithm for BCH
decoding.
2.R(z) = 1 + 4z+ 3z2+ 0z3+?z4+?z5. It is most convenient to substitute zeroes in the erased
positions and then compute the syndrome.
(a)S1=R(31) = R(3) = 1 + 4 ·3+3·32= 5,
S2=R(32) = R(2) = 1 + 4 ·2+3·22= 0,
S3=R(33) = R(1) = 1 + 4 ·(1) + 3 ·(1)2= 0,
S4=R(34) = R(3) = 1 + 4 ·(3) + 3 ·(3)2= 2.
The syndrome polynomial is thus S(z) = 5 + 2z3.
(b) Since the erasure locations are 34=3 and 35=2, the the erasure locator polynomial
is λ(z) = (1 (3)z)(1 (2)z) = (1 + 3z)(1 + 2z) = 1 + 5z+ 6z2.The modified
syndrome polynomial is
ˆ
S(z)λ(z)S(z) mod z4= (1 + 5z+ 6z2)(5 + 2z3) mod z4= 5 + 4z+ 2z2+ 2z3.
(c) We set r0(z) = z4, r1(z) = S(z) and divide to find the quotient q1(z) = 4z+ 3 and
remainder r2(z)=6z2+ 3z+ 6. Since deg r2< t +µ/2 = 2 + 1 = 3, we can stop. We
find the errata-locator polynomial λ(z) by initializing t0(z) = 0, t1(z) = λ(z) and then
computing t2(z) = t0(z)q1(z)t1(z) = 0 (4z+ 3)(1 + 3z)(1 + 2z) = 3(1 + 6z)(1 +
3z)(1 + 2z). We can normalize to get
λ(z) = 2(3)(1 + 6z)(1 + 3z)(1 + 2z) = (1 30z)(1 34z)(1 35z),
ω(z) = 2(6z2+ 3z+ 6) = 5z2+ 6z+ 5.
(d) The error location is obviously 30= 1. The erasure locations are 34=3 = 4 and
35=2 = 5, and so the inverse errata locations are 1, 2, and 3. The derivative of λ(z)
is
λ0(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(32), u(33), u(34), u(35)] where u(z) = 1 + z.
3. Consider a (15,7) 4-error-correcting Reed-Solomon code over GF(24) whose generator poly-
nomial has α, α2, . . . , α8as roots. Here, as usual, α4=α+ 1. Now, suppose that the
all-zeroes codeword is transmitted and that r(x) = e(x) is received where the error pattern
is e(x) = α3x+α3x2+α14x10 +α5x12 +α8x13, i.e. five errors have occurred. The syn-
drome sequence is [S0, S1, . . . , S7]=[α10, α2, α8, α7,0, α3, α9, α7]. Suppose further that the
Peterson-Gorenstein-Zierler decoder is being used.
pf2

Partial preview of the text

Download Reed-Solomon Error Correction: Problem Set 9 Solutions for ECE 556/CS 577/MATH 579 and more Assignments Electrical and Electronics Engineering in PDF only on Docsity!

University of Illinois Fall 2005

ECE 556/CS 577/MATH 579: Solutions to Problem Set 9

  1. Consider the (15, 9) triple-error-correcting Reed-Solomon code over GF(2^4 ) whose generator polynomial has roots αi, i = 1, 2 ,... , 6 where α^4 + α + 1 = 0 that we encountered on Problem 5 of Problem Set 8. As before, the syndrome polynomial of the received word is

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.

  1. R(z) = 1 + 4z + 3z^2 + 0z^3 +?z^4 +?z^5. It is most convenient to substitute zeroes in the erased positions and then compute the syndrome.

(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.

  1. Consider a (15, 7) 4-error-correcting Reed-Solomon code over GF(2^4 ) whose generator poly- nomial has α, α^2 ,... , α^8 as roots. Here, as usual, α^4 = α + 1. Now, suppose that the all-zeroes codeword is transmitted and that r(x) = e(x) is received where the error pattern is e(x) = α^3 x + α^3 x^2 + α^14 x^10 + α^5 x^12 + α^8 x^13 , i.e. five errors have occurred. The syn- drome sequence is [S 0 , S 1 ,... , S 7 ] = [α^10 , α^2 , α^8 , α^7 , 0 , α^3 , α^9 , α^7 ]. Suppose further that the Peterson-Gorenstein-Zierler decoder is being used.

(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?