In coding theory, folded Reed–Solomon codes are like Reed–Solomon codes, which are obtained by mapping
m
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" errors.[1] The list-decoding algorithm for folded RS codes corrects beyond the
1-\sqrt{R}
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
1-\sqrt{R}
R
An improvement upon this
1-\sqrt{R}
R<\tfrac{1}{16}.
For
R\to0
1-O(Rlog(1/R))
Folded Reed–Solomon Codes improve on these previous constructions, and can be list decoded in polynomial time for a fraction
(1-R-\varepsilon)
\varepsilon>0
f(X)\mapsto\begin{bmatrix}f(1)\\f(\gamma)\\\vdots\\f(\gammam-1)\end{bmatrix},\begin{bmatrix}f(\gammam)\\f(\gammam+1)\\\vdots\\f(\gamma2m-1)\end{bmatrix},\ldots,\begin{bmatrix}f(\gamman-m)\\f(\gamman-m+1)\\\vdots\\f(\gamman-1)\end{bmatrix}
Consider a Reed–Solomon
[n=q-1,k]q
n
k
m\ge1
m
n
Mapping for Reed–Solomon codes like this:
f\mapsto\left\langlef(1),f\left(\gamma1\right),f\left(\gamma2\right),\ldots,f\left(\gamman-1\right)\right\rangle
where
\gamma\inFq
Fq=\left\{0,1,\gamma,\gamma2,\ldots,\gamman-1\right\}
The
m
C
FRSF,\gamma,m,k
N=n/m
Fm
FRSF,\gamma,m,k
[q-1,k]
m
The above definition is made more clear by means of the diagram with
m=3
m
The message is denoted by
f(X)
f
x0,x1,x2,\ldots,xn-1
xi=\gammai
Then bundling is performed in groups of 3 elements, to give a codeword of length
n/3
3 | |
F | |
q |
Something to be observed here is that the folding operation demonstrated does not change the rate
R
To prove this, consider a linear
[n,k,d]q
n
k
d
m
\left[\tfrac{n}{m},
\tfrac{k}{m},\tfrac{d}{m}\right] | |
qm |
R=\tfrac{k}{n}
\delta
R\leqslant1-\delta+o(1)
R
R
\delta\leqslant1-R
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
m=3
\rho
\rho
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
3 | |
F | |
q |
\rho,
We can relate Folded Reed Solomon codes with Parvaresh Vardy codes which encodes a polynomial
f
k
f0=f,f1,\ldots,fs-1(s\geqslant2)
fi(X)=fi-1(X)d\modE(X)
E(X)
E(X)=Xq-\gamma
d
f
k
f(\gammaX)=f(X)d\modE(X)
f(\gammaX)
f(X)
\gamma
Fq.
s=m
\left\{1,\gamma,\gamma2m
| ||||||
,\ldots,\gamma |
\right\}
If we compare the folded RS code to a PV code of order 2 for the set of evaluation points
\left\{1,\gamma,\ldots,\gammam-2,\gammam,\gammam+1,\ldots,\gamma2m-2,\ldots,\gamman-m,\gamman-m+1,\ldots,\gamman-2\right\}
we can see that in PV encoding of
f
0\leqi\leqn/m-1
0<j<m-1,f(\gammami+j)
f(\gammami+j)
-1 | |
f | |
1(\gamma |
\gammami+j)
unlike in the folded FRS encoding in which it appears only once. Thus, the PV and folded RS codes have same information but only the rate of FRS is bigger by a factor of
2(m-1)/m
R
1-Rs/[s+1]
s\geq1
A list decoding algorithm which runs in quadratic time to decode FRS code up to radius
1-R-\varepsilon
Q(X,Y1,Y2,\ldots,Ys)=A0(X)+A1(X)Y1+A2(X)Y2+ … +As(X)Ys,
after which all the polynomials
f\inFq[X]
k-1
qs
Guruswami presents a
\Omega(1/\varepsilon2) | |
n |
1-R-\varepsilon
O(1/\varepsilon2) | |
{n |
f(x)
It is a Welch–Berlekamp-style interpolation (because it can be viewed as the higher-dimensional generalization of the Welch–Berlekamp algorithm). Suppose we received a codeword
y
m
\left(\begin{bmatrix}y0\\y1\\y2\\ … \\ym-1\end{bmatrix},\begin{bmatrix}ym\\ym+1\\ym+2\\ … \\y2m-1\end{bmatrix},\ldots,\begin{bmatrix}yn-m\\yn-m+1\\yn-m+2\\ … \\yn-1\end{bmatrix}\right)
We interpolate the nonzero polynomial
Q(X,Y1,\ldots,Ys)=A0(X)+A1(X)Y1+ … +As(X)Ys, \begin{cases}\deg(Ai)\leqslantD&1\leqslanti\leqslants\ \deg(A0)\leqslantD+k-1&\end{cases}
by using a carefully chosen degree parameter
D
D=\left\lfloor
N(m-s+1)-k+1 | |
s+1 |
\right\rfloor
So the interpolation requirements will be
Q\left(\gammaim+j,yim+j,yim+j+1,\ldots,yim+j+s-1\right)=0, for i=0,1,\ldots,\tfrac{n}{m}-1,j=0,1,\ldots,m-s.
Then the number of monomials in
Q(X,Y1,\ldots,Ys)
(D+1)s+D+k=(D+1)(s+1)+k-1>N(m-s+1)
Because the number of monomials in
Q(X,Y1,\ldots,Ys)
Lemma 1.
0 ≠ Q\inFq[X,Y1,\ldots,Ys]
Fq
Nm
O(Nmlog2(Nm)loglog(Nm))
Fq
This lemma shows us that the interpolation step can be done in near-linear time.
For now, we have talked about everything we need for the multivariate polynomial
Q(X,Y1,\ldots,Ys)
f(X)
Lemma 2. If a candidate message polynomial
f(X)\inF[X]
k-1
y
t
t>{{D+k-1}\over{m-s+1}},
then
Q(X,f(X),f(\gammaX),\ldots,f(\gammas-1X))=0.
Here "agree" means that all the
m
y
This lemma shows us that any such polynomial
Q(X,Y1,\ldots,Ys)
f(x)
Combining Lemma 2 and parameter
D
t(m-s+1)> | N(m-s+1)+s(k-1) |
s+1 |
Further we can get the decoding bound
t\geqslant
N | + | |
s+1 |
s | ⋅ | |
s+1 |
k | =N\left( | |
m-s+1 |
1 | + | |
s+1 |
s | ⋅ | |
s+1 |
mR | |
m-s+1 |
\right)
We notice that the fractional agreement is
\dfrac{1}{s+1}+\dfrac{s}{s+1} ⋅ \dfrac{mR}{m-s+1}
During this step, our task focus on how to find all polynomials
f\in{Fq[X]}
k-1
A0(X)+A1(X)f(X)+A2(X)f(\gammaX)+ … +
s-1 | |
A | |
s(X)f(\gamma |
X)=0
Since the above equation forms a linear system equations over
Fq
f0,f1,\ldots,fk-1
f(X)=f0+f1X+ … +fk-1Xk-1,
the solutions to the above equation is an affine subspace of
k | |
F | |
q |
It is natural to ask how large is the dimension of the solution? Is there any upper bound on the dimension? Having an upper bound is very important in constructing an efficient list decoding algorithm because one can simply output all the codewords for any given decoding problem.
Actually it indeed has an upper bound as below lemma argues.
Lemma 3. If the order of
\gamma
k
\gamma
s-1
This lemma shows us the upper bound of the dimension for the solution space.
Finally, based on the above analysis, we have below theorem
Theorem 1. For the folded Reed–Solomon code
(m) | |
FRS | |
q[n,k] |
N=\tfrac{n}{m}
R=\tfrac{k}{n},
s,1\leqslants\leqslantm
y\in
m) | |
(F | |
q |
N
O((Nmlogq)2)
s-1
f\inFq[X]
k
y
s | \left(1- | |
s+1 |
mR | |
m-s+1 |
\right)
of the
N
When
s=m=1
(1-R)/2
nO(1/\varepsilon)
1-R-\varepsilon
Theorem 1 tells us exactly how large the error radius would be.
Now we finally get the solution subspace. However, there is still one problem standing. The list size in the worst case is
n\Omega(1/\varepsilon)
qs
Things get better if we change the code by carefully choosing a subset of all possible degree
k-1
By converting the problem of decoding a folded Reed–Solomon code into two linear systems, one linear system that is used for the interpolation step and another linear system to find the candidate solution subspace, the complexity of the decoding problem is successfully reduced to quadratic. However, in the worst case, the bound of list size of the output is pretty bad.
It was mentioned in Step 2 that if one carefully chooses only a subset of all possible degree
k-1
To achieve this goal, the idea is to limit the coefficient vector
(f0,f1,\ldots,fk-1)
\nu\subseteq
k | |
F | |
q |
Condition 1. The set
\nu
|\nu|\geqq(1-\varepsilon)k
This is to make sure that the rate will be at most reduced by factor of
(1-\varepsilon)
Condition 2. The set
\nu
S
s
S\subset
k | |
F | |
q |
|S\cap\nu|\leqslantL.
The bound for the list size at worst case is
n\Omega(1/\varepsilon)
O(1/\varepsilon2)
During this step, as it has to check each element of the solution subspace that we get from Step 2, it takes
qs
s
Dvir and Lovett improved the result based on the work of Guruswami, which can reduce the list size to a constant.
Here is only presented the idea that is used to prune the solution subspace. For the details of the prune process, please refer to papers by Guruswami, Dvir and Lovett, which are listed in the reference.
If we don't consider the Step 3, this algorithm can run in quadratic time. A summary for this algorithm is listed below.
Steps | ||||||
---|---|---|---|---|---|---|
Runtime |
| |||||
Error radius | 1-R-\varepsilon | |||||
List size |
|