发明内容
本发明的目的是提供一种纠错解码方法,摒弃了暴力求解法,纠错解码的运算量较小,耗时较短,提高了数据传输的效率;本发明的另一目的是提供一种纠错解码装置、设备及计算机可读存储介质,摒弃了暴力求解法,纠错解码的运算量较小,耗时较短,提高了数据传输的效率。
为解决上述技术问题,本发明提供了一种纠错解码方法,包括:
根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式;
根据各项系数已知的所述错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置;
根据所述对应关系以及所述错误位置多项式,确定出所述待解码数据中的错误值的基于所述伴随多项式向量以及所述错误位置的表达形式;
其中,所述错误位置多项式的根为所述错误位置的倒数。
优选地,所述错误位置多项式为:
Λ(x)=(1-x1x)(1-x2x)=1+σ1x+σ2x2;
其中,x1为第一错误位置,x2为第二错误位置,σ1为一次项系数,σ2为二次项系数,x为所述错误位置备选值的倒数。
优选地,所述根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式具体为:
根据所述错误位置多项式的定义得到:
将式(1)两边同时乘以
的等式与式(2)两边同时乘以
的等式相加,得到:
其中,Y1为第一错误值,Y2为第二错误值;
将伴随多项式向量代入式(3)得到:
σ1s2+σ2s1=-s3 (4)
将式(1)两边同时乘以
的等式与式(2)两边同时乘以
的等式相加,并将伴随多项式向量代入以得到:
σ1s3+σ2s2=-s4 (5)
求解式(4)以及式(5)得到:
其中,所述伴随多项式向量与错误位置以及错误值之间的对应关系包括:
其中,αn为伽罗华域中的元素。
优选地,所述根据所述对应关系以及所述错误位置多项式,确定出所述待解码数据中的错误值的基于所述伴随多项式向量以及所述错误位置的表达形式具体为:
定义函数:
即:
则σ10=1,σ11=-x2,σ20=1,σ21=-x1;
将s
1=Y
1x
1+Y
2x
2,
代入σ
j0s
2+σ
j1s
1中,并且由Λ
j(x)=σ
j0+σ
j1x得到:
最终得到:
优选地,所述根据各项系数已知的所述错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置具体为:
将x=1/α0,1/α1,…,1/α30依次代入Λ(x)中,并将Λ(x)等于0时的代入值的倒数对应的位置xi确定为错误位置。
为解决上述技术问题,本发明还提供了一种纠错解码装置,包括:
转换模块,用于根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式;
第一确定模块,用于根据各项系数已知的所述错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置;
第二确定模块,用于根据所述对应关系以及所述错误位置多项式,确定出所述待解码数据中的错误值的基于所述伴随多项式向量以及所述错误位置的表达形式;
其中,所述错误位置多项式的根为所述错误位置的倒数。
优选地,所述错误位置多项式为:
Λ(x)=(1-x1x)(1-x2x)=1+σ1x+σ2x2;
其中,x1为第一错误位置,x2为第二错误位置,σ1为一次项系数,σ2为二次项系数。
优选地,所述第一确定模块具体用于:
将x=1/α0,1/α1,…,1/α30依次代入Λ(x)中,并将Λ(x)等于0时的代入值的倒数对应的位置xi确定为错误位置。
为解决上述技术问题,本发明还提供了一种纠错解码设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述纠错解码方法的步骤。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述纠错解码方法的步骤。
本发明提供了一种纠错解码方法,本申请中基于预设的错误位置多项式,能够通过伴随多项式向量与错误位置以及错误值之间的对应关系,将错误位置多项式中的各项系数通过已知的伴随多项式向量表达出来,由于错误位置多项式的根为错误位置的倒数,因此通过将错误位置备选值的倒数依次代入错误位置多项式便可以搜索出错误位置,进而可以通过伴随多项式向量以及错误位置对错误值进行表达,由于本申请中摒弃了暴力求解法,且其中运算量最大的“穷举搜索”部分涉及到的错误位置备选值也仅仅为待解码数据中的数十个位置,因此本申请中的纠错解码的运算量较小,耗时较短,提高了数据传输的效率。
本发明还提供了一种纠错解码装置、设备及计算机可读存储介质,具有如上纠错解码方法相同的有益效果。
具体实施方式
本发明的核心是提供一种纠错解码方法,摒弃了暴力求解法,纠错解码的运算量较小,耗时较短,提高了数据传输的效率;本发明的另一核心是提供一种纠错解码装置、设备及计算机可读存储介质,摒弃了暴力求解法,纠错解码的运算量较小,耗时较短,提高了数据传输的效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明提供的一种纠错解码方法的流程示意图,该纠错解码方法包括:
步骤S1:根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式;
具体的,考虑到如上背景技术中的技术问题,本申请中摒弃了暴力求解非线性方程的方法,设想通过穷举搜索法在所有的错误位置备选值中搜索出错误位置,也即,将各个错误位置备选值的倒数依次代入预先设定的错误位置多项式中,由于错误位置多项式的根为错误值的倒数,因此使得错误位置多项式的值为零的代入值便为错误位置的倒数,从而便可以确定出错误位置。
其中,预先设定的错误位置多项式的特征是“根为错误位置的倒数”,然而错误位置多项式中的各项系数是未知的,只有求解出各项系数,才能顺利地将错误位置备选值代入错误位置多项式中进行错误位置的搜索,因此本申请中通过伴随多项式向量与错误位置以及错误值之间的对应关系,将各项系数均通过已知的伴随多项式向量表达出来,从而可以实现错误位置的搜索。
其中,伴随多项式向量与错误位置以及错误值之间的对应关系为已知的对应关系,且其中的伴随多项式向量为已知量,因此通过伴随多项式向量可以将与错误位置相关的各项系数表达为已知量。
步骤S2:根据各项系数已知的错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置;
具体的,在将错误位置多项式中的各项系数转换为由伴随多项式向量表达的已知量后,便可以根据各项系数已知的错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置。
具体的,错误位置备选值即为接收端设备通过SAS4协议接收到的码字多项式中的各个可能的位置,总共有30个位置,而这30个位置均为伽罗华域GF(25)中的元素,具体见下表1。
表1
另外,RS编解码的所有加减乘除运算都是在伽罗华域上进行计算。
步骤S3:根据对应关系以及错误位置多项式,确定出待解码数据中的错误值的基于伴随多项式向量以及错误位置的表达形式;
其中,错误位置多项式的根为错误位置的倒数。
具体的,由于错位位置已知,那么便可以根据对应关系以及错误位置多项式,将待解码数据中的错误值基于伴随多项式向量以及错误位置进行表达,从而求解出错误值,其中仅仅涉及到加减乘除的基本运算对于公式的变换,运算量相对于暴力求解法来说大量减小。
具体的,在SAS packet模式下传输的所有信息都被编码为150比特的数据块,其中20bit的数据为前向纠错冗余数据,用来检测和纠正传输过程引入的错误。SAS4中采用RS编码实现前向纠错,其中RS码是一类纠错能力很强的多进制BCH码,具有同时纠正突发错误和随机错误的能力,已广泛应用于现代数字、通信、数据存储系统中,SAS-4中具体使用的RS编码为RS(30,26),可以同时纠正两个随机错误,通常RS的译码比编码复杂得多,包括计算伴随多项式、求解错误位置多项式、计算错误位置、计算错误值及纠错五个步骤,RS译码问题主要归结为关键方程的求解,传统的求解关键方程的算法包括BM算法和Euclid算法等,该类迭代算法计算复杂且耗时。本发明实施例针对SAS4中特定的RS编码,提出一种适用于SAS4 Phy层前向纠错的快速简易解码方法,显著降低了RS解码算法的复杂度。
本发明提供了一种纠错解码方法,本申请中基于预设的错误位置多项式,能够通过伴随多项式向量与错误位置以及错误值之间的对应关系,将错误位置多项式中的各项系数通过已知的伴随多项式向量表达出来,由于错误位置多项式的根为错误位置的倒数,因此通过将错误位置备选值的倒数依次代入错误位置多项式便可以搜索出错误位置,进而可以通过伴随多项式向量以及错误位置对错误值进行表达,由于本申请中摒弃了暴力求解法,且其中运算量最大的“穷举搜索”部分涉及到的错误位置备选值也仅仅为待解码数据中的数十个位置,因此本申请中的纠错解码的运算量较小,耗时较短,提高了数据传输的效率。
在上述实施例的基础上:
作为一种优选的实施例,错误位置多项式为:
Λ(x)=(1-x1x)(1-x2x)=1+σ1x+σ2x2;
其中,x1为第一错误位置,x2为第二错误位置,σ1为一次项系数,σ2为二次项系数,x为错误位置备选值的倒数。
具体的,该错误位置多相式为符合“根为错误位置倒数”这个条件的最简单的形式,通过该错误位置多项式能够进一步地简化运算,提高解码速度。
当然,除了上述的错误位置多项式外,错误位置多项式的具体形式还可以为其他类型,本发明实施例在此不做限定。
作为一种优选的实施例,根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式具体为:
根据错误位置多项式的定义得到:
将式(1)两边同时乘以
的等式与式(2)两边同时乘以
的等式相加,得到:
其中,Y1为第一错误值,Y2为第二错误值;
将伴随多项式向量代入式(3)得到:
σ1s2+σ2s1=-s3 (4)
将式(1)两边同时乘以
的等式与式(2)两边同时乘以
的等式相加,并将伴随多项式向量代入以得到:
σ1s3+σ2s2=-s4 (5)
求解式(4)以及式(5)得到:
其中,伴随多项式向量与错误位置以及错误值之间的对应关系包括:
其中,αn为伽罗华域中的元素。
具体地,为了更好地对本发明实施例进行说明,伴随多项式向量的求解过程具体如下:
定义校验矩阵H4×30如下:
接收到的码字多项式为
对应的接收码字向量为r=[r
29,r
28,…,r
0],其中
为错误图样多项式,表示传输过程中引入的错误,对应的错误图样向量为e=[e
29,e
28,…,e
0],r=c+e,定义伴随多项式对应的向量s为接收到的码字向量和校验矩阵转置的乘积:
s=[s1,s2,s3,s4]=rHT=(c+e)HT=eHT
把x=α,α2,α3,α4代入R(x)中得到:
R(α)=r29α29+r28α28+…+r1α+r0=s1
R(α2)=r29(α2)29+r28(α2)28+…+r1α2+r0=s2
R(α3)=r29(α3)29+r28(α3)28+…+r1α3+r0=s3
R(α4)=r29(α4)29+r28(α4)28+…+r1α4+r0=s4
如果伴随多项式向量s中的元素全为0,说明数据在传输过程中没有被损坏,则跳过后面的步骤。
错误图样多项式
e
i是GF(2
5)的元素。假设传输过程中产生了2个随机错误,分别位于x
1和x
2,相应的错误值为Y
1和Y
2,则E(x)=Y
1x
1+Y
2x
2,解码的关键就是求解四个未知变量{x
1,x
2,Y
1,Y
2},伴随多项式向量的值为:
s1=E(α)=Y1x1+Y2x2
该式中有4个未知数,包含2个错误位置和2个错误值,对于上述方程组的4个非线性方程,现有技术中可以通过暴力求解法求解出4个解,从而确定错误位置和错误值,但是运算量巨大。
具体的,基于前述介绍的伴随多项式向量与错误位置以及错误值之间的对象关系,可以采用本发明实施例中提供的方法将错误位置多项式中的各项系数用伴随多项式向量进行表示,也即如上式(6)所示的形式,且式(6)的求解过程可以通过图2中的电路实现,图2为本发明提供的一种各项系数的求解电路示意图。
当然,除了前述的具体过程中,将各项系数通过伴随多项式向量表达的具体过程还可以为其他形式,本发明实施例在此不做限定。
作为一种优选的实施例,根据对应关系以及错误位置多项式,确定出待解码数据中的错误值的基于伴随多项式向量以及错误位置的表达形式具体为:
定义函数:
即:
则σ10=1,σ11=-x2,σ20=1,σ21=-x1;
将s
1=Y
1x
1+Y
2x
2,
代入σ
j0s
2+σ
j1s
1中,并且由Λ
j(x)=σ
j0+σ
j1x得到:
最终得到:
具体的,通过本发明实施例中提供的具体的变换方式便可以求解出两个错误值,且两个错误值是和错误位置相对应的,本发明实施例中的求解错误值的过程也比较简单,运算量少,提高了纠错解码的速度。
其中,值得一提的是,求解出来的错误值中,其中一个错误值可能是零,此种情况下代表本次接收到的码字多项式中仅仅存在一个错误位置以及一个错误值,当然也有可能两个错误值都不是零,那么代表其中存在两个错误位置以及两个错误值,本发明实施例在此不做限定。
具体的,在得到两个错误位置以及两个错误值后,纠错的过程具体如下:
根据估计的错误位置x1,x2和错误值Y1,Y2,得到估计的错误图样为:
纠错后的码字多项式为:
作为一种优选的实施例,根据各项系数已知的错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置具体为:
将x=1/α0,1/α1,…,1/α30依次代入Λ(x)中,并将Λ(x)等于0时的代入值的倒数对应的位置xi确定为错误位置。
具体的,α0…α30即为前述提到的伽罗华域GF(25)中的30个元素,也即错误位置备选值,将这30个值的倒数依次代入各项系数已知的错误位置多项式中,一旦错误位置多项式的值为零,那么便可以确定此时代入的为错误位置的倒数,从而确定出错误位置。
其中,本发明实施例中的搜索过程最多进行30次代入便可以完成错误位置的确定,运算量较小,可以提高纠错解码的速度。
请参考图3,图3为本发明提供的一种纠错解码装置的结构示意图,该纠错解码装置包括:
转换模块1,用于根据伴随多项式向量与错误位置以及错误值之间的对应关系,将预设的错误位置多项式中各项系数均转换为基于伴随多项式向量的表达形式;
第一确定模块2,用于根据各项系数已知的错误位置多项式,通过穷举搜索法从错误位置备选值中确定出待解码数据中的错误位置;
第二确定模块3,用于根据对应关系以及错误位置多项式,确定出待解码数据中的错误值的基于伴随多项式向量以及错误位置的表达形式;
其中,错误位置多项式的根为错误位置的倒数。
作为一种优选的实施例,错误位置多项式为:
Λ(x)=(1-x1x)(1-x2x)=1+σ1x+σ2x2;
其中,x1为第一错误位置,x2为第二错误位置,σ1为一次项系数,σ2为二次项系数。
作为一种优选的实施例,第一确定模块具体用于:
将x=1/α0,1/α1,…,1/α30依次代入Λ(x)中,并将Λ(x)等于0时的代入值的倒数对应的位置xi确定为错误位置。
对于本发明实施例提供的纠错解码装置的介绍请参照前述的纠错解码方法的实施例,本发明实施例在此不再赘述。
请参考图4,图4为本发明提供的一种纠错解码设备的结构示意图,该纠错解码设备包括:
存储器4,用于存储计算机程序;
处理器5,用于执行计算机程序时实现如前述实施例中纠错解码方法的步骤。
对于本发明实施例提供的纠错解码设备的介绍请参照前述的纠错解码方法的实施例,本发明实施例在此不再赘述。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如如前述实施例中纠错解码方法的步骤。
对于本发明实施例提供的计算机可读存储介质的介绍请参照前述的纠错解码方法的实施例,本发明实施例在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。