Decoding algorithms
Click here to load reader
-
Upload
andrey-goder -
Category
Documents
-
view
23 -
download
0
Transcript of Decoding algorithms
MATH 567: Coding Theory 20 April 2009University of Michigan Andrey Goder
Decoding Reed-Solomon Codes
1 Introduction
First, recall the definition of Reed-Solomon codes.
Definition 1. Let p be a prime, and q = pr. Let α be a generator of Fq\{0}. Then
S(k) ={(f (1) , f (α) , f
(α2), ..., f
(αq−2
)): f(x) ∈ Fp[x], deg f < k
}is a Reed-Solomon code.
This gives a [q − 1, k, q − k] code.
2 Encoding
Let S(k) be a Reed-Solomon code. How can we use S(k) to encode a message? There are qk
polynomials of deg < k, so for each of qk different messages, we can send the correspondingcodeword.
Example 1. One common choice is q = 28 = 256 and k = 223. This gives a [255, 223, 33] code.Each symbol of F256 can be conveniently represented by a byte. So to send the 223-byte message,we simply read each byte as the coefficient of a degree 222 polynomial, and then evaluate thatpolynomial at the 255 points of F255\{0}. As we will see, this code can correct up to 16 errors.
3 Decoding
Let’s say we receive a message encoded by a Reed-Solomon code S(k). How many errors can wecorrect? In general, there is an upper bound for all codes.
Proposition 3.1. Let C be a code with a minimum distance of d. Then it is impossible to (uniquely)correct more than e = d−1
2 errors.
Proof. Let x, y be codewords with d(x, y) = d. Assume, without loss of generality, that they differin the first d positions. Let z be the codeword x, but with the first bec positions changed to matchy. Then if we have at least de+1e errors and we receive z, either x or y could have been the originalcodeword. So unique decoding is impossible.
Our goal is therefore to find an efficient way of decoding given that there are at most e errors.For Reed-Solomon codes the Welch-Berlekamp algorithm achieves this.
When we receive a message encoded by S(k), we assume that we have α ∈ Fq\{0} available, aswell as the received string (a0, a1, ..., aq−2).
1
Definition 2. Let S(k) be a Reed-Solomon code and (a0, a1, ..., aq−2) a received message. Letf(x) ∈ Fq[x] with deg f < k. Then define the error set as
E(f) ={i : f
(αi)6= ai
}.
Our goal is to find some f such that |E(f)| ≤ e. To that end, we introduce the error polynomial.
Definition 3. The error polynomial for a message (a0, a1, ..., aq−2) is defined by
Ef (x) =∏
i∈E(f)
(x− αi
).
Set Nf (x) = Ef (x)f(x).
Proposition 3.2.∀i,Nf (αi) = Ef (αi)ai.
Proof. We have Nf (αi) = Ef (αi)f(αi), so if f(αi) = ai then we are done. Otherwise, Ef (αi) = 0,so both sides are 0.
2