<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Soft Decoding for High Rate Reed-Solomon codes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergey Egorov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Southwest State University</institution>
          ,
          <addr-line>Kursk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>29</fpage>
      <lpage>36</lpage>
      <abstract>
        <p>A novel algorithm is proposed for soft decoding of Reed-Solomon codes. This algorithm is based on list decoding algorithm allowed to correct errors beyond half the minimum distance. The coding gain of the proposed algorithm is shown for some high rate codes. A block diagram of new ReedSolomon soft decoder is given.</p>
      </abstract>
      <kwd-group>
        <kwd>Reed-Solomon codes</kwd>
        <kwd>soft-decision decoding</kwd>
        <kwd>list decoding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A Reed-Solomon (RS) code [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is described as an (n, k) code, where the codeword
consists of n symbols from a Galois Field (GF) of q elements, k of which are
information symbols, with r = (n-k) check symbols.  m0 , m0 1,..., m0 r1 are the roots of any
RS codeword, where α is a primitive element of the field and m0 is an integer. Define
the minimum distance, d = r +1 and tC  (d  1) / 2 , the maximum number of error
symbols that can be always corrected.
      </p>
      <p>
        It is known that RS codes can correct any pattern of t errors or less iff 2t+1≤d (or
t≤ tC). Several efficient RS decoding algorithms are developed for correcting up to tC
errors. Two frequently used are the Berlekamp-Massey (BM) algorithm and the
algorithm by Sugiyama et al. [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
      <p>
        A procedure providing tC+1 error correction for RS codes was developed by Blahut
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] based on the BM algorithm. This procedure was improved by Egorov and
Markarian [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. Afterwards in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] this procedure was expanded for multiple extra error
correction.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] Berlekamp proposed bounded distance + 1 soft decision Reed-Solomon
decoding based on the Welch-Berlekamp algorithm.
      </p>
      <p>
        Guruswami and Sudan proposed an algorithm providing tC+ τ (τ ≥1) error
correction for RS codes (GS-algorithm) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The soft decision version of GS-algorithm was
introduced by Koetter and Vardy [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. VLSI architectures for soft RS decoder on the
base of this algorithm were developed in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        In this paper a novel algorithm for soft decoding of Reed-Solomon codes is
proposed. This algorithm is based on list decoding algorithm allowed to correct errors
beyond half the minimum distance [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The simple RS soft decoder can be
constructed on the base of the proposed algorithm.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Basic List Decoding Procedure</title>
      <p>
        The proposed soft decoding algorithm is based on the list decoding algorithm. In this
section this list decoding algorithm is described following [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Basic list decoding algorithm belongs to the class of decoding algorithms known as
“syndrome decoding algorithms” and is based on the Berlekamp-Massey algorithm
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The main idea of this algorithm is to continue analytically the Berlekamp-Massey
algorithm through 2τ more iterations and to search for values of error position, such
that the corresponding error locator polynomial of degree tC+τ has exactly tC+τ
legitimate roots.</p>
      <p>The basic list decoding algorithm consists of the following steps:
1) Calculate the syndrome polynomial S(x).</p>
      <p>2) Calculate the locator polynomial (2tC ) (x) , auxiliary polynomial B (2tC ) ( x) and
formal degree of the locator polynomial L2tC using 2tC iterations of the
Berlekamp</p>
      <sec id="sec-2-1">
        <title>Massey algorithm.</title>
        <p>3) Calculate the Fourier transforms of the polynomials (2tC ) (x) and B(2tC ) (x) .
4) Search for unknown discrepancies 2tC 1, 2tC 2 ,..., 2tC 2 , such as that
(2tC2 )( i )  0 for exactly tC+τ values of i. The values of i locate error positions.
5) Compute error magnitudes and correct errors.</p>
        <p>The algorithm described above fulfils a list decoding procedure, it finds all the
codewords that lie within the decoding sphere of radius t=tC+τ drawn about the received
codeword.</p>
        <p>Computational complexity of the step 4 of the algorithm is bounded by polynomial
in n for constant τ. In particular, for τ = 1 the complexity is described as O(n2), for τ =
2 as O(n4). Total complexity of the algorithm is less than one of Guruswami-Sudan
algorithm for small τ.</p>
        <p>
          In detail this list algorithm was presented in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Soft Decoding Algorithm</title>
      <p>The proposed soft decoding algorithm is based on list decoding algorithm described
above. The main step 4 of the list decoding algorithm is altered as following:</p>
      <p>Calculate the sequences S L[i1],L[i2 ],..., L[i2 1 ] of possible values of the discrepancy
L[i1 ], L[i2 ],..., L[i2 ] for all permitted sets of indices i1, i2,…,i2τ-1 (i2τ = i2τ -1+1,…, nC-1),
and search for discrepancy values  which are happened exactly w times in any
sequences S L[i1 ], L[i2 ],..., L[i2 1 ] :</p>
      <p>SL[i1],L[i2],...,L[i2 1]
 {L[i1],L[i2],...,L[i2 ] 
where:

{ j1, j2,...,jo}J {k1,k2}
j1 j2... jo k1k2
j1, j2,...,jo{1,2,...,2 } k1,k2J
F o ( L[i1 ], L[i2 ],..., L[i2 ], RL[i1 ] , RL[i2 ] ,..., RL[i2 ] ) 


 ( L[ik1]  L[ik2] )
{k1,k2}
k1k2
k1,k2{1,2,...,l}\J</p>
      <p>
o 
( L[ik1]  L[ik2] )RL[i j ] 
k1 k 

 ,
  (2 s1)i B (2tC ) ( i ) / (2tC ) ( i ) if s  0,
Ri   (2s1)i (2tC ) ( i ) / B (2tC ) ( i ) in other case
s = tC - ܮ ଶ௧ ಴ , o1 = τ - |s+1|, o2 = τ - |s|.</p>
      <p>If there exists a discrepancy value  which is happened exactly w times in some
sequence S L[i1 ], L[i2 ],..., L[i2 1 ] then error positions are given by index set L[i1],
L[i2],…, L[i2τ-1] of this sequence and by set of L[i2τ] values corresponding the
discrepancy value  in this sequence.</p>
      <p>The error position search is fulfilled in order of ascending total symbol reliability
measure. A symbol reliability measure may be estimated on the base of soft decisions
about symbol bits. The sequence of symbol position ordered by symbol reliability
measures is stored in the table L[ ]. The search range is bounded by nC ≤ n and
contains the least reliable symbol position of the received codeword.</p>
      <p>The soft decoding algorithm is many orders lower in complexity compared to the
basic list decoding algorithm.</p>
      <p>The proposed soft decoding algorithm consists of the following steps:
1) Calculate the syndrome polynomial S(x). If terms of S(x) are all zero, then go to
step 14 (there are no errors in the received codeword).</p>
      <p>2) Calculate the locator polynomial (2tC ) (x) , auxiliary polynomial B (2tC ) ( x) and
formal degree of the locator polynomial L2tC using 2tC iterations of the
Berlekamp</p>
      <sec id="sec-3-1">
        <title>Massey algorithm.</title>
        <p>
          3) If L2tC ≤ tC, then roots of the polynomial (2tC ) (x) are searched. If the number
of legitimate roots is equal to L2tC , then their inverses are considered as error locators.
Error magnitudes are computed using Forney’s formula [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. A false error pattern is
rejected, true one is introduced in the error list.
        </p>
        <p>4) Set s (shift): s = tC - L2tC . If s ≥ τ or s&lt; - τ, go to step 13.</p>
        <p>5) Calculate the Fourier transforms of the polynomials (2tC ) (x) and B(2tC ) (x) .</p>
        <p>6) Calculate the set of fractions Ri  (2s1)i B(2tC ) ( i ) / (2tC ) ( i ) when s ≥ 0 or
Ri  (2s1)i(2tC ) ( i ) / B(2tC ) ( i ) otherwise, i=0,…,n-1.</p>
        <p>7) Set v = 1 (v is number of extra errors for correction).
8) Calculate the auxiliary variables: l = 2v, o1 = v - |s+1|, o2 = v - |s|, w = tC +1-v.
9) Set sc = 1 (sc is counter of equation set).</p>
        <p>10) Calculate the sequences S L[i1 ],L[i2 ],..., L[il 1 ] of possible values of the
discrepancy L[i1 ],L[i2 ],..., L[il ] for most probable sets of indices i1, i2,…,il-1 (il = il-1
+1,…,n1), and search for discrepancy values  which are happened exactly w times in any
sequences S L[i1],L[i2 ],..., L[il 1 ] (1).</p>
        <p>S L[i1],L[i2 ],..., L[il1]</p>
        <p>If there exists a discrepancy value  which is happened exactly w times in some
sequence then error positions are given by index set
L[i1], L[i2 ],...,L[il1] of this sequence and by set of L[il] values corresponding the
discrepancy value  in this sequence.</p>
        <p>Compute error magnitudes using Forney’s formula. A false error pattern is
rejected, true one is introduced in the list.</p>
        <p>If error pattern is introduced in the list and (exit = 1 or exit = 2), then search is
finished. If exit = 1 then go to step 13. If exit = 2 then go to step 11.</p>
        <p>11) If v = -s, then go to step 12, else sc = sc +1, l = l – 1, o1 = o1 – 1, o2 = o2 – 1,
w = w + 1.</p>
        <p>If sc ≤ (v-|s|), then go to step 10.
12) v=v+1. If v≤ τ, then go to step 8.</p>
        <p>13) If the error list is empty, then decoding failure. If error list contains one error
pattern, then this error pattern is corrected. If error list contains more error patterns,
then error pattern is corrected such as closest to the received codeword.
14) End.</p>
        <p>The following notations are used for the algorithm description:
- L is lookup table contained symbol position ordered by reliability.
- exit is exit mode of the algorithm, exit {0,1,2} , 0 – usual exit, 1 - urgent
exit after detecting first error pattern, 2 – exit after detecting first error
patterns for all system sets.</p>
        <p>The soft decoding algorithm was simulated for some practical high rate RS codes
with d=17. The modulation used was BPSK and the channel model was AWGN. The
minimum of symbol bit LLRs is taken as the reliability measure of the symbol.</p>
        <p>
          Fig. 1, 2 show the performance of the new algorithm for these codes. Fig. 3 shows
the average complexity of discrepancy computation for RS code (120,104). On the all
figures: 1 denotes the conventional decoding algorithm correcting up to tC errors
(t=8), 2 – the proposed soft decoding algorithm with τ =1 (t=9), 3 – this algorithm
with τ =2 (t=10), 4 – this algorithm with τ =3 (t=11), 5 – Koetter-Vardy algorithm
(multiplicity 2) [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. On the fig. 3: A denotes the list decoding algorithm without soft
decisions (see section II) with τ =1 (t=9), B – this algorithm with τ =2 (t=10).
        </p>
        <p>A (255,239) RS code is used for long hall optical transmission. A coding gain of
0.42 dB (FER of 10-2) over the conventional algorithm is achieved with τ =3 (t=11)
(see fig. 1). This coding gain is more than one of Koetter-Vardy algorithms with small
multiplicities.</p>
        <p>The simulation results for the (120,104) RS code used in WORM optical disks are
shown in the figure 2. We see that a coding gain of 0.48 dB (FER of 10-3) over the
conventional decoding algorithm is achieved by the new algorithm with τ =3 (t=11).</p>
        <p>In the fig. 3 ξ denotes an average number of GF arithmetical operations needed for
calculation of discrepancies for one received codeword. It is assumed that one
multiplication is equaled to m additions, and one division is equaled to m2 additions, (m –
number of bits in the RS-code symbol). The adding of soft decisions into the basic list
decoding algorithm decreases in computational complexity by decimal order and
more.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Implementation of the Soft Decoding Algorithm</title>
      <p>The proposed algorithm can be implemented with simple hardware. A block diagram
of a decoder is shown in fig. 4. The decoder consists of a data buffer, a syndrome
calculator, a sorting circuit, a Galois processor, a discrete Fourier transform (DFT)
circuit, an error position searcher and an error value calculator.</p>
      <p>DIn
ri</p>
      <sec id="sec-4-1">
        <title>Data Buffer</title>
        <p>800
DOut
Ci
 ( x ) Error
 '( x) Value
{PE} Calculator
200
600
SoftIn
reli
{PE}
Sorting AddrR1
Circuit
Syndrome S(x)
Calculator</p>
      </sec>
      <sec id="sec-4-2">
        <title>Galois Processor</title>
        <p>(Berlekamp-Massey)
t)(2 xt)(2 xB 400
Discrete</p>
        <p>Fourier Ri
Transform Msk1</p>
        <p>Circuit Ai
AddrW
{PE’}
''
</p>
      </sec>
      <sec id="sec-4-3">
        <title>Error Position Searcher</title>
        <p>The decoder operates as a pipeline. Its units handle simultaneously the varied
sequenced received codeword.</p>
        <p>The data buffer, the syndrome calculator, the Galois processor and the error value
calculator function as usual. Additionally, the Galois processor calculates (2tC2 ) (x) ,
when there are tC+τ error positions found.</p>
        <p>The sorting circuit generates a sequence of codeword symbol position ordered by
symbol reliability measures and stores it in the table L[ ].</p>
        <p>The DFT circuit calculates Fourier transforms of the polynomials (2tC) (x) and
B(2tC) (x) and calculates coefficients Ri. Additionally, the DFT circuit calculates the
inverse of the roots of the polynomial (2tC ) (x) and checks that the number of roots is
not equal to L2tC</p>
        <p>when L2tC tC.</p>
        <p>The error position searcher fulfils steps 7-10 of the proposed algorithm. The tC+ τ
error positions {PE’} and the corresponding values  are found by the searcher. The
error position searcher performs most operations in the present decoder.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>The proposed soft decoding algorithm increases the coding gain of RS codes in
telecommunication and storage systems without any modification of the existing
standards.</p>
      <p>Using symbol reliability measures reduces greatly the computational complexity of
the algorithm comparing to basic list decoding algorithm.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Berlekamp</surname>
            ,
            <given-names>E.R.: Algebraic</given-names>
          </string-name>
          <string-name>
            <surname>Coding Theory. McGraw-Hill</surname>
          </string-name>
          , New York (
          <year>1968</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Sugiyama</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kasahara</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirasawa</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Namekawa</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A method for solving key equation for decoding Goppa codes</article-title>
          .
          <source>Inf. And Contr</source>
          ., v.
          <volume>27</volume>
          ,
          <fpage>87</fpage>
          -
          <lpage>99</lpage>
          (
          <year>1975</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Blahut</surname>
            ,
            <given-names>K R</given-names>
          </string-name>
          .E.:
          <article-title>Transform Techniques for Error Control Codes</article-title>
          .
          <source>IBM J. Res. Develop.</source>
          , vol.
          <volume>23</volume>
          , No.
          <volume>3</volume>
          ,
          <fpage>299</fpage>
          -
          <lpage>315</lpage>
          , (
          <year>1979</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Egorov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Markarian</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>An Algorithm for t+1 Error Correction in Reed-Solomon Codes</article-title>
          .
          <source>In Proc. ICC'04: 2004 IEEE International Conference on Communications</source>
          , Paris, France, vol.
          <volume>2</volume>
          , pp.
          <fpage>651</fpage>
          -
          <lpage>655</lpage>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Egorov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Markarian</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Error Correction beyond the Conventional Error Bound for Reed-Solomon Codes</article-title>
          .
          <source>Journal of Electrical Engineering</source>
          , vol.
          <volume>54</volume>
          . No 11-
          <issue>12</issue>
          ,
          <fpage>305</fpage>
          -
          <lpage>310</lpage>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Egorov</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A List Decoding Algorithm for Practical Reed-Solomon codes</article-title>
          .
          <source>In Proc. EWDTS</source>
          <year>2013</year>
          : 11th
          <string-name>
            <given-names>IEEE</given-names>
            <surname>East-West</surname>
          </string-name>
          <string-name>
            <given-names>Design</given-names>
            &amp; Test
            <surname>Symposium</surname>
          </string-name>
          ,
          <article-title>Rostov-on-</article-title>
          <string-name>
            <surname>Don</surname>
          </string-name>
          , Russia, pp.
          <fpage>275</fpage>
          -
          <lpage>278</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Berlekamp</surname>
            ,
            <given-names>E. R.</given-names>
          </string-name>
          :
          <article-title>Bounded distance+1 soft-decision Reed-Solomon decoding</article-title>
          .
          <source>IEEE Trans. Info. Theory</source>
          , vol. IT-
          <volume>42</volume>
          ,
          <fpage>704</fpage>
          -
          <lpage>720</lpage>
          (
          <year>1996</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Guruswami</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sudan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Improved Decoding of Reed-Solomon and AlgebraicGeometry Codes</article-title>
          .
          <source>IEEE Trans. Inform. Theory</source>
          , vol.
          <volume>45</volume>
          , No.
          <volume>6</volume>
          ,
          <fpage>1757</fpage>
          -
          <lpage>1767</lpage>
          (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Koetter</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vardy</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Algebraic soft-decision decoding of Reed-Solomon codes</article-title>
          .
          <source>IEEE Trans. Inform. Theory</source>
          , vol.
          <volume>49</volume>
          , No.
          <volume>6</volume>
          ,
          <fpage>2809</fpage>
          -
          <lpage>2825</lpage>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gross</surname>
            ,
            <given-names>W.J.</given-names>
          </string-name>
          <string-name>
            <surname>Kschischang</surname>
            ,
            <given-names>F.R.</given-names>
          </string-name>
          <string-name>
            <surname>Koetter</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Gulak</surname>
          </string-name>
          , P.G.:
          <article-title>Towards VLSI architecture for interpolation-based soft-decision Reed-Solomon decoders</article-title>
          .
          <source>J. VLSI Signal Processing</source>
          , vol.
          <volume>39</volume>
          , No.
          <fpage>1</fpage>
          -
          <issue>2</issue>
          ,
          <fpage>93</fpage>
          -
          <lpage>111</lpage>
          (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          <string-name>
            <surname>Cain</surname>
          </string-name>
          , J.B.
          <article-title>Error-Correction Coding for Digital Communications</article-title>
          . New York: Plenum Press (
          <year>1982</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Gross</surname>
            ,
            <given-names>W.J.</given-names>
          </string-name>
          <string-name>
            <surname>Kschischang</surname>
            ,
            <given-names>F.R.</given-names>
          </string-name>
          <string-name>
            <surname>Koetter</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Gulak</surname>
          </string-name>
          , P.G.:
          <article-title>Simulation Results for Algebraic Soft-Decision Decoding of Reed-Solomon Codes</article-title>
          .
          <source>In Proc. of the 21st Biennial Symposium on Communications, Queen'</source>
          s University, Kingston, Canada, pp.
          <fpage>356</fpage>
          -
          <lpage>360</lpage>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>