Location of Repository

## Error Correcting Codes: Combinatorics, Algorithms and Applications (Fall 2007) Lecture 27: Berlekamp-Welch Algorithm

### Abstract

In the last lecture, we discussed unique decoding of RS codes and briefly went through the Berlekamp-Welch algorithm. In today’s lecture we will study Berlekamp-Welch algorithm in more detail. Recall that the [n, k, n−k+1]q Reed-Solomon code regards a message as a polynomial P (X) of a degree at most k−1, and the encoding of a message m = (m0,..., mk−1) is (P (α1),..., P (αn)). Here, mi ∈ Fq, k ≤ n ≤ q, and P (X) = ∑ k−1 i=0 miX i. Now let us look at the decoding problem of Reed-Solomon codes. Suppose we are given distinct values α1,..., αn where αi ∈ Fq with received word y = (y1,..., yn) ∈ F n q and parameters k and e &lt; n−k+1 2, where e is an upper bound on the number of errors which occurred during transmission. Our goal is to find a polynomial P (X) ∈ Fq[X] of degree at most k − 1, such that P (αi) ̸ = yi for at most e values of i ∈ [n] (assuming such a P (X) exists). Although this problem is quite non-trivial one, a polynomial time solution can be found for this problem. This solution dates back to 1960 when Peterson [2] came up with a decoding algorithm for the more general BCH code that runs in time O(n 3). Later Berlekamp and Massey sped up this algorithm so that it runs in O(n 2). There is an implementation using Fast Fourier Transform that runs in time O(n log n). We will not discuss these faster algorithms, but will study another algorithm due to Berlekamp and Welch. More precisely, we will use the Gemmell-Sudan description of the Berlekamp-Welch algorithm[1]. 1 Berlekamp-Welch Algorithm We start by describing the Berlekamp-Welch algorithm. Input: n ≥ k ≥ 1, 0 &lt; e &lt; n−k+1 2 and n pairs {(αi, yi)} n i=1 with αi distinct. Let y = (y1,..., yn). Output: Polynomial P (X) of degree at most k − 1 or fail. Step 1: Compute a non-zero polynomial E(X) of degree exactly e, and a polynomial Q(X) of degree at most e + k − 1 such that If such polynomials do not exist output fail. yiE(αi) = Q(αi) 1 ≤ i ≤ n. (1

Year: 2007
OAI identifier: oai:CiteSeerX.psu:10.1.1.186.9130
Provided by: CiteSeerX