专利名称:大冗余度代数分组码的译码的制作方法
技术领域:
本发明属通信技术领域,旨在为Reed-Solomon码的译码,特别为空间数据系统咨询委员会(CCSDS)制订的空间数据系统远距离信道标准码RS(255,223)和美国国家标准局(ANS)制订的国际光盘用户数据纠错编码RS(122,106)等一类大冗余量的Reed-Solomon码的译码提供低平均迭代次数的译码方法。
在空间通信和光盘存储技术中,大冗余量的Reed-Solomon码已被列入国际标准编码规范,因而译大冗余度Reed-Solomon码的方法更为大家所关注,但至今仍沿用Berlekamp-Massey(B-M)发明的迭代算法。B-M算法是译Reed-Solomon码的普适方法,其可行性不受编码冗余量的限制,但不足之处在于1.校验子计算不能与编码合用一个电路,2.不论错型中所含错位多寡,译每个错型的迭代次数都等于译含错位最多的错型所需的迭代次数。这些(特别是2.)严重的阻碍了译码复杂度的降低。1981年,C.L.Chen曾提出补救措施,以使迭代次数随接收字中所含错位个数而异<IEEE.IT.Vol.27,254-256,1981>,终因判决条件复杂未臻实用。1986年,L.Welch和E.R.Berlekamp(W-B)提出译Reed-Solomon码新迭代算法<U.S.Patent,№ 4633470>,该算法给出了系统Reed-Solomon码情况下接收字C′(x)的校验子多项式r(x)的明显表达式,由此提出直接以错型的校验子多项式r(x)的系数(而不再是如B-M迭代算法中多项式的值)作为迭代标杆的寻求错位定位多项式W(x)的迭代算法。算法的突出优点是校验子计算能和编码计算合用一个电路,但仍未摆脱“不论错型中所含错位多与少,迭代步数都一个样”这个严重缺点。究其原因在于它仍同B-M迭代一样都致力集中于寻找一个能包含全部错位的错位定位多项式,如此,迭代次数必然为2t次(2t为编码的冗余量,在系统编码时,即为冗余位数),更由于迭代过程的中间多项式由B-M迭代时的一个增为四个,增加了复杂度,在译前述的大冗余量的Reed-Solomon码时尤其如此,因此,难以进入实用。
本发明的目的就是为大冗余量的Reed-Solomon码提供一种能降低平均译码运算复杂度的译码方法。
本发明以W-B方法为起点,但改变迭代的目标,不以寻找含错型中全部错位的错位定位多项式为迭代的目标,而致力于以寻求本发明所提出的包含信息区中错位的不完全错位定位多项式,进而确定错位定位多项式并确定错值。本方法的特点是译含错误数据的接收字所需的迭代次数与其所含错型发生的概率成反比,如此达到低的平均迭代次数,在对译大冗余量的Reed-Solomon码时,将大幅度地降低运算复杂度。
设RS(n,n-2t)为有限域GF(q)上码长n,冗余位数2t的Reed-Solomon码(系统编码),其生成多项式G(x)为G(x)=(x-αl+1)(x-αl+2)…(x′-αl+2t),α为GF(q)的本原元素,l为任意整数,(常取l使G(x)成为倒数多项式,即具有对称系数的多项式)。相应于G(x)的辅助多项式g(x)及辅助函数为g(x)=G(x)/(x-αl+1)=Πl+2tl+2(x-αi)=∑2t-1i=0gixi,f(x)=x-(l+1)∑2t-1k=0(gkα(l+2)k)/(αk-x),设C(x)∈RS(n,n-2t)为发送字,C′(x)=C(x)+E(x)为接收字,E(x)=Στi=1Yixli为错型,xQi为错位,Yi为xei上的错值,从而E(x)的定位多项式W(x)为IIτi=1(x-ali)。C′(x)的校验子多项式r(x)为r(x)=C′(x)(mod G(x))=E(x)(mod G(x)=∑2τ-1i=0rixi,它是接收方最初能经简单运算获得的关于错型E(x)的信息,译码任务就是要从所得的r(x)推出荫含在C′(x)中的错型E(x)。通常步骤是1.先由r(x)求出错型定位多项式W(x)而定出出错位置,2.再求出每个出错位置上的错值。τ≤t时E(x)可求得,B-M迭代算法和W-B迭代算法都是求错位多项式的普适方法,其中W-B迭代算法步骤如下(US.Pat.4633470)g(x)以及f(x)意义如前,对接收字C′(x)计算得校验子r(x)=∑2t-1i=0rixi。初始化中间多项式M(O)(x),W(O)(x),N(O)(x),V(O)(x)为1,1,0,0;RUNStep 1.对k,0<k<2t-1,计算迭代偏差ak,ak=αkgkN(K)(αk)-rkW(K)(αk),若ak=0,取bk=1,转入step 2;,否则,作bk,bk=αkgkM(K)(αk)-rKW(K)(αK),转入step 2;
Step 2.检查deg(aKM(K)(x))<deg(bKW(K)(x))?若是,转入Step 3;不然,转入step 4;
Step 3.N(k+1)(x)←bkN(k)(x)-aKM(K)(x),M(k+1)(x)←(x-αk)M(k)(x),W(k+1)(x)←bkW(k)(x)-akV(k)(x),V(k+1)(x)←(x-αk)V(k)(x);
Step 4.N(k+1)(x)←(x-αk)N(k)(x),M(k+1)(x)←akM(k)(x)-bkN(k)(x),W(k+1)(x)←(x-αk)W(k)(x),V(k+1)(x)←akV(k)(x)-bkW(k)(x);
Step 5.检查deg(W(k+1)(x)≥t+1?若是,接收字含有不可纠错型,拒纠;
不然,检查k+1<2t?若是,k←(k+1),返回Step 1,进入新一轮迭代;不然,迭代终止,W(k+1)(x)就是所求的错位定位多项式;
Step 6.解W(k+1)(x)=0,记信息区内的解Xj=alj,Xj上错值Yj即为Yj=f(Xj)N(k+1)(Xj)/W(k+1),(Xj)。
对任何错型依W-B方法决定其错位多项式所需的迭代次数是固定的,即编码的冗余位数-2t,但若按本发明提出的只求能包含信息区内错位而并不讲求含冗余区内全部错位的不完全错位定位多项式,则可缩短迭代次数,使之与错型所含错位的个数成正比,或者说与错型出现概率成反比,且错位上的错值也可提前决定,如此纠错译码的平均迭代次数就会大幅度降低,分析如下设含错位数τ的错型E(x),E(x)=Σλj=1Zxmjj+ΣMj=1Yxljj---(1)]]>λ为错型在冗余区中错位数,μ为在信息区中错位数(0≤m1<m2…<mλ<2t≤l1<l2<…<lμ,λ+μ=τ),定位多项式W(x),W(x)=IIλj=1(X-αmj)IIlMj=1(x-αlj)]]>,其错型校验多项式为r(x)=E(x)(mod G(x))=∑2t-1i=0rixi,ri=Σλj=1Zjδimj+aigi(ΣMj=1(Yj/(f(alj)(ai-alj)))----(2)]]>式中δij为计数标δij=0,i≠j,δij=1,i=j。今联系另一个Reed-Solomon码考察前2τ个ri。设RS′(n,n-2τ)为GF(q)上码长为n,冗余位数为2τ(τ<t)的Reed-Solomon码(系统编码),其生成多项式G′(x)为G′(x)=(x-αl+1)(x-αl+2)…(x-αl+2τ),相应的辅助多项式g′(x)及辅助函数f′(x)分别为g′(x)=G′(x)/(x-αl+1)=∏2τi=2(x-αl+i)=∑2τ-1i=0g′ixi,f′(x)=x-(l+1)∑2τ-1k=0(g′kα(l+2)k)/(αk-x),暂设错型E(x)的冗余区中最高错位xjm中jm≤2τ-1,(即冗余区中的错位全落入前2τ个位置中)。今对i=0,1,…,2τ-1时,整理(2)中ri如下ri=-aigi(Σλj=1(Zjδimj)/(aigi))+aigi(ΣMj=1(Yj/(f(alj)(ai-alj)))]]>=aigi(Σλj=1(Zjg′mj/gmj)δimj)/(aig′i))]]>+Σj(Yf′j(alj)/f(alj)/f′(alj)(ai-alj))).---(3)]]>今从RS′(n,n-2τ)的角度,构造如下错型E′(x),E′(x)=Σλj=1(Zjg′mj/gmj)xmj+ΣMj=1(f′(alj)/f(alj))Yjxlj,---(4)]]>
于是E′(x)的校验多项式r′(x)=∑ r′x的系数为r′i=aig′i(Σj(Zjg′mj/gmj)δimj)/(aigi′))]]>+Σj(Yjf′(alj)/f(alj)/f′(alj)(ai-alj))).---(5)]]>由r′i出发依W-B迭代算法获得定位多项式W’(x)=IIλj=1(x-aλj)只需2τ次迭代,但可证明一个重要的事实在W-B迭代中,迭代偏差ak、bk的计算,转向条件“deg(akM(k)(x))<deg(bkW(k)(x))?”的确定,以及中间多项式M(k)(x)、N(k)(x)、W(k)(x)和V(k)(x)的形成,本质上只决定于校验子多项式ri表达式(通式)中最外层括号内的量
而该通式的系数αigi只出现在中间多项式的系数中,且分别以乘积ai1gi1ai2gi2…aisgis的形式作为W(k)(x)和N(k)(x)的系数,以乘积aj1gj1aj2gj2…ajmgjm的形式作为M(k)(x)和V(k)(x)的系数,(s+m=k;i1,i2..,j1,j2,....,互不相等)。现在错型(1)关于RS(n,n-2t)的校验子多项式系数中的2τ个ri通式括号内的量与错型E′(x)关于RS′(n,n-2τ)的校验子多项式的系数r′通式括号内的量一致,因而由r′i出发关于RS′(n,n-2τ)所作的旨在寻求错位定位多项式W′(x)的迭代等效于由ri出发关于RS(n,n-2t)所作的前2τ次迭代W(2τ)(x)=AW′(x),N(2τ)(x)=AN′(x), (6)式中A=(g'i1g'i2…g'is)/(gi1gi2…gis),但ali为W′(x)=0的解,且只有这些解属于RS(n n-2t)的信息区,由(6)它们也是W(2τ)(x)=0的解,因而在RS(n,n-2t)的信息区内求解W(2τ)(x)=0就能决定错型E(x)在信息区的错位,此说明W(2τ)(x)就是错型E(x)的不完全定为多项式,它经2τ次迭代而得,此外在关于RS′(n,n-2τ)计算错型E′(x)在信息区错位上的错值f'(alj)/f(alj))Yj时,依W-B算法(step 6)应得f'(alj)N'(alj)/W"(alj),(W″(x)是W′(x)的导函数),于是有Yj=f(alj)N(2τ)(alj)/W(2τ),(alj)。
此说明以码RS(n,n-2t)担任纠错码时,对重量为τ的错型(1),在冗余区中错位全落在前2τ个位置情况,依W-B算法经2τ次迭代,即可获得它的不完全定位多项式W(2τ)(x),在求得错型在信息区中的错位后,还可直接计算错位上的错值,此外不完全定位多项式的次数等于τ。
若E(x)在RS(n,n-2t)冗余区的错位并非全落入前2τ位置,(m>2τ-1),仍成立以上结论,但此时不完全定位多项式次数等于τ′<τ,τ-τ′即为错型E(x)在冗余区中的错位xlj落在2τ个位置外的数目。因此有结论
“若E(x)=Σλj=1Zjxmj+ΣMj=1Yjxlj为接收字C′(x)中的重量(错位个数)为τ的错型,C′(x)=C(x)+E(x),C(x)∈RS(n,n-2t),r(x)=∑2t-1i=0rixi为E(x)的校验多项式,则a).依W-B迭代经2τ后所得的W(2τ)(x)即为E(x)的不完全错位定位多项式,b).deg(W(2τ)(x))≤τ,c).Yj=f(alj)N(2τ)(alj)/W(2τ),(alj),alj为W(2τ)(x)在信息区的根”。
同样的推理过程,可得如下更一般的结论“对RS(n,n-2t)而言,若一可纠错型E(x),(WtE(x)≤t),落在冗余区中的前2τ+2h,(h≤t-τ),个位置中的错位和落在信息区中的错位个数≤τ,则依W-B迭代算法的第2τ+2h轮所得的W2(τ+h)(x)的次数≤τ,且W2(τ+h)(x)在信息区内的根alj,j=1,2,..,m≤τ,就是错型E(x)在信息区中的全部错位,此外其上的错值Yj可由计算Yj=f(alj)N2(τ+h)(alj)/W2(τ+h)/(alj)而得”。
据此,依W-B算法为含错型E(x)的接收字C′(x)纠错时,在第2(τ+h)步迭代获得中间多项式W2(τ+h)(x),N2(τ+h)(x),M2(τ+h)(x),V2(τ+h)(x)后,(τ∈{1,2,..,t-h,h=1,2,..}),加入依上述结论所写的适当的判断,可获得不完全错位定位多项式,进而提前获得错型在信息区内的全部错位和其上的错值以至冗余区内的错位和其上的错值,新算法如下对中间多项式初始化M(O)(x)=W(O)(x)=1,N(O)(x)=V(O)(x)=0;
第一步按W-B方法,得第K+1次迭代中间多项式N(k+1)(x),W(k+1)(x),M(k+1)(x),V(k+1)(x);
第二步检查deg(W(k+1)(x))≤t?若否,接收字含不可纠错型,迭代终止;
若是,检查k+1为奇数?,若是,回到第一步,进入新一轮迭代,不然,进入下一步;
第三步检查deg(W(k+1)(x))≤(k+1-2h)/2?若否,回到第一步,进入新一轮迭代;若是,暂停迭代,求W(k+1)(x)=0在信息区中的解,得al1,al2,,,,,alm,进而计算Yj=f(alj)N(K+1)(alj)/W(K+1)/(alj),及F(x)=r(x)-Σmj=1Yj(xlj)(mod G(x));
第四步判别Wt(F(x))≤t-m?,若否,返回第一步,继续下一轮迭代;若是,W(k+1)(x)即为错型E(x)的不完全错位定位多项式,而待求的E(x)即为E(x)=r(x)·-Σmj=1Yj(xlj)(mod G(x))+Σmj=1Yjxlj;
(注W(f(x))为多项式f(x)的重量函数,即f(x)的非另系数个数)第五步计算C(x)=C′(x)-E(x),C(x)即为纠正后的发送字,迭代结束。
依本算法,为决定错位个数为i的错型E(i)的不完全多项式W′(x)所需的迭代次数至多为2(i+h),此外,尚有一部分错位数大于i的可纠错型的不完全定位多项式也能在2(i+h)次迭代以内获得。因此如记错型E(i)出现的概率为P{E(i)},则寻求不完全定位多项式所需平均迭代数L<∑t-h-1i=1P{E(i)}2(i+h)+∑tτ=t-hP{E(τ}
τ。
如上所述,本迭代算法的第三步中不等式deg(W(K+1)(x))≤(k+1-2h)/2为暂停迭代的条件,而第四步中的不等式“Wt(F(x))≤t-m”实为使W(k+1)(x)为不完全定位多项式的充要条件,如不等式不成立,需撤销暂停,转入下一步迭代,但对错位数等于τ的错型,该条件肯定成立,因而这种判决失败而导致返工必须继续迭代的概率Rτ为Rτ< ((Pr{E(x),Wt(E(x))>(τ+h)}))/((Pr{E(x),Wt(E(x))>(τ+h)}Pr{E(x),Wt(E(x)=τ)})=(Σi>τ+hCinPi(1-P)n-i)/(Σi>τ+hCinPi(1-P)n-i+CτnPτ(1-P)n-τ),这是本算法的代价,适当增大h,可使Rτ为合理的微小值。h取值因信道误码率P和码长n而变,合格信道(如国际远程通信标准和国际光盘标准规定信道误码率P≤10-3)和较短的码长h取值就小,取为1,2即成,恶劣、不合格信道,h值就大。
图1就是实现所述的寻找不完全定位多项式的工作流程。由于校验子ri的最外层的系数αigi在形成中间多项式M(k)(x)、N(k)(x)、W(k)(x)和N(k)(x)以及转向条件“deg(akM(k)(x))≤deg(bkW(k)(x))?”时,只起齐次系数的作用,因而在图中以ri=ri/αigi替代。
图2为“Wt(r(x)-ΣjYj(xlj)(mod G(x)))≤t-m ”的判决电路,它使该判决得以避开冗繁的求模运算(xlj)(mod G(x))而高速地完成。图中在一ROM中存放预先计算好求模运算“xlj(mod G(x)),i=0,1,....,n-2t-1,”结果的系数{mij},组成地址/内容逻辑只读电路,在地址(i)控制下,只读地输出mij,j=0,1,..,2t-1,与Y(错位x上的错值)相乘后进入累加电路∑j,待地址(i)执行完τ次后,累加器的输出(∑j)j=0,1,..,2t-1,与rj相加进入比较电路∑2t-1j=0((∑j)+rj≠0))·1≤t-m?最后输出逻辑值“是”、“否”。
例F上的RS(255,223)的生成多项式G(x)=∏143i=112(x-αi)=∑32i=0Gixi,(α8+α5+α3+α2+1=0),Gi=αli
取效率调节h=1,则有如下的迭代
今W(4)(x)=α113(x-α32),deg(W(4)(x))=1≤1,迭代暂停。在信息区内解方程W(4)(x)=0,得X=α32,计算f(X),Y(X),r(x)-Y(X)(mod G(x))f(X)=f(α32)=α113,Y(X)=Y(α32)=α100,r(x)-Yx32(mod G(x))=α4x4+α6x6+α8x8+α10x10+α12x12+α14x14+α16x16+α18x18+α20x20+α22x22+α24x24+α26x26+α28x28+α30x30+α31x31,因Wt(r(x)-Yx32(mod G(x)))=15≤t-m,所以W(4)(x)就是不完全定位多项式,从而r(x)-Yx32(mod G(x))+Yx32就式接收字C′(x)中的错型E(x)E(x)=α4x4+α6x6+α8x8+α10x10+α12x12+α14x14+α16x16+α18x18+α30x30+α20x20+α22x22+α24x24+α26x26+α28x28+α31x31+α100x32,迭代结束。
若依W-B迭代,32次后方获得错位定位多项式W(x)=W(32)(x),W(32)(x)=α0x16+α238x15+α17x14+α21x13+α110x12+α224x11+α179x10+α214x9+α163x8+α150x7+α35x6+α200x5+α204x4+α56x3+α167x2+α55x1+α46x0,它在信息区内只有一个根α32,这与由不完全定位多项式α113(x-α32)所指出的相一致。
仍以本例译RS(255,223)为例评价本方法所需的平均迭代次数L,按国际远程通信标准规定的合格信道标准P≤10-3,取P=10-3,此时(1-p)255=0.772,P{E(1)}=C1255P1(1-P)254=0.193,P{E(2)}=C2255P2(1-P)253=0.024,P{E(3)}=C3255P3(1-P)252=0.007,P{E(4)}=C4255P4(1-P)251=0.0004,……,取调节参数h为1,于是平均迭代次数L和返工迭代概率R分别为L={P{E(1)}(2+2)+P{E(2)}(4+2)+…+P{E(16-1)}2(16-1)+2)+32P{E{16)}},Rτ=(∑i≥τ+2Ci255Pi(1-P)255-i)/(∑i≥τ+2Ci255Pi(1-P)255-i+Cτ255Pτ(1-P)255-τ),(τ=1,2,..,14)代入L、R,得L=5.164,R1=4%,R2=2%,..,迭代运算的复杂度(有限域上自由元素乘法运算次数)与中间多项式次数(degree)平方成正比,因而迭代运算复杂度与迭代次数平方成正比,W-B迭代,要求L=32,因此本算法的迭代复杂度在返工继续迭代概率低于2%的支持下为W-B的(5.164/32)=2.5%。
图一.寻找不完全错位定位多项式的计算流程图二.判别条件“Wt(r(x)-Σmj=1Yjxlj(mod G(x)))≤t-m ”计算电路
权利要求
1.一种译Reed-Solomon码的方法,其特征在于以旨在获得含待纠错型中落在信息区内错位的不完全错位定位多项式的迭代计算,代替传统方式的寻求含错型中全部错位的定位多项式的迭代计算;进而由所述的不完全错位定位多项式求得错型在信息区内的错位和其上的错值,最后求得编码冗余区内的错位和其上的错值。
2.如权利要求1所述的译Reed-Solomon码的方法,其特征在于,具体迭代计算步骤如下对中间多项式初始化M(O)(x)=W(O)(x)=1,N(O)(x)=V(O)(x)=0;第一步按W-B方法,求得第k+1次的中间多项式N(k+1)(x),W(k+1)(x),M(k+1)(x),V(k+1)(x);第二步检查deg(W(k+1)(x))≤t?若否,接收字含不可纠错型,迭代终止;若是,检查k+1为奇数?,若是,回到第一步,进入新一轮迭代,不然,进入下一步;第三步检查deg(W(k+1)(x))≤(k+1-2h)/2?若否,回到第一步,进入新一轮迭代;若是,求W(k+1)(x)=0在信息区中的解,得al1,al2,,,,,,alm,并计算
第四步判别Wt(F(x))≤t-m?,若否,返回第一步,继续下一轮迭代;若是,W(k+1)(x)即为错型E(x)的不完全错位定位多项式,而待求的E(x)即为E(x)=r(x)-Σj=1mYj(xlj)(modG(x))+Σj=1mY3xlj]]>第五步计算C(x)=C′(x)-E(x),C(x)即为纠正后的发送字,迭代结束。
全文摘要
本发明是一种译Reed-Solomon码的方法,其特征在于以旨在获得含待纠错型中落在信息区内错位的不完全错位定位多项式的迭代计算,代替传统方式的寻求含错型中全部错位的定位多项式的计算,进而由所获的不完全错位定位多项式提前求得错型在信息区内的错位和其上的错值,并导出冗余区内错位和错值。与现有译码方法相比,本发明的迭代次数与所纠错型的发生概率成反比而达到低的平均迭代次数,从而大幅度地降低译码运算复杂度。
文档编号H04L17/26GK1059438SQ91107490
公开日1992年3月11日 申请日期1991年9月19日 优先权日1991年9月19日
发明者忻鼎稼, 吴百峰 申请人:复旦大学