1. -error-correcting RS code

RS codes are non binary codes with code symbols from a Galois field of elements . From coding theory, if is a prime number and is any power of , there are codes with code symbols from a -symbol alphabet. These codes are called -ary BCH codes.

The filed is formed by a primitive polynomial of degree with as the primitive element of the field. is called the root of unity in since for . With , the code symbols of an RS code are , which are the distinct elements of . Note that .

Let , , , and be any positive integers, and be an element of . There exists a -ary BCH code of length symbols that corrects any combination of or fewer errors and requires no more than parity-check symbols. Let be a polynomial of lowest degree over and select . The code generated by is a cyclic BCH code and has

as roots. The special q-ary BCH code, for which and , is called the RS code. The roots of the RS code are

Since the minimum polynomial with root of is simply , the generator polynomial of a -error-correcting RS code of length is

2. Encoding

: quotient of

: remainder of

The codewords consist of all multiples of . The degree of is and its roots are . Since every codeword is some multiples of , are also roots of every codeword.

3. Decoding

The decoding procedure involves finding not only the error locations, but the error values as well.

Let be the transmitted codeword, be the channel noise error pattern, and be the received codeword:

The error pattern can be described by a list of values and locations of its nonzero components. Error location will be given in terms of an error-location number, which is simply for the symbol. Let be the error location number and be the error value. Then for each nonzero component of , a pair of field elements is required to describe the error. If has errors, then pairs of are required. Any decoding procedure is a procedure for locating these pairs of if .

Assume that is an error pattern of errors at locations . Then

where and

The first step in decoding is to check whether is a codeword by calculating the syndrome. If the syndrome is zero, then either actually has no errors or has an undetectable error. In either case, is accepted as no error. A nonzero syndrome indicates that an error has been detected; the error may or may not be correctable. For the RS codes, the syndrome is defined as a vector with components:

Also,

I.e.,

Expanding equation gives the results

Those nonlinear equations (power-sum symmetric functions) relate the unknown quantities of to unknowns consisting of unknown locations and unknown error values. Any error correction procedure is a method of solving this set of equations for the pairs of . Once are found, the powers will indicate the error locations in . In general, there might be many error patterns that satisfy the equations. If , then the error pattern with the smallest is the actual error pattern.

For notational convenience, let

Next, let the error location polynomial be defined as follows:

where

The roots of are , which are the inverses of the error location numbers. It can be seen that the coefficients of are related to the syndrome components . The coefficients are known as elementary symmetric functions of . Therefore, if it is psbl to find from the syndrome components, the error location numbers can be found and the error pattern can be determined.

Decoding procedure consists of four major steps:

S1: calculate the syndrome from

S2: calculate the error location polynomial from

S3: determine the error locations by finding the roots of

S4: calculate the error value from and

There are two methods for calculating the syndrome (): the standard method, and the shift register method. The standard method uses equation because this is the way the syndrome is defined. The shift register method uses the encoding shift register.

For larger , the best way to calculate the syndrome is to use the shift register. This will result in some saving in logic because this shift register is already used for encoding. However, the calculated by is not the same as the calculated by of Equation , but they are related.

From Equation , let be the syndrome calculated by with . Let

be the remainder calculated by dividing by . The remainder is another form of the syndrome but . Using the Euclidean division algorithm, the result of is

where is the quotient and

is the remainder. Substituting by gives the result

The relationship between and is

References

[1]. [A decoding procedure for the Reed-Solomon codes][http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19780022919.pdf]