里得-所罗门编码和解码方法

文档序号:7508181阅读:455来源:国知局
专利名称:里得-所罗门编码和解码方法
技术领域
本公开一般涉及生成多项式的纠错编码和解码,更明确地,涉及里得-所罗门编码和错误检测及纠正技术。
背景技术
里得-所罗门编码和解码方案用在诸如人造卫星、调制解调器、音频致密盘、无线电话的许多通信系统中。每个通信系统具有限定里得-所罗门码的参数的不同值集合。里得-所罗门编码器/解码器使用伽罗华域(Galois Field,GF)算术来将通信块映射成较大的块。每个块对应于基于输入块的过分简化的多项式。
当以硬件实现时,里得-所罗门编码器/解码器需要相当大的数目的逻辑门和其它硬件。许多努力针对通过例如并行处理和降低处理的算术表示来降低硬件量。
因为计算复杂度和低功率需求,所以各种通信系统专用的里得-所罗门解码器以专用的硬件块实现。例如,参见,R.E.Blahut的“Theory and practiceof error control codes,”Addison-Wesley,1984;以及S.B.Wicker的“Errorcontrol systems for digital communication and storage,”Prentice Hall,Inc.,1995。本发明的整个编码和解码方法在没有采用伽罗华域多项式除法的情况下以软件实现。同样通过直接求解错误定位和错误量两者所需的系统方程而以软件实现解码方法。

发明内容
本公开的里得-所罗门方法包括将N个零追加到数据块;进行其系数是数据块的数据加上零的多项式(x)=Σi=02n-1αixi]]>的连续Horner约简,该约简产生了多个余数β(i),其中i=0到N-1。将余数β(i)乘以存储在存储器中的对应多项式系数D(i)(x),并且对所有结果得到的乘积求和Σi=0N-1β(i)D(i)(x).]]>该乘积的加和代表作为多项式P(x)被生成多项式g(x)=Πi=0N-1(x+αi)]]>除的结果的多项式的余数系数。将该乘积的加和作为奇偶校验码元追加到数据块以形成码字。以软件执行该方法。
用于对包括数据码元和奇偶校验码元的码字解码的本公开的里得-所罗门解码器方法包括计算作为码字与存储在存储器中的校正子向量的点积的校正子,该校正子向量是多项式Σi=Σk=02n-1xk(αk)i]]>的系数,其中校正子向量的数目i等于码字中奇偶校验码元的数目。如果校正子等于0,则通过仅去除奇偶校验码元来对码字解码。如果校正子不等于0,则通过下述操作校正码字针对错误位置形成并且求解错误定位多项式,针对该位置处的错误量形成并且求解错误量多项式,校正码字中的错误。通过去除奇偶校验码元对码字解码。以软件执行该方法。
当结合附图考虑时由本发明的下述详细描述,本发明的这些和其它方面将变得清楚。


图1是根据本公开原理的里得-所罗门编码器的流程图。
图2是根据本公开原理的里得-所罗门解码器的流程图。
具体实施例方式
编码器一般地,编码器方案通过取出包括数据码元的数据块并且添加奇偶校验码元以产生所谓的码字(codeword)。在里得-所罗门编码系统中,奇偶校验码元是两个多项式除法的余数。
第一多项式P(x)=Σi=02n-1αixi]]>是伽罗华域GF(2n)中长为2n的数据块。第二多项式(x)=Πi=0N-1(x+αi)]]>是GF(2n)中的生成多项式,αj和αi是GF(2n)中的域元素。
为了通过仅使用GF乘法和加法计算GF(2n)中的多项式除法的余数,将方程简化并且将某些部分预先计算或者预先确定并且存储在存储器中。这提供了软件实现并且是可改变或者可重新配置的。
假设Q(i)是数据P(x)与生成多项式g(x)=Πj=iN-1(x+αj)]]>的除法的商对于i=0P(x)x+α0=Q(0)+β(0)x+α0]]>i=1P(x)(x+α0)(x+α1)=Q(1)+β(0)(x+α0)(x+α1)+β(1)x+α1]]>i=2P(x)(x+α0)(x+α1)(x+α2)=Q(2)+β(0)(x+α0)(x+α1)(x+α2)+β(1)(x+α1)(x+α2)+β(2)(x+α2)]]>一般,对于i=N-1P(x)Πi=0N-1(x+αi)=Q(N-1)+β(0)Πi=0N-1(x+αi)+β(1)Πi=1N-1(x+αi)+···+β(N-1)Πi=N-1N-1(x+αi)]]>在简单计算之后上述方程的余数可以写为
系数β(i)是P(x)的连续Horner约简的余数,如表1所示。
表1具有αi的多项式P(x)的连续Horner约简。

预先确定N个多项式D(i)(x)=Πk=0N-i-1(x+αk)]]>并且将之存储在存储器中。将余数系数β(i)乘以来自存储器的对应多项式系数D(i)(x)。所有作为结果得到的乘积的加和Σi=0N-1β(i)D(i)(x)]]>表示多项式的余数系数,其是数据多项式被生成多项式除的除法。
图1中示出了编码方法为向数据追加N个零。接下来,执行P(x)多项式(其是数据块的数据加上零的系数)的Horner约简。然后,将约简的余数乘以存储在存储器中的对应多项式系数D(x)以便计算余数多项式系数。将余数多项式系数追加到初始数据以形成码字。
具体示例如下RS(256,240)是包括240个数据码元和16个奇偶校验码元的长为256的码字。
生成多项式g(x)的给定系数为1,59,13,104,189,68,2O9,30,8,163,65,41229,98,50,36,59生成多项式g(x)的给定根{αi}为1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38结果得到的预先计算和存储的D(i)(x)多项式系数为
11 11 321 714 81 15 54 120 641 31 198 63 147 1161 63 1213 32 227 381 127 122 154 164 11 68 1171 255 11 80 54 239 173 200 241 226 207 158 245 235 164 232 197 371 216 194 159 111 199 94 95 113 157 1931 172 130 163 50 123 219 162 248 144 116 1601 68 119 67 118 220 31 784 92 127 213 971 137 73 227 17 177 17 52 13 46 43 83 132 1201 14 54 114 70 174 151 43 138 195 127 166 210 234 1631 29 196 111 163 112 24 10 106 105 139 132 151 32 134 26追加了16个零的P(x)的数据为131,244,241,21,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0由P(x)的连续Horner约简的余数系数{β(i)}为213,60,145,132,17,44,214,94,5,26,13,78,185,165,215,97在D(i)(x)和{β(i)}的伽罗华乘积和加和之后,奇偶校验码元为97,94,173,51,172,26,65,42,149,22,149,229,37,55,117,61将奇偶校验码元追加到数据块上并且码字为131,244,241,21,70,97,94,173,51,172,26,65,42,149,22,149,229,37,55,117,61解码器所接收的码字表示为C(x)=Σi=0n-1cixi]]>不是通过解码所接收的码字的数据部分并且比较奇偶校验位和所接收的奇偶校验位来检查码字的有效性,解码通过计算校正子(syndrome)直接开始,如图2所示。
下述公式描述了校正子的计算Si=CT∑ii=(1,2...N-1)其中C是向量,其项是码字多项式C(x)的系数,以及∑i是校正子向量,其项是下述多项式的系数
Σi=Σk=02n-1xk(αk)i]]>其中,校正子向量的数目N等于码字中奇偶校验码元的数目,以及每个校正子向量的大小(size)等于码字的大小。校正子向量也存储在存储器中。
如果校正子等于0,则仅通过去除奇偶校验码元来解码码字,并且终止解码处理。如果校正子不等于0,则通过对于错误位置形成并且求解错误定位多项式、对于错误位置处的错误量形成并且求解错误量多项式、校正码字中的错误而校正码字。通过从所接收的(被损坏的)码字中减去(与GF中的加相同)错误向量而校正码字错误。通过去除奇偶校验码元而解码码字。图2中示出了该过程。同样,使用Peterson-Gorenstein-Zierler方法以软件执行解码算法。
在校正子不同于零的情况下的该处理的示例包括形成校正子矩阵方程S0S1S2···SN2-2SN2-1S1S2S3···SN2-1SN2S2S3S4···SN2SN2+1··················SN2-2SN2-1SN2···SN-2SN-1SN2-1SN2SN2+1···SN-3SN-2ΛN2-1ΛN2-2ΛN2-3··Λ1Λ0=SN2SN2+1SN2+2SN-2SN-1]]>在前面的方程中,Λi是错误定位多项式的系数。
在GF中,通过使用高斯约简可以容易地将所扩展的系统矩阵转换成上三角形式,从而通过这种方式避免了矩阵求逆。
1Ξ1Ξ2···ΞN2-1ΞN2-101Ξ3···ΞN2-1ΞN2001···ΞN2ΞN2+1··················000···1ΞN-1000···01·ΛN2-1ΛN2-2ΛN2-3··Λ1Λ0=ΞN2ΞN2+1ΞN2+2ΞN-2ΞN-1]]>系统的秩是欧几里得迹。现在,可以轻易求解系统方程Λ0=ΞN-1,Λ1=ΞN-1Λ0+ΞN-2,等等。
使用Chien搜索求解错误定位多项式Λ(x)=Σi=0mΛixi.]]>错误定位多项式的求解的逆表示错误的位置,其中m等于或者小于N/2。
使用错误量系统方程计算m个错误的错误量1Λi01Λi1···1Λim-11Λi021Λi12···1Λim-12·········1Λi0m1Λi1m···1Λim-1im-1ei0ei1··eim-1=S0S1··Sm-1]]>以与错误定位多项式类似的方式求解错误量多项式,结果得到错误量eij,ij=1,2...m-1具体示例如下计算得到的校正子为1,33,131,24,136,153,216,49,234,81,233,87,70,166,106,55所形成的扩展上三角错误定位系统矩阵为
1 33 131 24 136 153 216 49 2340 1 30 44 204 95 222 151 440 0 180 44 105 181 142 180 0 01 127 71 56 118 170 0 00 1226 77 213 1390 0 00 01214 176 280 0 00 00176 210 0 00 0001246误差定位多项式的求解为246,66,232,128,185,202,17,25以及错误为1,2,3,4,5,6,20,21尽管详细描述和说明了本公开,但是应清楚理解,这仅是作为说明和示例完成的而不应作为限制。本公开的范围仅由所附权利要求来限定。
权利要求
1.一种里得-所罗门编码器方法,包括将N个零追加到数据块;执行其系数是数据块的数据加上零的多项式P(x)=Σi=02n-1aixi]]>的连续Horner约简,该约简产生了多个余数β(i),其中i=0到N-1;将余数β(i)乘以存储在存储器中的对应多项式系数D(i)(x),并且对所有结果得到的乘积求和Σi=0N-1β(i)D(i)(x),]]>该乘积的加和代表作为多项式P(x)被生成多项式g(x)=Πi=0N-1(x+αi)]]>除的结果的多项式余数系数;将该乘积的加和作为奇偶校验码元追加到数据块以形成码字。
2.如权利要求1所述的方法,其中,以软件执行该方法。
3.一种包括执行如权利要求1所述的方法的解码器的通信设备。
4.一种用于对包括数据码元和奇偶校验码元的码字解码的里得-所罗门解码器方法,该方法包括计算作为码字与存储在存储器中的校正子向量的点积的校正子,该校正子向量是多项式Σi=Σk=02n-ixk(αk)i]]>的系数,其中校正子向量的数目i等于码字中奇偶校验码元的数目;如果校正子等于0,则通过仅去除奇偶校验码元来对码字解码;以及如果校正子不等于0,则通过下述操作校正码字针对错误位置形成并且求解错误定位多项式,针对该位置处的错误量形成并且求解错误量多项式,校正码字中的错误,通过去除奇偶校验码解码。
5.如权利要求4所述的方法,其中以软件执行该方法。
6.如权利要求4所述的方法,其中该校正子向量的大小等于码字的大小。
7.一种包括执行如权利要求4所述方法的解码器的通信设备。
全文摘要
一种里得-所罗门编码器方法(图1)包括将N个零追加到数据块;执行其系数是数据块的数据加上零的多项式P(x)的连续Horner约简。将余数α(i)乘以对应多项式系数D
文档编号H03M13/15GK1849750SQ200480026161
公开日2006年10月18日 申请日期2004年12月8日 优先权日2004年1月15日
发明者丹尼尔·伊恩卡, 梅扬·莫德吉尔, 约翰·格洛斯纳 申请人:桑德布里奇技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1