Decoding algorithms

2

Click here to load reader

Transcript of Decoding algorithms

Page 1: 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

Page 2: Decoding algorithms

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