CN1653699B - 软判定解码里德-索洛蒙码的方法 - Google Patents

软判定解码里德-索洛蒙码的方法 Download PDF

Info

Publication number
CN1653699B
CN1653699B CN038104032A CN03810403A CN1653699B CN 1653699 B CN1653699 B CN 1653699B CN 038104032 A CN038104032 A CN 038104032A CN 03810403 A CN03810403 A CN 03810403A CN 1653699 B CN1653699 B CN 1653699B
Authority
CN
China
Prior art keywords
multinomial
gamma
alpha
erasure
syndrome
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN038104032A
Other languages
English (en)
Other versions
CN1653699A (zh
Inventor
斯蒂芬·米勒
亚历山大·克拉夫特切科
马滕·卡布茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN1653699A publication Critical patent/CN1653699A/zh
Application granted granted Critical
Publication of CN1653699B publication Critical patent/CN1653699B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明涉及里德-索洛蒙解码器和软判定解码里德-索洛蒙码的方法,其中,通过叠代更新这些多项式的系数,并行地计算校正子多项式、疑符多项式和修正校正子多项式。

Description

软判定解码里德-索洛蒙码的方法
技术领域
本发明一般涉及错误检测/纠正,尤其涉及用在里德-索洛蒙解码器中的系统和方法。
背景技术
通常使用的纠错技术是里德-索洛蒙(Reed-Solomon)纠错码。有关里德-索洛蒙码的综述和应用请参考“里德-索洛蒙码及其应用”(Reed-SolomonCodes and Their Applications,Stephen B.Wicker,Vijay K.Bhargava,IEEE Press,1994)和“数字通信、基本原理和应用”(Digital Communication,Fundamentals and Applications,Second Edition,Bernard Sklar,Prentice Hall PTR,2001)。
美国专利第5,517,509号示出了以欧几里得(Euclid)算法运算电路形式的里德-索洛蒙解码器,其中,将除数多项式重复地除以从被除数多项式和除数多项式的相除过程中得到的余式,直到相除过程的余式等级满足规定条件为止。
欧几里得算法运算电路包括分别存储被除数多项式和除数多项式的寄存器组、存储从被除数多项式除以除数多项式的相除过程中得出的余式、移位寄存器的内容的移位器、和交换被除数多项式的系数和除数多项式的系数的交换器。
该解码器包括从接收码字中计算校正子(syndrome)的校正子运算器、从与接收码字同步的疑符定位子标志中生成疑符定位子数据的疑符定位子发生器、生成修正校正子的修正校正子发生器、从疑符定位子数据中生成疑符定位子多项式的疑符定位子多项式发生器、获取错误定位子多项式和错误值多项式的欧几里得算法运算电路、获取错误位置和错误值的Chien搜索器、和纠正接收码字的错误的纠正处理器。修正校正子发生器和疑符定位子多项式发生器与欧几里得算法运算电路一起使用。
实现里德-索洛蒙解码器的其它手段可从美国专利第5,991,911、6,032,283、6,304,994B1、5,537,426、EP 0821493A1和EP 0942421A1号中了解到。
通常,通过计算校正子多项式和疑符多项式的乘积进行修正校正子多项式的计算。这种计算需要附加循环和计算时间来获取修正校正子多项式。
因此,本发明的目的是提供修正校正子多项式的计算不需要附加循环的软判定解码里德-索洛蒙码的方法。
发明内容
本发明的目的主要通过应用在独立权利要求中阐述的特征来解决。在从属权利要求中给出了本发明的优选实施例。
本发明通过并行动态计算(on-the-fly computation)校正子多项式和疑符多项式,以及修正校正子多项式,能够使软判定解码里德-索洛蒙码的计算时间达到最小。换句话说,本发明能够在校正子多项式和疑符多项式的计算完成之前,进行修正校正子多项式的计算。
本发明的特别有利之处在于,它能够利用输入码元动态地计算修正校正子多项式。因此,可以省略通常称为多项式展开的分离计算步骤。
本发明的进一步有利之处在于,在纠正之后,无需计算校正子多项式和疑符多项式的乘积就可以直接更新修正校正子。这导致了总计算时间和硬件要求的降低。
本发明的一般构思是减少计算修正校正子所需的循环次数。为了获得修正校正子多项式,必须进行疑符多项式和校正子多项式的乘积。用于这种计算的传统串行算法的复杂度是
c=r(1+1)-1(1+1)/2,
其中,r是RS码字中奇偶校验码元的个数,和1是码字中疑符的个数。
传统串行-并行算法的复杂度是
c=1+1
本发明的一般构思是动态地计算修正校正子。因此,本方法不需要任何附加循环来计算修正校正子,从而节省了计算能力和时间。
附图说明
图1示出了已知动态校正子计算的硬件实现的方块图;
图2示出了疑符多项式的已知动态计算的硬件实现的方块图;
图3例示了动态计算修正校正子多项式的实施例的流程图;
图4是动态计算修正校正子多项式的硬件实现的方块图;
图5是与图3的流程图有关的时序图;
图6例示了动态计算修正校正子多项式的可替代方法;
图7是图6的方法的硬件实现的方块图;和
图8是与图6的方法有关的时序图。
详细描述
在软判定解码中,已知只要如下条件成立,接收器就可以纠正:
2e+f<dmin.                           (1)
其中,e是错误个数,f是疑符个数,和dmin是汉明(Hamming)距离。
为了计算错误,必须完成如下步骤:
1.计算校正子多项式:
S ( x ) = Σ i = 0 N - 1 v i + Σ i = 0 N - 1 v i α i x + Σ i = 0 N - 1 v i α 2 i x 2 + . . . + Σ i = 0 N - 1 v i α ( M - 1 ) i x M - 1 - - - ( 2 )
2.计算疑符多项式,其中,αji是疑符的位置j0,j1,...,jp-1的幂:
Γ ( x ) = Π i = 0 p - 1 ( 1 - α j i x ) - - - ( 3 )
3.通过如下方程构造修正校正子多项式:
T(x)=Г(x)S(x)modxM                  (4)
4.利用伯利坎普-马赛(Berlekamp-Massey)或欧几里得算法求解关键方程:
Λ(x)T(x)=Ω(x)modxM                 (5)
5.计算Forney多项式:
Ψ(x)=Λ(x)Г(x)                     (6)
6.利用Forney方程计算错误和疑符的幅度。
从方程(2)和(3)可明显看出,可以利用输入数据码元vN-1,...,v1,v0动态地计算它们。
在下文中,给出上面步骤1,即,方程(2)的实施的更详细说明。设错误矢量是具有如下多项式表示的 e → = [ e 0 , e 1 , . . . e N - 1 ] :
e(x)=e0+e1x+...+eN-1xN-1以及ei∈GF(28).                    (7)
那么,在解码器输入端上的接收多项式是:
v(x)=c(x)+e(x)=v0+v1x+...+vN-1xN-1以及vi∈GF(28),       (8)
其中,多项式系数是接收矢量的分量。由于码字多项式c(x)可除以生成多项式g(x),和对于,i=0,1,...,M-1,g(αi)=0,在生成多项式的根α0,α1,...,αM-1上估计多项式v(x)生成:
v ( α j ) = c ( α j ) + e ( α j )
= e ( α j ) = Σ i = 0 N - 1 e i α ij , j = 0,1 , . . . , M - 1 . - - - ( 9 )
它表明,最后方程组只牵涉到不是码字的那些成分的错误模式的成分。称它们为校正子Sj,j=0,1,...,M-1,其中:
S j = v ( α j ) = Σ i = 0 N - 1 v i α ij , j = 0,1 , . . . , M - 1 . - - - ( 10 )
这些校正子用于以如下的形式形成校正子多项式:
S ( x ) = Σ i = 0 N - 1 v i + Σ i = 0 N - 1 v i α i x + Σ i = 0 N - 1 v i α 2 i x 2 + . . . + Σ i = 0 N - 1 v i α ( M - 1 ) i x M - 1 - - - ( 11 )
= S 0 + S 1 x + S 2 x 2 + . . . + S M - 1 x m - 1 .
方程(11)的动态计算可以通过叠代更新系数Sj,j=0,1,...,M-1来实现。在新码元vn正在到达的每个码元时钟j上,计算位置n的幂αn和以如下方式更新系数:
Si,j=Si,j-1+vnαin,i=0,1,...,M-1其中Si,-1=0.     (12)
 动态校正子计算的硬件实现显示在图1中。在新代码序列的开头,用第1码元的位置的幂来初始化第1寄存器。用零初始化第2寄存器。每当新码元到达时,使第1寄存器和第2寄存器同步,根据方程(12)更新校正子,和将第1寄存器中根项的幂降低1阶。
在下文中,给出上面步骤2,即,方程(3)的更详细说明。
假设p个疑符在位置j0,j1,...,jp-1上,以如下方式计算疑符多项式:
Γ ( x ) = Π i = 0 p - 1 ( 1 - α j i x · ) - - - ( 13 )
= Γ 0 + Γ 1 x + Γ 2 x 2 + . . . + Γ p x p
那个方程的动态计算可以通过叠代更新多项式来实现。在每个时刻j,当出现新疑符vn时,计算疑符位置n的幂αn和以如下方式更新多项式:
Гj(x)=Гj-1(x)·(1-αnx)=(Г0,j-11,j-1x+...+Гp,j-1xp)(1-αnx)(14)
检查方程(14)的最后多项式,可以将系数写成:
Γ i , j = Γ i , j - 1 + α n Γ i - 1 , j - 1 , i = 1,2 , . . . , p 1 , i = 0 , 其中гi,-1=0。
通过方程(15)取得的动态疑符多项式计算的硬件实现描绘在图2中。如果输入码元是疑符,切换所描绘的切换器和该电路实现按照方程(15)的计算。
如果码元不是疑符,该切换器保持在它们所描绘的位置。切换器被做成组合逻辑块,因此,它们不会引起任何额外时钟延迟。它们直接与配有码元信息的疑符信号相连接。在新代码序列的开头,用第1码元的位置的幂,例如,对于DVD的内码用α181初始化第1寄存器。
用零初始化第2寄存器。每当新码元到达时,使第1寄存器和第2寄存器同步,然后,根据方程(15)更新校正子,和将第1寄存器中根项的幂降低1阶。
根据如下方程,将方程(2)的校正子多项式与方程(3)的疑符多项式相乘获得修正校正子多项式:
T(x)=S(x)Г(x)modxM                                         (16)
=(S0+S1x+S2x2+...+SM-1xM-1)(Г01x+Г2x2+...+Гpxp)modxM
结果是两个多项式之间的循环卷积
T ( x ) = S 0 Γ 0 + ( S 1 Γ 0 + S 0 Γ 1 ) x + ( S 2 Γ 0 + S 1 Γ 1 + S 0 Γ 2 ) x 2 + . . . + Σ j = 0 M - 1 S j Γ M - 1 - j x M - 1 - - - ( 17 )
根据本发明,我们从将方程(2)代入方程(17)开始,这得出:
T ( x ) = Σ i = 0 N - 1 v i + ( Σ i = 0 N - 1 v i α i Σ i = 0 N - 1 v i Γ 1 ) x + ( Σ i = 0 N - 1 v i α 2 i + Σ i = 0 N - 1 v i α i Γ 1 + Σ i = 0 N - 1 v i Γ 2 ) x 2 + . . . - - - ( 18 )
+ Σ j = 0 M - 1 Σ i = 0 N - 1 v i α ij Γ M - 1 - j x M - 1
或更好的
T ( x ) = Σ i = 0 N - 1 v i ( 1 + ( α i + Γ 1 ) x + ( α 2 i + α i Γ 1 + Γ 2 ) x 2 + . . . + Σ j = 0 M - 1 α ij Γ M - 1 - j x M - 1 ) .
现在,可以以指示如何把以前的疑符考虑进来更新多项式系数的方式解释这个方程。假设在时间步j-1,寄存器Ti,i=0,1,...,M-1保存正确的修正校正子和在时间步j接收到进一步的数据码元,简单地根据方程(19)更新修正校正子多项式。
借助于那种信息,可以写出动态计算修正校正子的算法A。取决于输入码元是否被信号化成疑符,算法A分别需要两次或一次连续计算。但是,也可以写出动态计算修正校正子的可替代算法B。算法B由两个可替代分支组成,取决于输入码元是否被信号化成疑符,选择和执行其中之一,和为了进行所考虑的情况所需的所有计算,每个分支仅仅需要一个系统时钟。
算法A
借助于方程(19),不用计算校正子,可以直接计算修正校正子。图3中的流程图示出了动态计算的第1实施例。该流程图包括计算两个辅助项T*(X)和Г*(X)的方程(20)和在输入码元vn是疑符的情况下,从辅助项中计算叠代结果Tj(X)和Гj(X)的方程(21)。在每个码元时钟上,当获得新码元时,根据方程(20)更新修正校正子。在每步计算中,将所得修正校正子纠正成最新接收码元。对于这种算法,系统时钟频率必须至少是码元时钟频率的两倍。在为最后一个码元计算之后,该算法即告结束,然后,获得正确的修正校正子。
在疑符的情况下,需要两个系统时钟,一个用于按照方程(20)的更新,另一个用于如方程(21)所示,将多项式与根相乘。在疑符的情况下,计算方程(20)和(21)的顺序是可以交换的。如果这样做的话,必须小心,如果流的第1码元是疑符,必须用1预置寄存器T0,否则,方程(21)的第一部分将得出零。
方程(20)的计算直接来源于在方程(19)中所描述的循环卷积。因此,我们在下文中描述获得疑符码元的算法。假设直到时间步n-1,我们让存储器含有作为方程(19)的线性卷积的如下修正校正子:
T n - 1 ( x ) = Σ i = 0 n - 1 v i [ 1 + ( α i + Γ 1 , n - 1 ) x + ( α 2 i + α i Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 ] + . . . - - - ( 22 )
. . . + Σ j = 0 M - 1 α ij Γ M - 1 - j , n - 1 x M - 1 ]
和疑符多项式:
Гn-1(x)=1+Г1,n-1x+Г2,n-1x2+...+Гp,n-1xp.       (23)
接着,我们假设在时间步n,疑符码元vn正在到来,因此,方程(20)的计算得出:
T * ( x ) = Σ i = 0 n - 1 v i ( 1 + ( α i + Γ 1 , n - 1 ) x + ( α 2 i + α i Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 + . . . + Σ j = 0 M - 1 α ij Γ M - 1 - j , n - 1 x M - 1 ) - - - ( 24 )
+ v n ( 1 + ( α n + Γ 1 , n - 1 ) x + ( α 2 n + α n Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 + . . . + Σ i = 0 M - 1 α ni Γ M - 1 - i , n - 1 x M - 1 )
T * ( x ) = Σ i = 0 n - 1 v i ( 1 + ( α i + Γ 1 , n - 1 ) x + ( α 2 i + α i Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 + . . . + Σ j = 0 M - 1 α ij Γ M - 1 - j , n - 1 x M - 1 ) - - - ( 24 )
现在,计算方程(21)
T n ( x ) = ( Σ i = 0 n - 1 v i ( 1 + ( α i + Γ 1 , n - 1 ) x + ( α 2 i + α i Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 + . . . + Σ j = 0 M - 1 α ij Γ M - 1 - j , n - 1 x M - 1 ) ) ( 1 - α n x )
再次利用循环卷积得出:
Figure S03810403219960409D000081
Figure S03810403219960409D000082
可以将它写成:
T ( x ) = Σ i = 0 N - 1 v i ( 1 + ( α i + Γ 1 ) x + ( α 2 i + α i Γ 1 + Γ 2 ) x 2 + . . . + Σ j = 0 M - 1 α ij Γ M - 1 - j x M - 1 ) .
事实上,这也是校正子和疑符多项式按照方程(19)的卷积。
用于动态计算修正校正子的算法A的实施例可以在图4中看到。如果切换器处在它们所示的位置中,该结构实现基于方程(20)的计算。如果切换器被切换,该结构实现基于方程(21)的计算。
切换器被做成组合逻辑块,因此,它们不会引起任何额外时钟延迟。比较图1和图2的实施例,容易看出,每个单元或寄存器只需要一个附加加法器。这意味着,由于不需要附加多项式乘法器,硬件减少了。
在新代码序列的开头,用第1码元的位置的幂,例如,对于DVD的内码的例子用α181初始化第1寄存器。用零初始化第2和第3寄存器。在系统时钟的每个上升沿上,新码元到达和使第1寄存器同步,将根幂降低1阶。此后,使第2寄存器与码元时钟的下一个下降沿同步,从而,根据方程(20)更新校正子。
如果到达码元被信号化成疑符,切换器被切换和再次使寄存器2和3同步,计算方程(21)。在该序列中最后一个码元的末端上,在最后计算之后,寄存器2保存整个代码序列的修正校正子,和寄存器3保存疑符多项式。
在下文中,参考示出图3的方法的定时行为的例子的图5。
假设M=10和顺序是向下的,就像DVD的内码的情况那样。码元顺序从181开始,一直下降到0。用T(x)=0和Г-1(x)=1预置寄存器。让我们假设我们接收到如下数据流:
v181=α6 v 180 * = α 9 , v179=α10 v 178 * = α 12 , v177=α15,v176=...,...,v0=α...
其中,vi *将表示被信号化成疑符的那些码元。如图5所示,在码元时钟的每个上升沿上,我们获得新码元vn,以及它的疑符信息,并且,使图4中的电路的寄存器1同步,和它包含那个码元的适当幂项αn。在图5中被表示成1的码元时钟的上升沿之后的第1个系统时钟上,在它们所示的位置中使图4中的电路的寄存器2同步和计算方程(20)。
如果疑符信号是真的,切换图4中的切换器和在图5中被表示成2的系统时钟的下一个上升沿上再次使电路的寄存器2和3同步,这导致方程(21)得到计算。在最后计算了第182码元之后,获得整个码字的正确修正校正子。对于本例,现在将详细说明直到第5输入码元之后的中间结果。
传统方式:
首先以传统方式计算中间修正校正子,作为能够核实如下说明的本发明算法的结果的参考。方程(2)给出像如下那样的数据流的校正子:
S(x)=(α69101215)+(α6α1819α18010α17912α17815α177)x+...
+(α6α9·1819α9·18010α9·17912α9·17815α9·177)x9           (28)
=α16979x+α113x237x3194x4112x5239x6168x7174x8240x9.
Г(x)=(1-α180x)(1-α178x)=1+α228x+α103x2.                                (29)
通过将两个多项式相乘,获得像如下那样的直到那个码元的修正校正子多项式:
T(x)=S(x)Г(x)modxM=α69+(α79169α228)x+
+(α11379α228169α103)x2+...
...+(α240174α228168α103)x9                           (30)
=α169134x+α119x268sx3128x4172x5+
21x640x7217x8152x9
动态算法
按输入码元的顺序进行计算;在每一步之后,将所得修正校正子纠正成最新接收码元。
1.获取数据码元v181=α6;第1系统时钟1;计算方程(20):
T0(x)=α6(1+α181x+α2·180x2+...+α9·180x9)
=α6187x+α113x239x3220x4+                (31)
146x572x6253x7179x8105x9
Г0=1                                              (32)
2.获取疑符码元v* 181=α9;第1系统时钟1;计算方程(20):
T*(x)=(α69)+(α1879α180)x+(α113·+α9α2·180)x2+...
...+(α1059α9·180)x9                              (33)
=α229237x+α138x2+0·x3244x4194x5+
37x694x757x835x9
第2系统时钟2,计算方程(21):
T1(x)=α229+(α237180α229)x+(α138180α237)x2+...
...+(α35180α57)x9                                 (34)
=a229211x+α137x263x3244x4170x5+
96x622x7203x8129x9
Г1(x)=1+α180x                                       (35)
3.获取数据码元v179=α10;第1系统时钟1;计算方程(20):
T2(x)=(α22910)+(α21110179180))x+
+(α137102·179179α180))x2+...
...+(α129109·1798·179α180))x9              (36)
=α199179x+α162x287x3209x448x5+
201x6133x7182x8215x9
Г2(x)=1+α180x                                        (37)
4.获取疑符码元v* 178=α12;第1系统时钟1;计算方程(20):
T*(x)=(α19912)+(α17912178180))x+
+(α162122·178178α180))x2+...
...+(α215129·1788·178α180))x9                 (38)
=α216110x+α187x2111x317x4146x5+
64x637x7108x839x9
第2系统时钟2,计算方程(21):
T3(x)=α216+(α110178α216)x+(α187178α110)x2+...
...+(α39178α108)x9
=α21636x+α234x2135x385x488x5202x6+       (39)
244x7166x8231x9
Г3(x)=1+(α180178)x+α180α178x2                      (40)
=1+α228x+α103x2
5.获取数据码元v177=α15;第1系统时钟1;计算方程(20):
T4(x)=(α21615)+(α3615177228))x+
+(α234152·177177α228103))x2+...
...+(α231159·1778·177α2287·177α103))x9   (41)
=α169134x+α119x268x3128x4172x5+
21x640x7217x8152x9
Г4(x)=1+(α180178)x+α180α178x2
=1+α228x+α103x2                                         (42)
方程(42)与(29)和(41)与(30)的比较核实该算法。这个结果是中间结果,不是最后修正校正子,而仅仅是直到第5接收码元的修正校正子。整个代码序列的修正校正子是在第182次计算之后获得的。
算法B
在下文中,将更详细地说明计算修正校正子多项式的可替代算法B:
计算疑符码元的第2系统时钟可以通过将方程(20)插入(21)中来避免,这将得出:
T n ( x ) = T n - 1 ( x ) ( 1 - α n x )
+ v n ( 1 + ( α n + Γ 1 , n - 1 ) x + ( α 2 + α n Γ 1 , n - 1 + Γ 2 , n - 1 ) x 2 + . . . - - - ( 43 )
. . . + Σ j = 0 M - 1 α nj Γ M - 1 - j , n - 1 x M - 1 ) ( 1 - α n x ) ,
或更好的
T n ( x ) = T n - 1 ( x ) ( 1 - α n x )
Figure S03810403219960409D000126
因此,可以将方程写成:
Tn(x)=Tn-1(x)(1-αnx)+vnГn-1(x),whereГ-1(x)=1         (45)
现在,可以写出对于每种输入码元类型只需要一个系统时钟的第2种算法B。
图6中的流程图示出了动态计算的第2实施例。为了计算一次叠代结果Tj(X)和Гj(X),该流程图包括在输入码元vn是疑符的情况下使用的方程(46)和否则使用的方程(47)。
在每个码元时钟上,当获得新码元时,更新修正校正子。在每步计算中,将所得修正校正子纠正成最新接收码元。对于这种算法B,系统时钟频率可以与码元时钟频率相同,这导致非常快的计算。在最后码元之后,该算法即告结束,然后,获得正确的修正校正子。
动态计算修正校正子的第2实施例描绘在图7中。如果切换器处在它们所示的位置中,该结构实现基于方程(47)的计算。如果切换器被切换,该结构实现基于方程(46)的计算。
切换器作为组合逻辑块实现,因此,它们不会引起任何额外时钟延迟。将所描绘的结构与图4中的结构相比较,每个单元或寄存器需要附加的乘法器和加法器。增加硬件结构和因此增加等待时间可以使计算时间缩短。
在新代码序列的开头,用第1码元的位置的幂,例如,对于DVD的内码的例子用α181初始化寄存器1。用零初始化寄存器2和3。切换器直接与疑符信号相连接。使所有寄存器1、2和3与码元时钟的上升沿同步,从而,取决于疑符信号,根据方程(46)或(47)更新校正子。
寄存器1的同步使根项的幂下降1阶,为下一个码元作好准备。在该序列中最后一个码元的末端上,在最后计算之后,寄存器2保存整个代码序列的修正校正子,和寄存器3保存疑符多项式。
现在举例说明定时行为和算法。假设M=10和顺序是向下的,就像DVD的内码的情况那样。码元顺序从181开始,一直下降到0。用T(x)=0和Г-1(x)=1预置寄存器。让我们假设我们接收到如下数据流:
v181=α6 v 180 * = α 9 , v179=α10 v 178 * = α 12 , v177=α15,v176=...,...,v0=α...,
其中,vi *将表示被信号化成疑符的那些码元。如图8所示,在系统时钟的每个上升沿上,获得新码元vn和疑符信息。
疑符信号馈送到图7中的电路的切换器。如果疑符信号是假的,切换器保持在它们所示的位置,如果疑符信号是真的,切换器被切换。在图8中被表示成1的系统时钟的上升沿上使图7中的电路同步和计算方程(46)或(47)。在最后一个码元时钟,即第182码元时钟之后,获得整个码字的正确修正校正子。对于本例,现在将详细说明直到第5输入码元之后的中间结果。
按输入码元的顺序进行计算;在每一步之后,将所得修正校正子纠正成最新接收码元。
1.获取数据码元v181=α6;计算方程(46):
T0(x)=α6(1+α181x+α2·180x2+...+α9·180x9)
=α6187x+α113x239x3220x4+                           (48)
146x572x6253x7179x8105x9
Г0=1                                                         (49)
2.获取疑符码元v* 181=α9;计算方程(47):
T1(x)=α6·(1+α181x+α2·180x2+...+α9·180x9)
=α6+(α187180α6)x+(α113180α187)x2+...
...+(α105180α179)x99                                  (50)
=α229211x+α137x263x3244x4170x5+
96x622x7203x8129x9
Г1(x)=1+α180x                                              (51)
3.获取数据码元v179=α10;计算方程(46):
T2(x)=(α22910)+(α21110179180))x+
+(α137102·179179α180))x2+...
...+(α129109·1798·179α180))x9                    (52)
=α199179x+α162x287x3209x4+
48x5201x6133x7182x8215x9
Г2(x)=1+α180x                                              (53)
4.获取疑符码元v* 178=α12;计算方程(47):
T3(x)=α199+(α179178α199)x+(α162178α179)x2+...
...+(α215178α182)x9
1212α180x                                              (54)
=α21636x+α234x2135x385x488x5202x6+
244x7166x8231x9
Г3(x)=1+(α180178)x+α180α178x2                         (55)
=1+α228x+α103x2
5.获取数据码元v177=α15;计算方程(46):
T4(x)=(α21615)+(α3615177228))x+
+(α234152·177177α228103)))x2+
+(α231159·1778·177α2287·177α103))x9           (56)
=α169134x+α119x268x3128x4172x5+
21x640x7217x8152x9
Г4(x)=1+(α180178)x+α180α178x2
=1+α228x+α103x2                                              (57)
方程(56)与(29)和(57)与(30)的比较校验该算法。这个结果是中间结果,它不是最后修正校正子,而是直到那个码元的修正校正子。整个代码序列的修正校正子是在第182次计算之后获得的。

Claims (9)

1.一种软判定解码里德-索洛蒙码字的方法,所述里德-索洛蒙码字由N个码元组成,并且所述里德-索洛蒙码字的生成多项式具有M个根,
其特征在于,
通过在新数据码元正在到达的每个码元时钟上叠代更新校正子多项式、疑符多项式和修正的校正子多项式的系数,并行地计算所述校正子多项式、疑符多项式和修正的校正子多项式,以便在码字的最后一个码元的系数更新已经完成之后,直接获得码字的校正子多项式、疑符多项式和修正的校正子多项式。
2.根据权利要求1所述的方法,包括如下步骤:
-计算如下校正子多项式S(x):
S ( x ) = Σ i = 0 N - 1 v i + Σ i = 0 N - 1 v i α i x + Σ i = 1 N - 1 v i α 2 i x 2 + . . . + Σ i = 0 N - 1 v i α ( M - 1 ) i x M - 1
其中,vi是输入数据码元;
-计算如下疑符多项式Г(x):
Γ ( x ) = Π i = 1 p - 1 ( 1 - α j i x )
其中,
Figure FSB00000319619400013
是疑符的位置j0,j1,...,jp-1的幂和p是码字中疑符的个数;
-通过如下方程构造修正的校正子多项式:
T(x)=Г(x)S(x)modxM
-通过利用伯利坎普-马赛或欧几里得算法求解关键方程确定多项式Λ(x),Ω(x):
Λ(x)T(x)=Ω(x)modxM
-计算Forney多项式:
ψ(x)=Λ(x)Г(x)
-利用Forney方程计算错误和疑符的量值。
3.根据权利要求2所述的方法,其中,利用输入数据码元vN-1,...,v1,v0动态地进行疑符多项式和修正校正子多项式的计算。
4.根据前面权利要求1到3的任何一项所述的方法,其中,通过叠代更新系数Si,i=0,1,...,M-1以如下的形式计算校正子多项式,
S ( x ) = Σ i = 0 N - 1 v i + Σ i = 0 N - 1 v i α i x + Σ i = 1 N - 1 v i α 2 i x 2 + . . . + Σ i = 0 N - 1 v i α ( M - 1 ) i x M - 1
= S 0 + S 1 x + S 2 x 2 + . . . + S M - 1 x M - 1
从而,在新码元vn正在到达的每个码元时钟j上,计算位置n的幂αn和以如下方式更新系数:
Si,j=Si,j-1+vnαin,i=0,1,...,M-1其中Si-1=0。
5.根据前面权利要求1到3的任何一项所述的方法,其中,通过叠代更新如下多项式,动态计算疑符多项式:
Γ ( x ) = Π i = 1 p - 1 ( 1 - α j i x )
= Γ 0 + Γ 1 x + Γ 2 x 2 + . . . + Γ p x p
从而,在新到达码元被标记成疑符的每个码元时钟ji上进行更新,计算疑符位置ji的幂
Figure FSB00000319619400025
和以如下方式更新多项式:
Γ j ( x ) = Γ j - 1 ( x ) · ( 1 - α j i x ) = ( Γ 0 , j - 1 + Γ 1 , j - 1 x + . . . + Γ p , j - 1 x p ) ( 1 - α j i x ) .
6.根据前面权利要求1到3的任何一项所述的方法,修正的校正子多项式的动态计算是通过如下步骤进行:
-预置多项式Г-1(x)=1;T-1(x)=0;
-在每个码元时钟上获取一个码元vn
-在码元时钟内的第一系统时钟上计算:
T . ( x ) = T j - 1 ( x ) + v n ( 1 + ( α n + Γ 1 , j - 1 ) x + ( α 2 n + α n Γ 1 , j - 1 + Γ 2 , j - 1 ) x 2 + . . .
+ Σ i = 0 M - 1 α ni Γ M - 1 - i , j - 1 x M - 1 )
Γ.(x)=Γj-1(x)
-确定vn是否是疑符;
-如果是:在码元时钟内的第二系统时钟上计算:
Tj(x)=T.(x)(1-αnx)
Гj(x)=Γj-1(x)(1-αnx)
-如果不是:利用
Tj(x)=T.(x)
Γj(x)=Γ.(x)。
7.根据前面权利要求1到3的任何一项所述的方法,在输入码元被标记成疑符的情况下,修正的校正子多项式的计算牵涉到以如下形式的动态更新步骤:
Tn(x)=Tn-1(x)(1-αnx)+vnΓn-1(x),其中Γ-1(x)=1。
8.根据前面权利要求1到3的任何一项所述的方法,修正的校正子多项式是通过如下步骤动态计算的:
-预置多项式Г-1(x)=1;T-1(x)=0;
-在每个码元时钟上获取一个码元vn
-确定vn是否是疑符;
-如果是:计算:
Tj(x)=Tj-1(x)(1-αnx)+vnΓj-1(x)
Γj(x)=Γj-1(x)(1-αnx);
-如果不是:计算
T j ( x ) = T j - 1 ( x ) + v n ( 1 + ( α n + Γ 1 , j - 1 ) x + ( α 2 n + α n Γ 1 , j - 1 + Γ 2 , j - 1 ) x 2 + . . .
+ Σ i = 0 M - 1 α ni Γ M - 1 - i , j - 1 x M - 1 )
Гj(x)=Гj-1(x)。
9.一种里德-索洛蒙码字解码器,包括:寄存器,加法器,乘法器以及切换器,用于通过在码字的新数据码元正在到达的每个码元时钟上叠代更新所述码字的校正子多项式、疑符多项式和修正的校正子多项式的系数,并行地计算所述码字的校正子多项式、疑符多项式和修正的校正子多项式,以便在码字的最后一个码元的系数更新已经完成之后,直接获得码字的所述校正子多项式、疑符多项式和修正的校正子多项式。
CN038104032A 2002-05-08 2003-05-06 软判定解码里德-索洛蒙码的方法 Expired - Fee Related CN1653699B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02010430 2002-05-08
EP02010430.3 2002-05-08
PCT/EP2003/004689 WO2003096546A2 (en) 2002-05-08 2003-05-06 A method of soft-decision decoding of reed-solomon codes

Publications (2)

Publication Number Publication Date
CN1653699A CN1653699A (zh) 2005-08-10
CN1653699B true CN1653699B (zh) 2011-06-15

Family

ID=29414677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038104032A Expired - Fee Related CN1653699B (zh) 2002-05-08 2003-05-06 软判定解码里德-索洛蒙码的方法

Country Status (8)

Country Link
US (1) US7353449B2 (zh)
EP (1) EP1502356B1 (zh)
JP (1) JP4134029B2 (zh)
KR (1) KR100970223B1 (zh)
CN (1) CN1653699B (zh)
AU (1) AU2003239834A1 (zh)
DE (1) DE60309857T2 (zh)
WO (1) WO2003096546A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328395B1 (en) 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US8171368B1 (en) * 2007-02-16 2012-05-01 Link—A—Media Devices Corporation Probabilistic transition rule for two-level decoding of reed-solomon codes
US8286060B2 (en) * 2008-07-30 2012-10-09 Lsi Corporation Scheme for erasure locator polynomial calculation in error-and-erasure decoder
EP2194648A1 (en) * 2008-12-03 2010-06-09 Electronics and Telecommunications Research Institute MPE-FEC RS decoder and decoding method thereof
RU2009116361A (ru) * 2009-04-30 2010-11-10 ЭлЭсАй Корпорейшн (US) Декодер кодов рида-соломона с мягким решением на основе декодера кодов рида-соломона с исправлением ошибок и стираний
US8365053B2 (en) * 2009-05-27 2013-01-29 International Business Machines Corporation Encoding and decoding data using store and exclusive or operations
US8473826B1 (en) 2009-08-12 2013-06-25 The United States Of America As Represented By The Secretary Of The Navy Hybrid soft decision hard decision reed solomon decoding
US8296634B2 (en) * 2010-02-27 2012-10-23 I Shou University Error correction decoder, error correction value generator, and error correction system
CN101834617B (zh) * 2010-06-01 2013-03-27 福建新大陆电脑股份有限公司 一种rs纠错码解码器
CN102655443B (zh) * 2011-03-04 2016-11-02 上海华虹集成电路有限责任公司 修正欧几里德算法的部分并行实现装置
US8977938B2 (en) * 2013-02-08 2015-03-10 Altera Corporation Parallel decomposition of Reed Solomon umbrella codes
US10608676B2 (en) * 2017-06-27 2020-03-31 Intel Corporation Bit-alignment testing for obtaining FEC code lock
CN115906898A (zh) * 2023-02-23 2023-04-04 青岛创新奇智科技集团股份有限公司 DataMatrix码的解码方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304994B1 (en) * 1997-09-25 2001-10-16 Samsung Electronics Co., Ltd. Reed Solomon decoder and decoding method utilizing a control signal indicating a new root for an initial error locator polynomial with respect to new erasure information
US6347389B1 (en) * 1999-03-23 2002-02-12 Storage Technology Corporation Pipelined high speed reed-solomon error/erasure decoder

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868828A (en) * 1987-10-05 1989-09-19 California Institute Of Technology Architecture for time or transform domain decoding of reed-solomon codes
US5280488A (en) * 1990-11-08 1994-01-18 Neal Glover Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
US5537426A (en) * 1992-05-29 1996-07-16 Goldstar Co., Ltd. Operation apparatus for deriving erasure position Γ(x) and Forney syndrome T(x) polynomials of a Galois field employing a single multiplier
US5379305A (en) * 1992-07-20 1995-01-03 Digital Equipment Corporation Error correction system with selectable error correction capabilities
US5517509A (en) * 1993-03-31 1996-05-14 Kabushiki Kaisha Toshiba Decoder for decoding ECC using Euclid's algorithm
KR960032208A (ko) * 1995-02-07 1996-09-17 구자홍 리드-솔로몬 디코더
US5715262A (en) * 1995-07-12 1998-02-03 Lsi Logic Corporation Errors and erasures correcting reed-solomon decoder
US6511280B1 (en) * 1996-05-21 2003-01-28 Motorola, Inc. Adaptive Reed-Solomon decoder and methods thereof
FR2751810B1 (fr) 1996-07-23 1998-10-23 Sgs Thomson Microelectronics Systeme de correction d'erreurs dans des trames de donnees ayant des codes de parite horizontaux et verticaux
US5991911A (en) * 1997-11-14 1999-11-23 Cirrus Logic, Inc. Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
FR2776115B1 (fr) 1998-03-13 2000-07-21 Thomson Multimedia Sa Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif
US6449746B1 (en) * 1998-08-17 2002-09-10 T. K. Truong Decoding method for correcting both erasures and errors of reed-solomon codes
KR100611956B1 (ko) * 1999-08-19 2006-08-11 삼성전자주식회사 에러 정정 방법과 장치
EP1370003A1 (en) * 2002-06-07 2003-12-10 Deutsche Thomson-Brandt Gmbh Reed-Solomon Decoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304994B1 (en) * 1997-09-25 2001-10-16 Samsung Electronics Co., Ltd. Reed Solomon decoder and decoding method utilizing a control signal indicating a new root for an initial error locator polynomial with respect to new erasure information
US6347389B1 (en) * 1999-03-23 2002-02-12 Storage Technology Corporation Pipelined high speed reed-solomon error/erasure decoder

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dong-Sun Kim et al.implementation of high speed reed-solomon decoder.《proc. of 42nd midwest symposium on circuits and systems》.1999,全文. *

Also Published As

Publication number Publication date
WO2003096546A2 (en) 2003-11-20
JP4134029B2 (ja) 2008-08-13
US20050166126A1 (en) 2005-07-28
DE60309857T2 (de) 2007-04-19
WO2003096546A3 (en) 2004-02-05
KR100970223B1 (ko) 2010-07-16
AU2003239834A8 (en) 2003-11-11
KR20040104702A (ko) 2004-12-10
AU2003239834A1 (en) 2003-11-11
DE60309857D1 (de) 2007-01-04
US7353449B2 (en) 2008-04-01
CN1653699A (zh) 2005-08-10
EP1502356B1 (en) 2006-11-22
EP1502356A2 (en) 2005-02-02
JP2005525040A (ja) 2005-08-18

Similar Documents

Publication Publication Date Title
US6374383B1 (en) Determining error locations using error correction codes
CN1653699B (zh) 软判定解码里德-索洛蒙码的方法
US7406651B2 (en) Forward Chien search type Reed-Solomon decoder circuit
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US5517509A (en) Decoder for decoding ECC using Euclid's algorithm
US7096409B2 (en) Reed-solomon decoder and decoding method for errors and erasures decoding
US8458560B2 (en) Systems and methods for efficient parallel implementation of burst error correction codes
JPH0831803B2 (ja) 誤り訂正のための方法と装置
US7051267B1 (en) Efficient high-speed Reed-Solomon decoder
US7823050B2 (en) Low area architecture in BCH decoder
JP3201996B2 (ja) リード−ソロモン復号器及びその復号方法
US5805616A (en) Circuit of calculating errata locator and evaluator polynomial, calculating method thereof and reed-solomon decoder using the same
US7613988B1 (en) Degree limited polynomial in Reed-Solomon decoding
US20100174970A1 (en) Efficient implementation of a key-equation solver for bch codes
US6859905B2 (en) Parallel processing Reed-Solomon encoding circuit and method
US7693927B2 (en) Data processing system and method
US20100115381A1 (en) Error correction of an encoded message
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
JP3233502B2 (ja) 復号化装置
KR100226837B1 (ko) 디지털 티브이의 에러 정정 장치
US7222287B2 (en) Decoder, error position polynomial calculation method, and program
JPH047847B2 (zh)
Chang et al. A low complexity Reed-Solomon architecture using the Euclid's algorithm
KR100247075B1 (ko) 리드솔로몬 디코더에 있어서 고속시리얼 에러타위치 다항식 계산회로
Yoo et al. Energy-efficient Key-equation Solving Algorithm for BCH Decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110615

Termination date: 20170506

CF01 Termination of patent right due to non-payment of annual fee