The Berlekamp–Welch algorithm, also known as the Welch–Berlekamp algorithm, is named for
Elwyn R. Berlekamp
Elwyn Ralph Berlekamp (September 6, 1940 – April 9, 2019) was a professor of mathematics and computer science at the University of California, Berkeley.Contributors, ''IEEE Transactions on Information Theory'' 42, #3 (May 1996), p. 1048. DO10. ...
and
Lloyd R. Welch
Lloyd Richard Welch (born September 28, 1927) is an American information theorist and applied mathematician, and co-inventor of the Baum–Welch algorithm and the Berlekamp–Welch algorithm, also known as the Welch–Berlekamp algorithm.
Welch ...
. This is a decoder algorithm that efficiently corrects errors in
Reed–Solomon codes for an RS(''n'', ''k''), code based on the Reed Solomon original view where a message
is used as coefficients of a polynomial
or used with
Lagrange interpolation
In numerical analysis, the Lagrange interpolating polynomial is the unique polynomial of lowest degree that interpolates a given set of data.
Given a data set of coordinate pairs (x_j, y_j) with 0 \leq j \leq k, the x_j are called ''nodes'' an ...
to generate the polynomial
of degree < ''k'' for inputs
and then
is applied to
to create an encoded codeword
.
The goal of the decoder is to recover the original encoding polynomial
, using the known inputs
and received codeword
with possible errors. It also computes an error polynomial
where
corresponding to errors in the received codeword.
The key equations
Defining ''e'' = number of errors, the key set of ''n'' equations is
:
Where E(''a
i'') = 0 for the ''e'' cases when b
i ≠ F(a
i), and E(a
i) ≠ 0 for the ''n'' - ''e'' non error cases where ''b
i'' = F(''a
i'') . These equations can't be solved directly, but by defining Q() as the product of E() and F():
:
and adding the constraint that the most significant coefficient of E(a
i) = ''e
e'' = 1, the result will lead to a set of equations that can be solved with linear algebra.
:
:
:
where ''q'' = ''n'' - ''e'' - 1. Since ''e
e'' is constrained to be 1, the equations become:
:
resulting in a set of equations which can be solved using linear algebra, with time complexity O(n^3).
The algorithm begins assuming the maximum number of errors ''e'' = ⌊ (''n''-''k'')/2 ⌋. If the equations can not be solved (due to redundancy), ''e'' is reduced by 1 and the process repeated, until the equations can be solved or ''e'' is reduced to 0, indicating no errors. If Q()/E() has remainder = 0, then F() = Q()/E() and the code word values F(''a
i'') are calculated for the locations where E(''a
i'') = 0 to recover the original code word. If the remainder ≠ 0, then an uncorrectable error has been detected.
Example
Consider RS(7,3) (''n'' = 7, ''k'' = 3) defined in with ''α'' = 3 and input values: ''a
i'' = i-1 : . The message to be systematically encoded is . Using Lagrange interpolation, ''F(a
i)'' = 3 x
2 + 2 x + 1, and applying ''F(a
i)'' for ''a
4'' = 3 to ''a
7'' = 6, results in the code word . Assume errors occur at ''c
2'' and ''c
5'' resulting in the received code word . Start off with ''e'' = 2 and solve the linear equations:
:
:
:
Starting from the bottom of the right matrix, and the constraint ''e
2'' = 1:
with remainder = 0.
E(''a
i'') = 0 at ''a
2'' = 1 and ''a
5'' = 4
Calculate F(''a
2'' = 1) = 6 and F(''a
5'' = 4) = 1 to produce corrected code word .
See also
*
Reed–Solomon error correction
Reed–Solomon codes are a group of error-correcting codes that were introduced by Irving S. Reed and Gustave Solomon in 1960.
They have many applications, the most prominent of which include consumer technologies such as MiniDiscs, CDs, DVDs, Bl ...
External links
MIT Lecture Notes on Essential Coding Theory – Dr. Madhu Sudan* Algebraic Codes on Lines, Planes and Curves, An Engineering Approach – Richard E. Blahut
* Welch Berlekamp Decoding of Reed–Solomon Codes – L. R. Welch
* – The patent by Lloyd R. Welch and Elewyn R. Berlekamp
{{DEFAULTSORT:Berlekamp-Welch algorithm
Finite fields
Coding theory
Information theory
Error detection and correction