A Decoding Approach to Reed-Solomon Codes from Their Definition
Maria Bras-Amor\'os

TL;DR
This paper presents a new, more intuitive decoding approach for Reed-Solomon codes, making error correction concepts more accessible for beginners by deriving the algorithm from fundamental definitions.
Contribution
A self-contained decoding method for Reed-Solomon codes based on polynomial interpolation degree, simplifying understanding for nonexperts.
Findings
Decoding algorithm derived from interpolation polynomial degree
Algorithm is more natural and easier to understand than classical methods
Related to Peterson-Gorenstein-Zierler algorithm
Abstract
Because of their importance in applications and their quite simple definition, Reed-Solomon codes can be explained in any introductory course on coding theory. However, decoding algorithms for Reed-Solomon codes are far from being simple and it is difficult to fit them in introductory courses for undergraduates. We introduce a new decoding approach, in a self-contained presentation, which we think may be appropriate for introducing error correction of Reed-Solomon codes to nonexperts. In particular, we interpret Reed-Solomon codes by means of the degree of the interpolation polynomial of the code words and from this derive a decoding algorithm. Compared to the classical algorithms, our algorithm appears to arise more naturally from definitions and to be easier to understand. It is related to the Peterson-Gorenstein-Zierler algorithm.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
A Decoding Approach to Reed–Solomon Codes
from Their Definition
Maria Bras-Amorós M. Bras-Amorós is with Universitat Rovira i Virgili, Tarragona, Catalonia (e-mail: [email protected])
Abstract
Because of their importance in applications and their quite simple definition, Reed–Solomon codes can be explained in any introductory course on coding theory. However, decoding algorithms for Reed–Solomon codes are far from being simple and it is difficult to fit them in introductory courses for undergraduates. We introduce a new decoding approach, in a self-contained presentation, which we think may be appropriate for introducing error correction of Reed–Solomon codes to nonexperts. In particular, we interpret Reed–Solomon codes by means of the degree of the interpolation polynomial of the code words and from this derive a decoding algorithm. Compared to the classical algorithms, our algorithm appears to arise more naturally from definitions and to be easier to understand. It is related to the Peterson–Gorenstein–Zierler algorithm (see [10] and [20]).
1 Introduction.
Error control codes are used to detect and correct errors that may occur in data transmission or storage through eventually defective channels or storage devices that can distort the sent or stored information. For example, the atmosphere introduces errors in the transmission of images from the Meteosat satellite to Earth, different interferences in communications by mobile phone may cause transmission errors, or reading devices need correcting algorithms for handling CDs, DVDs, or USB memories. Error control codes are also used in distributed data storage in the cloud to recover lost or damaged chunks of information. In the words of Elwyn R. Berlekamp, one of the fathers of coding theory,
Communication links transmit information from here to there. Computer memories transmit information from now to then. In either case, noise causes the received data to differ slightly from the original data. As Shannon [24] showed in 1948, the noise need not cause any degradation in reliability. The noise does impose some limiting capacity on the throughput rate, although that limit is typically well above the throughput rate at which real systems operate. Error-correcting codes enable a system to achieve a high degree of reliability despite the presence of noise [2].
The modus operandi of those codes is to send along with the original information a small amount of redundancy, so that from all the received information one can deduce what is actually transmitted. The simplest example is adding for every transmitted bit (a [math] or a ) two identical copies. If the original bit or one of its copies is received with an error, we can still correct it from the other two, which we expect to coincide. Note that by adding redundancy, on one side we improve the quality of the received information. But, on the other side, we augment the transmission cost. In the example of repeating bits, the transmission cost is multiplied by three.
Coding theory aims at designing and implementing codes with good correcting capacity, while maintaining a low transmission cost, as well as designing detection and correction algorithms that allow the receiver to recover the original information.
Berlekamp’s reference [2] gives a detailed historical review (up to 1980) of coding theory since Shannon’s cornerstone contribution [24]. At that time, the so-called Reed–Solomon codes [21] and the most relevant algorithms for decoding Reed–Solomon codes had already appeared. They are the most universal error control codes and are currently being used directly or indirectly in most transmission devices and storage systems. Reed–Solomon codes admit different definitions as will be explained in this article, and they are all based in polynomials of bounded degrees over a finite field. One way to explain how they work is as follows. Fix a finite field of cardinality . From the data one wants to transmit (say elements of ), one interpolates a polynomial of degree less than that takes these values when evaluated at given nonzero elements of the finite field. Then one adds to the original information values the redundancy which consists of the evaluation of the polynomial at the remaining nonzero values of the finite field. Basic polynomial theory shows how any small part of the whole -length of the received information can be restored from the rest.
Because of their importance in applications and their quite simple definition, Reed–Solomon codes can be explained in any introductory course. However, decoding algorithms for Reed–Solomon codes are far from being so simple and it is difficult to explain them in introductory courses for undergraduates. This is why we introduce our new decoding approach, in a self-contained presentation, which we think may be appropriate to introduce error correction of Reed–Solomon codes to nonexperts. Although a direct implementation of the algorithm presented in this article may not be as efficient as the most efficient known algorithms, we think that it is performable by any undergraduate student using basic software tools. However, we do not rule out the possibility that technical improvements to the algorithm may make it much more efficient, especially if one can deemphasize matrices in favor of polynomials.
The most celebrated algorithms for decoding Reed–Solomon codes have been the Peterson–Gorenstein–Zierler algorithm [20, 10] for its simplicity, and the algorithms designed to solve Berlekamp’s key equation [1]. The two primary decoding algorithms that solve Berlekamp’s key equation are the Berlekamp-Massey algorithm [15] and the Sugiyama et al. adaptation of the Euclidean algorithm [26]. The alternative so-called Welch–Berlekamp equations are solved in the Welch–Berlekamp algorithm [27]. Bit-serialized multiplication and bit-serial encoders are more efficient for hardware implementation of shift registers [3]. This is used in the algorithm in [4]. The Welch–Berlekamp equations were also solved by Chambers’ algorithm [7] and by Fedorenko’s algorithm [9]. Another general perspective is that of decoding pairs [18, 19]. Guruswami and Sudan presented their breakout algorithm [25, 11] decoding beyond half the minimum distance by means of list decoding. All these algorithms and their relationships are analyzed in several papers such as [8, 12, 16, 6, 17].
In Section 3 we revisit the definition of Reed–Solomon codes, giving four different, but equivalent, versions. Reinterpreting a definition related to the degree of the interpolation polynomial, we derive a decoding algorithm. The key result for the new formulation is Theorem 20 in Section 4. Now, for correcting a received word, its interpolation polynomial is split into two parts, one with low order terms (lower than the code dimension) and the other one with the remaining terms. The latter part is fixed while the first part is modified in order to maximize the number of nonzero roots. This gives the code word at minimum distance from the received word.
Our decoding algorithm is related to the Peterson–Gorenstein–Zierler algorithm. We compare both algorithms in Sections 6 and 7 and see how our algorithm is well suited for the optimistic view of best case decoding [4]. This is the case when error correction codes of high correction capability are used, but with a low expectation of errors.
2 Some background on coding theory.
Let us start with some background definitions and results on coding theory. Standard references are [14, 22, 13, 5, 23].
The alphabet .
The symbols that contain the information that needs to be sent as well as the symbols corresponding to the transformed and transmitted data are the elements of a finite field, which is often called the transmission alphabet. One can consider the case in which is a prime field, that is, is a prime number and can be identified by the set , equipped with the usual addition and product modulo . There will always exist an element in such that all the powers of with exponent smaller than are different. Then, . In this case, is called a primitive element.
Example 1**.**
Consider . It is the set equipped with the addition and multiplication operations, always modulo . For instance, in , , , . It is easy to verify that is a primitive element of .
Linear codes.
A linear code of length over a finite field is a vector subspace of . Its vectors are called code words. The dimension of the code is the dimension of the subspace. In particular, the number of code words of is .
Generator matrices.
We say that a matrix of rows and columns is a generator matrix of if its rows are a set of vectors generating the code. The generator matrix is not unique, for example we can permute the rows. To encode a word of symbols of , we multiply it by the generator matrix.
Example 2**.**
The following matrix is the generator matrix of a code of length and dimension over .
[TABLE]
To encode the information we split it into blocks of symbols and multiply each block by .
[TABLE]
[TABLE]
[TABLE]
The encoded information will then be .
Dual code and parity-check matrices.
Consider the scalar product of two vectors and of , defined as . The dual code of is . It is a linear code with the same length as and dimension . We can define it from a system of linear equations with coefficient matrix . A matrix generating is called a parity-check-matrix of . Equivalently, a parity-check matrix of is a matrix such that the code can be redefined as .
Example 3**.**
The following matrix is a parity-check matrix of the code of Example 2.
[TABLE]
Hamming distance, correction capability, and Singleton bound.
The Hamming distance between two words of the same length is the number of positions in which their symbols differ. The purpose of decoding algorithms is, given an input vector of the same length as the code, output a code word minimizing the Hamming distance between and . The weight of a word is the number of nonzero symbols or, equivalently, its Hamming distance from the zero vector. The minimum distance of a linear code can be equivalently defined as (i) the minimum Hamming distance between two words of ; (ii) the minimum weight of nonzero words of ; (iii) the minimum number of linearly dependent columns of . The minimum distance of a code is an important parameter quantifying the error correction capability of the code. Indeed, if at most errors are added to a code word , corrupting it into a word , then is the unique code word of at Hamming distance at most from , and in this sense we say that errors can be corrected.
The Singleton bound states that for a linear code of length and minimum distance , the dimension satisfies The codes attaining this bound are called maximum distance separable codes (MDS).
Example 4**.**
The Hamming distance between the code words and of the code in Example 2 is . The Hamming distance between the code word corresponding to the first row of and is .
Notice that the elements of the first row of the generator matrix of are all equal while the elements of the second row are all different. Any code word of will be a multiple of the second row plus a multiple of the first row. The components of any multiple of the second row, except for the zero vector, will all be different by field properties. Similarly, if we add to a vector whose components are all different a constant vector, then the components of the vector so obtained will also all be different by field properties. So, for any vector in , either it is constant or all its components are different. This makes the Hamming distance between any two words in either equal to or to . Consequently, the minimum distance of is .
Vandermonde matrices.
Although Vandermonde matrices can be defined over any field, for our purposes we concentrate on finite fields. Given , the Vandermonde matrix of of order is defined as
[TABLE]
It can be proved that the determinant of satisfies Consequently, has an inverse matrix if and only if for all .
3 Four definitions of Reed–Solomon codes.
Let us introduce Reed–Solomon codes from four different, but complementary, points of view.
3.1 Reed–Solomon codes from generator matrices.
Let be the field with elements ( a prime power) and let be a primitive element of . Then . Let .
Definition 5**.**
The Reed–Solomon code over and of dimension , , is the linear code of with generator matrix
[TABLE]
Example 6**.**
Consider the finite field . As noted above, the element is primitive. Indeed, , , , , , and is again . The code is exactly the code of Example 2.
3.2 Reed–Solomon codes from parity-check matrices.
Consider the matrix
[TABLE]
It is a matrix of maximum rank (namely ) because of the Vandermonde structure. Furthermore, the product of matrix and the transpose of matrix is the zero matrix. Indeed, the product of the th row of matrix () times the th row of matrix () is Now, because of the limits of and , we have that and so . Finally, the sum equals .
This enables us to give the following equivalent definition.
Definition 7**.**
The Reed–Solomon code over and of dimension , , is the linear code of with parity-check matrix equal to .
Example 8**.**
One can check that matrix in Example 3 is of the form of the matrix in (1).
Lemma 9 uses Definition 7 to deduce that Reed–Solomon codes attain the Singleton bound, and so they are maximum distance separable (MDS) codes.
Lemma 9**.**
The minimum distance of is exactly . Hence, it is an MDS code.
Proof.
The submatrix given by any subset of columns (with column indices ) has determinant
[TABLE]
which is not zero. So, any set of columns of the parity-check matrix are independent, and so the minimum distance must be at least . By the Singleton bound the minimum distance must be exactly equal to . ∎
Example 10**.**
The minimum distance of is as justified in Example 4. This equals .
3.3 Reed–Solomon codes and interpolation polynomials.
Consider the set of all polynomials with coefficients in and of degree strictly less than . A general element is of the form with . Observe that evaluating at gives which is exactly the result of the product of the vector by the th column of matrix . So, the product of the vector by matrix is exactly the vector
Definition 11**.**
The Reed–Solomon code over and of dimension , , is the set
Example 12**.**
The three code words computed in Example 2, which are , , and are, respectively, the evaluation of the polynomials , , and at . The degree of the three polynomials is less than which is the dimension of the code.
Now, for each vector in , there exists a unique polynomial of degree at most such that for all in . It can be computed using the formula , where is the interpolation polynomial of the th standard basis vector, that is, The uniqueness of is a consequence of the fact that if , then the coefficients are a solution of the linear system of equations
[TABLE]
The matrix of this system is a square Vandermonde matrix which is known to be invertible. So, any in is of the form for some unique of degree less than .
Example 13**.**
In , taking as primitive element, we have
[TABLE]
Then, for a general vector , the coefficients of (in increasing order) can be computed as the product of by the matrix
[TABLE]
For instance, the coefficients of the polynomial interpolating are , and the coefficients of the polynomial interpolating are .
Code word checking.
From Definition 11, a vector in is a code word if and only if its interpolation polynomial satisfies .
Example 14**.**
The words , , and are code words of because, as seen in Example 12, their interpolation polynomials are, respectively, , , and , whose degrees are less than . The words and are not code words of because, as seen in Example 13, their interpolation polynomials are, respectively, and , whose degrees are larger than .
3.4 Reed–Solomon codes and polynomial evaluation.
Consider now the set of all polynomials with coefficients in and degree strictly less than . A general element is of the form with . Observe that evaluating at gives which, if , is exactly the result of the product of the th row of matrix and vector . The value , if , is called the th syndrome of with respect to . Now, the product of matrix and vector is exactly the vector which is called the syndrome vector of with respect to . On the other hand, by definition of parity-check matrix, is a code word if and only if the product of matrix and is zero.
Definition 15**.**
The Reed–Solomon code over and of dimension , , is the set of vectors in such that the polynomial vanishes at for all with .
Code word checking.
Now, given a vector in , is a code word if and only if for all with .
Example 16**.**
Suppose we want to check whether the word belongs to . We consider the polynomial and evaluate it at , , and . We obtain
[TABLE]
Since , the word belongs to .
3.5 Connection of the coefficients of an interpolation polynomial and its evaluation at all points.
Next we will see that the coefficients of an interpolation polynomial over a finite field are intimately related to the values obtained when evaluating the polynomial at all the nonzero elements of the finite field.
Lemma 17**.**
Suppose that is a primitive element of a finite field of elements and let . The polynomials satisfy
Proof.
Suppose . From the equality it follows that This, together with the fact , implies that vanishes at all the elements of except at , where it evaluates to . Hence, vanishes at all the elements of except at , where it evaluates to . Finally, .
If we take then and the expression have degree and take the same values at points, hence are equal. ∎
The main result relating the last two definitions of Reed–Solomon codes is the following lemma.
Lemma 18**.**
The inverse of the map
[TABLE]
is
[TABLE]
where is the evaluation of at and is the evaluation of at .
Proof.
The inverse map is giving the coefficients of the interpolation polynomial . By Lemma 17 we have that , where Now,
[TABLE]
So, . ∎
Example 19**.**
Consider the word and the related polynomial . Its evaluation at the powers of is
[TABLE]
What Lemma 18 says is that the polynomial satisfies that Indeed,
[TABLE]
and it follows that .
4 New decoding approach.
We approach decoding from the point of view of Definition 11. However, we use Definition 15 for the proofs.
Let be the set of polynomials with coefficients in and degree strictly less than , and let be the set of polynomials with coefficients in and with only terms of degrees at least and at most .
Suppose we receive . Let be the interpolation polynomial of . Decoding is the same as finding such that and are at minimum Hamming distance. Since words are the evaluation of polynomials of degrees smaller than at the nonzero elements of , decoding is equivalent to finding such that has maximum number of nonzero roots. In fact, is then the interpolation polynomial of .
The monomials of can be split into those that have degree less than and those having degree at least . Let be the unique polynomials with , such that . Once is fixed, and so is , consider, from all the polynomials in , a polynomial that maximizes the number of nonzero roots of . That is, the number of nonzero roots of is larger than or equal to the number of nonzero roots of for any . Then,
[TABLE]
Notice that if is the minimum weight word such that , then and its interpolation polynomial is .
Consider the set
[TABLE]
Because of the fact that , an equivalent definition is
[TABLE]
Notice that is not empty because belongs to .
Theorem 20**.**
Let be a monic polynomial with minimum degree among the polynomials in . For a polynomial , if divides , then the number of nonzero roots of is greater than or equal to the number of nonzero roots of for any .
Proof.
For a fixed , the set of polynomials
[TABLE]
is, since , the set of polynomials that are multiples of
[TABLE]
The monic polynomial with minimum degree among is then the polynomial (7) itself. Now, . So a monic polynomial with minimum degree among must be one of the polynomials as in (7) for some . The minimality of the degree of implies the maximality of the number of nonzero roots of , where is such that . ∎
Let be as in Theorem 20 and suppose is such that for some . Suppose that and . In particular, and . Now, .
Let the coefficients of be . If and then, letting for all and for all , we have for all ,
[TABLE]
which, by Lemma 18, is equivalent to
[TABLE]
Since , the coefficients of satisfy , , …, and
Lemma 21**.**
Let be as in Theorem 20. The nonleading coefficients of give a solution to the linear system
[TABLE]
Proof.
The lemma is a consequence of equation (8) and the fact that since . ∎
Lemma 22**.**
Let be the weight of a minimum weight vector such that and consider the linear system
[TABLE]
If and , then the linear system has a unique solution, which can be found as a solution to the square system
[TABLE] 2. 2.
If and , then the unique solution to the previous system satisfies . 3. 3.
If and , then the system has no solution.
Proof.
The existence of a solution is a consequence of Lemma 21. For the uniqueness, we will see that the square submatrix
[TABLE]
has nonzero determinant. As a consequence of Definition 15 of and the fact that ,
[TABLE]
Suppose that the nonzero positions of are , with . Then it is easy to check that, letting
[TABLE]
we have
[TABLE]
which clearly has nonzero determinant because is a Vandermonde matrix. 2. 2.
Suppose that
[TABLE]
Then, rearranging the columns, and considering Definition 15 of together with the fact that , we obtain
[TABLE]
but
[TABLE]
which, again, has nonzero determinant. This contradicts (10). 3. 3.
Suppose and . If
[TABLE]
then, supressing the first rows we obtain
[TABLE]
and adding columns at the beginning,
[TABLE]
This contradicts the two previous points. ∎
We obtain the following decoding algorithm for a code, where .
Input: .
Let be the minimum integer such that
[TABLE]
For , the first matrix is the null matrix. In this case we consider . 2. 2.
Solve the linear system
[TABLE]
for and denote by the polynomial . 3. 3.
Obtain as in Lemma 18 the interpolation polynomial of , and let be its degree. 4. 4.
Let be the coefficients of ; that is,
Let . 5. 5.
Output: .
Theorem 23**.**
Suppose we received . Let be the weight of a minimum weight vector such that . If , then the previous algorithm outputs .
Proof.
By Lemma 22, step 1 gives the actual number of errors . By Lemma 22 again, the system in step 2 has a unique solution and, by Lemma 21, the polyomial one obtains is exactly the polynomial in Theorem 20. After step 3 we get the interpolation polynomial . Let be the unique polynomials with , such that . By Theorem 20, divides for some maximizing the number of nonzero roots of . In particular, there exists such that
[TABLE]
and must have degree less than . Hence, the degrees of the monomials in and those in do not overlap. On the other hand, the monomials of have degree less than . So, the monomials in of degrees at least coincide with the monomials in of degrees at least . That is, , and we deduce that . Now, from (12), we deduce that . Now, as explained in equation (6), the polynomial interpolating the code word at minimum distance of is . From here it follows that the output is, indeed, the code word at minimum distance of . ∎
Remark**.**
Steps 3 and 4 of the algorithm can be replaced by the equivalent steps in the Peterson–Gorenstein–Zierler algorithm, that is, we can find the error positions by means of the roots of and then obtain the error values by means of the linear system
[TABLE]
Example 24**.**
Consider the same code as in Example 2, that is, the code . Suppose that after transmission of three code words we receive , , .
Denote by the same symbol the vector and the polynomial . The syndromes of are
[TABLE]
Since the syndromes are nonzero we deduce that there is at least one error. We have \mbox{rank}\left(\begin{array}[]{c}\\ \\ \\ \end{array}\right)\neq\mbox{rank}\left(\begin{array}[]{c}3\\ 1\\ 5\\ 4\end{array}\right), but \mbox{rank}\left(\begin{array}[]{c}3\\ 1\\ 5\end{array}\right)=\mbox{rank}\left(\begin{array}[]{cc}3&1\\ 1&5\\ 5&4\end{array}\right). So and there is only one error. We solve the system , whose solution is . We deduce that the error locator polynomial is . We compute as in Example 13, obtaining . Now, since , we deduce that and , so that the corrected word is . We could also have found the single root of , which is , and then deduce that there is an error at the second position (first position, if we start counting by [math]). Then, to find the error value we could have solved the system , whose solution is . The corrected word is then .
Denote by the same symbol the vector and the polynomial . The syndromes of are
[TABLE]
Since the syndromes are all zero we deduce that there is no error.
Denote by the same symbol the vector and the polynomial . The syndromes of are
[TABLE]
Since the syndromes are nonzero we deduce that there is at least one error. We have \mbox{rank}\left(\begin{array}[]{c}\\ \\ \\ \end{array}\right)\neq\mbox{rank}\left(\begin{array}[]{c}0\\ 1\\ 5\\ 5\end{array}\right), \mbox{rank}\left(\begin{array}[]{c}0\\ 1\\ 5\end{array}\right)\neq\mbox{rank}\left(\begin{array}[]{cc}0&1\\ 1&5\\ 5&5\end{array}\right), while \mbox{rank}\left(\begin{array}[]{cc}0&1\\ 1&5\end{array}\right)=\mbox{rank}\left(\begin{array}[]{ccc}0&1&5\\ 1&5&5\end{array}\right)=2. So, . We solve the system
[TABLE]
whose solution is , . We deduce that the error locator polynomial is We compute as in Example 13, obtaining . Now, since , we deduce that and , so that the corrected word is . We could also have found the roots of , which are and and then deduce that the error positions are the fifth and sixth positions (fourth and fifth positions, if we start counting by [math]). Then, to find the error value we could have solved the system
[TABLE]
whose solution is , . The corrected word is then .
5 A glimpse of the Peterson–Gorenstein–Zierler algorithm.
Peterson [20] and Gorenstein and Zierler [10] proposed a decoding algorithm which is very similar to the one we just presented. It is based on the following lemma.
For all with , define
[TABLE]
Lemma 25**.**
If , then , while That is, the number of errors (if it is at most ) is the maximum integer such that .
Proof.
Since ,
[TABLE]
As before, let us denote the error positions as and let be any subset containing all the error positions. Let be the diagonal matrix
[TABLE]
Clearly, if and if . Let
[TABLE]
Since is a Vandermonde matrix and the indices in are all different, . We have
[TABLE]
Now it is straightforward to check that this product of matrices has zero determinant if and only if contains no error positions, that is, if for some . ∎
The Peterson–Gorenstein–Zierler algorithm is as follows.
Input: .
Let be the maximum integer smaller than or equal to such that
[TABLE] 2. 2.
Solve the linear system
[TABLE]
for and denote by the polynomial . 3. 3.
Find the error positions by means of the roots of . 4. 4.
Find the error values by means of the linear system
[TABLE] 5. 5.
Output: .
6 Comparison of our algorithm with the Peterson–Gorenstein–Zierler algorithm.
The main differences between our proposed algorithm and the Peterson–Gorenstein–Zierler algorithm are
- •
Computation of the number of errors (step 1 in both algorithms);
- •
Computation of the error values (steps 3–4 in both algorithms).
Error location (step 2) is done exactly in the same way.
As for the computation of the error values, step 4 in our algorithm needs two polynomial multiplications and one division (all of them of order ), while steps 3 and 4 in the Peterson–Gornestein–Zierler algorithm involve two linear square systems of equations. This already makes our algorithm simpler than the Peterson–Gorenstein–Zierler algorithm.
But the main difference is in the computation of the number of errors. In the Peterson–Gorenstein–Zierler algorithm we start computing the determinant of a (large) matrix and continue computing determinants of decreasing order, while in our algorithm we start computing the rank of a (small) matrix and continue computing ranks of matrices with an increasing value of . In the Peterson–Gorenstein–Zierler algorithm, the smaller the number of errors, the more determinant computations will be needed. In our algorithm, the smaller the number of errors, the fewer rank computations will be needed. Furthermore, in the Peterson–Gorenstein–Zierler algorithm we start with the most complex determinants and then they get simpler, while in our algorithm we start with the simpler rank computations and, as the number of errors increases we get more complex rank computations.
7 The optimistic view of best case decoding.
There are many scenarios where a high reliability is required but errors rarely occur. In this case, error correcting codes with a high error correction capability are required although the expected number of errors is low. In terms of error correction, the decoding approach that takes this perspective into consideration is called best case decoding. See [4] for a deep analysis. In Berlekamp’s clarifying words,
…a best case decoder is philosophically analogous to a small child who continually asks, “Are we almost there now?” This question may occur at many places in a long decoding program. But, in a high-reliability application, the odds are quite favorable that any time the question is asked, the answer is likely to be “YES”.
Our algorithm is very well suited for best case decoding because, in contrast to the Peterson–Gorenstein–Zierler algorithm, it is fast when the number of errors is small and it is only a bit slower when the number of errors approaches the correction capability.
Acknowledgments.
The author would like to thank the anonymous referees for deeply reading the manuscript and for making very useful comments. She would specially like to thank the editor Susan Jane Colley for her careful reading.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] E. R. Berlekamp, Algebraic Coding Theory . Mc Graw-Hill Book Co., New York, 1968.
- 2[2] , The technology of error-correcting codes, Proceedings of the IEEE 68 (1980) 564–593.
- 3[3] , Bit-serial Reed-Solomon encoders, IEEE Trans. Information Theory IT 28 (1982) 869–874.
- 4[4] , Bounded distance+1 soft-decision reed-solomon decoding, IEEE Trans. Information Theory IT 42 (1996) 704–720.
- 5[5] J. Bierbrauer, Introduction to Coding Theory . Chapman & Hall/CRC, Boca Raton, FL, 2005.
- 6[6] M. Bossert, S. Bezzateev, A unified view on known algebraic decoding algorithms and new decoding concepts, IEEE Trans. Inform. Theory 59 (2013) 7320–7336.
- 7[7] W. G. Chambers, Solution of Welch-Berlekamp key equation by Euclidean algorithm, Electronics Letters 29 (1993).
- 8[8] J.-L. Dornstetter, On the equivalence between Berlekamp’s and Euclid’s algorithms, IEEE Trans. Inform. Theory 33 (1987) 428–431.
