In
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
, folded Reed–Solomon codes are like
Reed–Solomon codes, which are obtained by mapping
Reed–Solomon codewords over a larger alphabet by careful bundling of codeword symbols.
Folded Reed–Solomon codes are also a special case of
Parvaresh–Vardy codes.
Using optimal parameters one can decode with a
rate of ''R'', and achieve a decoding radius of 1 − ''R''.
The term "folded Reed–Solomon codes" was coined in a paper by V.Y. Krachkovsky with an algorithm that presented Reed–Solomon codes with many random "phased burst" error
The list-decoding algorithm for folded RS codes corrects beyond the
bound for Reed–Solomon codes achieved by the
Guruswami–
Sudan algorithm for such phased burst errors.
History
One of the ongoing challenges in Coding Theory is to have error correcting codes achieve an optimal trade-off between (Coding) Rate and Error-Correction Radius. Though this may not be possible to achieve practically (due to Noisy Channel Coding Theory issues), quasi optimal tradeoffs can be achieved theoretically.
Prior to Folded Reed–Solomon codes being devised, the best Error-Correction Radius achieved was
, by
Reed–Solomon codes for all rates
.
An improvement upon this
bound was achieved by Parvaresh and Vardy for rates
For
the Parvaresh–Vardy algorithm can decode a fraction
of errors.
Folded Reed–Solomon Codes improve on these previous constructions, and can be list decoded in polynomial time for a fraction
of errors for any constant
.
Definition
:
Consider a Reed–Solomon
code of length
and
dimension
In physics and mathematics, the dimension of a mathematical space (or object) is informally defined as the minimum number of coordinates needed to specify any point within it. Thus, a line has a dimension of one (1D) because only one coor ...
and a folding parameter
. Assume that
divides
.
Mapping for Reed–Solomon codes like this:
:
where
is a
primitive element in
:
.
The
folded version of Reed Solomon code
, denoted
is a code of block length
over
.
are just
Reed Solomon codes with
consecutive symbols from RS codewords grouped together.
Graphic description
The above definition is made more clear by means of the diagram with
, where
is the folding parameter.
The message is denoted by
, which when encoded using Reed–Solomon encoding, consists of values of
at
, where
.
Then bundling is performed in groups of 3 elements, to give a codeword of length
over the alphabet
.
Something to be observed here is that the folding operation demonstrated does not change the rate
of the original Reed–Solomon code.
To prove this, consider a linear
code, of length
,
dimension
In physics and mathematics, the dimension of a mathematical space (or object) is informally defined as the minimum number of coordinates needed to specify any point within it. Thus, a line has a dimension of one (1D) because only one coor ...
and
distance
Distance is a numerical or occasionally qualitative measurement of how far apart objects or points are. In physics or everyday usage, distance may refer to a physical length or an estimation based on other criteria (e.g. "two counties over"). ...
. The
folding operation will make it a
code. By this, the
rate will be the same.
Folded Reed–Solomon codes and the singleton bound
According to the asymptotic version of the
singleton bound
In coding theory, the Singleton bound, named after Richard Collom Singleton, is a relatively crude upper bound on the size of an arbitrary block code C with block length n, size M and minimum distance d. It is also known as the Joshibound. proved ...
, it is known that the
relative distance , of a code must satisfy
where
is the rate of the code. As proved earlier, since the rate
is maintained, the relative distance
also meets the Singleton bound.
Why folding might help?

Folded Reed–Solomon codes are basically the same as Reed Solomon codes, just viewed over a larger alphabet. To show how this might help, consider a folded Reed–Solomon code with
. Decoding a Reed–Solomon code and folded Reed–Solomon code for the same fraction of errors
are tasks of almost the same computational intensity: one can unfold the received word of the folded Reed–Solomon code, treat it as a received word of the original Reed–Solomon code, and run the Reed–Solomon list decoding algorithm on it. Obviously, this list will contain all the folded Reed–Solomon codewords within distance
of the received word, along with some extras, which we can expurgate.
Also, decoding a folded Reed–Solomon code is an easier task. Suppose we want to correct a third of the errors. The decoding algorithm chosen must correct an error pattern that corrects every third symbol in the Reed–Solomon encoding. But after folding, this error pattern will corrupt all symbols over
and will eliminate the need for error correction. This propagation of errors is indicated by the blue color in the graphical description. This proves that for a fixed fraction of errors
the folding operation reduces the channel's flexibility to distribute errors, which in turn leads to a reduction in the number of error patterns that need to be corrected.
How folded Reed–Solomon (FRS) codes and Parvaresh Vardy (PV) codes are related
We can relate Folded Reed Solomon codes wit
Parvaresh Vardycodes which encodes a polynomial
of degree
with polynomials
where
where
is an
irreducible polynomial
In mathematics, an irreducible polynomial is, roughly speaking, a polynomial that cannot be factored into the product of two non-constant polynomials. The property of irreducibility depends on the nature of the coefficients that are accepted f ...
. While choosing irreducible polynomial
and parameter
we should check if every polynomial
of degree at most
satisfies
since
is just the shifted counterpart of
where
is the
primitive element in
Thus folded RS code with bundling together code symbols is PV code of order
for the set of evaluation points
:
.
If we compare the folded RS code to a PV code of order 2 for the set of evaluation points
:
we can see that in PV encoding of
, for every
and every