一种信息纠错方法、装置、设备及存储介质

文档序号:195343 发布日期:2021-11-02 浏览:24次 >En<

阅读说明:本技术 一种信息纠错方法、装置、设备及存储介质 (Information error correction method, device, equipment and storage medium ) 是由 陈静静 吴睿振 黄萍 王凛 于 2021-06-29 设计创作,主要内容包括:本发明公开了一种信息纠错方法,包括:从解码器获取码字信息;该码字信息为将数据信息与生成矩阵进行编码后得到,该生成矩阵通过满足构造规则的奇偶校验阵确定;根据码字信息及奇偶校验阵计算校正子;判断校正子是否为零;若是,则判定码字信息正确;若否,则通过奇偶校验阵及校正子对码字信息进行纠错。可见,在本方案中,解码器获取码字进行解码就纠错时,不需要通过查表的方式进行解码,只需要利用奇偶校验阵及校正子进行简单的逻辑处理即可对码字信息进行纠错,节省查表时间,从而提高解码器的解码速度。本发明还公开了一种信息纠错装置、设备及存储介质,同样能实现上述技术效果。(The invention discloses an information error correction method, which comprises the following steps: obtaining codeword information from a decoder; the code word information is obtained by coding data information and a generating matrix, and the generating matrix is determined by a parity check matrix meeting a construction rule; calculating a syndrome according to the codeword information and the parity check matrix; judging whether the syndrome is zero or not; if yes, judging that the code word information is correct; if not, error correction is carried out on the code word information through the parity check matrix and the syndrome. Therefore, in the scheme, when the decoder acquires the code words for decoding and correcting errors, decoding is not required in a table lookup mode, and the code word information can be corrected only by performing simple logic processing by using the parity check array and the syndrome, so that the table lookup time is saved, and the decoding speed of the decoder is improved. The invention also discloses an information error correction device, equipment and a storage medium, which can also realize the technical effects.)

一种信息纠错方法、装置、设备及存储介质

技术领域

本发明涉及数据处理技术领域,更具体地说,涉及一种信息纠错方法、装置、设备及存储介质。

背景技术

目前,计算机晶体管和电容器的体积很小,再加上瞬变的电气和电磁现象,使得计算机存储系统中存储的信息偶尔出错。因此,即使设计良好且通常可靠的内存系统也容易发生内存设备故障。

为了尽量减少存储设备故障的影响,已经开发了各种错误检查方案以检测从存储器读取的消息中的错误,并在某些情况下纠正这些错误。最简单的错误检测方案是奇偶校验。奇偶校验是包含在二进制数据消息或数据字中的额外位,用于使消息中1的总数为奇数或偶数。对于“偶校验”系统,奇偶校验位设置为使消息中1的总数为偶数。对于“奇校验”系统,奇偶校验位设置为使消息中1的总数为奇数。例如:在使用奇偶校验的系统中,具有两个1的消息将其奇偶校验位设置为1,从而使1的奇偶校验总数变为1。然后,发送包含奇偶校验位的消息,随后在接收端检查错误。如果消息中数据位的奇偶校验与传输的奇偶校验位不一致,则会产生错误,因此,通过该方式可以检测到单比特错误,但是由于无法检测出哪个位出错,因此无法进行校正。此外,如果两个或任意偶数个位出错,奇偶校验将是正确的,并且不会检测到错误。因此,奇偶校验只能检测奇数个错误,而不能校正任何确定为错误的位。

而ECC(Error correction code,纠错码)不仅可以检测而且可以校正被确定为错误的比特。ECC利用存储在内存中的数据消息中的多个奇偶校验位。每个校验位是数据消息中一组位的奇偶校验位。当从内存中读取消息时,将计算每个组(包括校验位)的奇偶校验。如果奇偶校验对所有组都正确,则表示没有发生可检测的错误。如果一个或多个新生成的奇偶校验值不正确,则会产生称为综合征的唯一模式,该模式可用于识别错误位,在检测到特定的错误位时,可以通过完成错误位来纠正错误。其中,一种广泛应用于数字系统差错控制的ECC是基于R.W.Hamming设计的码,因此被称为“Hamming码”。汉明码的一个特殊子类,包括single error correcting and double error detecting(SEC-DED)。SEC-DED码不仅可以用来纠正任何单比特错误,还可以用来检测双比特错误。但是实际存储应用中,SEC-DED码的解码需要通过查表的方式,随着数据量的海量增加,需要纠错和探错的比特数量也增加了,因此,这种查表的方式会带来额外的查表运算,需要花费较多时间。因此,传统的SEC-DED方案不在适合于当前存储的纠错需求。

发明内容

本发明的目的在于提供一种信息纠错方法、装置、设备及存储介质,以提高解码器的解码纠错速度。

为实现上述目的,本发明提供一种信息纠错方法,包括:

从解码器获取码字信息;所述码字信息为将数据信息与生成矩阵进行编码后得到,所述生成矩阵通过满足构造规则的奇偶校验阵确定;

根据所述码字信息及所述奇偶校验阵计算校正子;

判断所述校正子是否为零;若是,则判定所述码字信息正确;若否,则通过所述奇偶校验阵及所述校正子对所述码字信息进行纠错。

其中,所述从解码器获取码字信息之前,还包括:

根据预先设定的构造规则确定奇偶校验阵H;

根据所述奇偶校验阵H确定生成矩阵G;

其中,所述奇偶校验阵为(n-k)*n维矩阵,所述奇偶校验阵包括(n-k)*k维的PT矩阵及(n-k)*(n-k)维的In-k矩阵,PT矩阵包括k/s个(n-k)*s维的子矩阵,每个子矩阵包括(n-k)/s个s*s维的方阵,s为每个Symbol中的比特数。

其中,所述构造规则为:

所述奇偶校验阵中每个方阵中任意几列异或的结果互不相同,且与其余方阵中任意几列异或的结果互不相同;

所述奇偶校验阵中任意两个方阵的任意几列的异或结果互不不同,且与所有子矩阵的方阵中任意几列异或的结果互不相同;

所述奇偶校验阵中每个子矩阵包含的(n-k)/s个s*s维的方阵中,包含至少一个s*s维的单位阵;

所述奇偶校验阵中每个子矩阵至少包含两个s*s维的方阵。

其中,所述通过所述奇偶校验阵对所述码字信息进行纠错,包括:

对所述码字信息中前k个Symbol的数据信息,利用所述奇偶校验阵H转置的子矩阵及所述校正子,对前k个Symbol的数据信息进行纠错,得到目标码字信息;其中,所述码字信息包括n个Symbol的信息;

利用所述目标码字信息及所述奇偶校验阵计算得到目标校正子;

判断所述目标校正子是否为零;若是,则判定目标码字信息正确;若否,则判断所述目标校正子是否符合预定规则;

若是,则将所述目标校正子与所述目标码字信息中后n-k个Symbol的校验位进行异或操作,并将生成的异或结果替换所述目标码字信息中后n-k个Symbol的校验位;

若否,则发出错误探测信号。

其中,所述对所述码字信息中前k个Symbol的数据信息,利用所述奇偶校验阵H转置的子矩阵及所述校正子,对前k个Symbol的数据信息进行纠错,得到目标码字信息,包括:

在对所述码字信息中前k个Symbol的数据信息中的第k'个Symbol的数据信息rk'进行纠错时,获取所述奇偶校验阵H转置的第k'个子矩阵Hk'

从子矩阵Hk'中确定目标单位阵的标识号i,从子矩阵Hk'中确定除所述目标单位阵之外的其他阵Mj的标识号j;

确定所述校正子中的第i个校正子向量Si和第j个校正子向量Sj

若第i个校正子向量Si和第j个校正子向量Sj满足条件:Si≠0且SiMj=Sj,则判定rk'错误,利用Si对rk'纠错,得到纠错后的第k'个Symbol的数据信息r'k';其中,r'k'=rk'+Si

对前k个Symbol的数据信息均纠错完成后,得到目标码字信息。

其中,所述判断重新计算的校正子是否符合预定规则,包括:

判断重新计算的校正子中是否仅存在一个校正子向量不为零;

若是,则判定重新计算的校正子符合预定规则;若否,则判定重新计算的校正子不符合预定规则。

为实现上述目的,本发明进一步提供一种信息纠错装置,包括:

获取模块,用于从解码器获取码字信息;所述码字信息为将数据信息与生成矩阵进行编码后得到,所述生成矩阵通过满足构造规则的奇偶校验阵确定;

计算模块,用于根据所述码字信息及所述奇偶校验阵计算校正子;

判断模块,用于判断所述校正子是否为零;若是,则判定所述码字信息正确;若否,则触发纠错模块;

所述纠错模块,用于通过所述奇偶校验阵及所述校正子对所述码字信息进行纠错。

其中,该装置还包括:

奇偶校验阵确定模块,用于根据预先设定的构造规则确定奇偶校验阵H;

生成矩阵确定模块,用于根据所述奇偶校验阵H确定生成矩阵G;

其中,所述奇偶校验阵为(n-k)*n维矩阵,所述奇偶校验阵包括(n-k)*k维的PT矩阵及(n-k)*(n-k)维的In-k矩阵,PT矩阵包括k/s个(n-k)*s维的子矩阵,每个子矩阵包括(n-k)/s个s*s维的方阵,s为每个Symbol中的比特数。

为实现上述目的,本发明进一步提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述信息纠错方法的步骤。

为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述信息纠错方法的步骤。

通过以上方案可知,本发明实施例提供的一种信息纠错方法,包括:从解码器获取码字信息;该码字信息为将数据信息与生成矩阵进行编码后得到,该生成矩阵通过满足构造规则的奇偶校验阵确定;根据码字信息及奇偶校验阵计算校正子;判断校正子是否为零;若是,则判定码字信息正确;若否,则通过奇偶校验阵及校正子对码字信息进行纠错。可见,在本方案中,解码器获取码字进行解码就纠错时,不需要通过查表的方式进行解码,只需要利用奇偶校验阵及校正子进行简单的逻辑处理即可对码字信息进行纠错,节省查表时间,从而提高解码器的解码速度。本发明还公开了一种信息纠错装置、设备及存储介质,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种信息纠错方法流程示意图;

图2为本发明实施例公开的一种信息纠错装置结构示意图;

图3为本发明实施例公开的一种电子设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本实施例中,提出了一种适用于硬件的多比特纠错解码方法。硬件数据的传输是基于symbol做基本单位,一个symbol按照硬件传输协议的不同,会设置多个比特同时传输。在本实施例中,以symbol为基础计算单位,对于symbol定义的多个比特进行操作的纠错算法,可以一次实现一个symbol数量大小的比特纠错,和两个symbol数量的检错。本方案首先基于SEC-DED的传统算法进行扩充,使其可以支持不同多个比特所构成的任意symbol情况下的单symbol纠错和双symbol检错,然后基于硬件比特级的操作特性进行了优化,改进了生成校验矩阵的方式,使其可以从硬件方面在symbol级快速实现,具有高速和高纠错能力的优势。

具体来说,本实施例类似于SEC-DED的命名方式,将本方案命名为SSC-DSD,将传统SEC-DED中的E(error)替换为S(symbol)进行表征。在本实施例中,将SEC-DED的纠错方法类似的运用于SSC-DSD,需要以symbol作为基本单元。因此从纠错的矩阵角度,SSC-DSD码的编码过程中需要的生成矩阵G,其结构为:

其中,Ik为k×k维的单位阵,p为0或1的整数。

若未编码的数据信息为u=(u1,u2,u3,...,uk),通过生成矩阵G进行编码得到的码字信息为:

其中,v的前k位为数据信息,后n-k位是校验位;在本实施例中,位是指Symbol,也即码字信息共有n个Symbol,前k个Symbol为数据信息,后n-k个Symbol是校验位。

SSC-DSD码译码过程中需要依据奇偶校验矩阵H,具体结构为:

其中PT式P的转置。

通过分析公式1和公式2可知,生成矩阵G和奇偶校验矩阵H之间具有简单的变化关系,且有:

v·HT=0 (3)

令r=(r1,r2,…,rn)为解码器收到的码字,由于原始码字在存储期间可能发生了错误,因此r不一定与原始码字v相同,而是包含了一定的错误模式e的信息序列,即r=v+e。解码器在接收到码字r后会得到校正子S,具体的公式为:

因此,解码器仅需要判断校正子S是否为0,即可判断码字r是否包含错误。校正子r不为0,则通过S=e·HT求解错误模式e,继而通过将码字与错误模式e进行异或完成纠错功能,得到正确的数据,即但是求解错误模式e并不容易,需要对矩阵HT求逆,这一过程的复杂度决定了译码器的硬件开销,因此错误纠正码在存储器容错领域的应用具有局限性。

基于SEC-DED的扩展方式可知,将其扩充到基于symbol的纠错和检错操作方式下,所得到SSC-DSD码的解码方式从比特到symbol的扩充,需要通过查找表的方式确定不同校正子S所对应的错误模式e。将其实际的运算逻辑展开,由公式S=e·HT可以得出,校正子S是奇偶校验阵H任意列的异或。假设每个symbol包含s个bit,则将奇偶校验阵H的PT部分按照每s列为单位划分,划分成k/s个子矩阵,具体为:

并且,奇偶校验阵H需要满足以下规则:

1)每个子矩阵中任选几列异或的结果互不相同,即种异或结果不相同;且与其余子矩阵中任选几列异或的结果互不相同,即种异或结果不相同;

2)取任意两个子矩阵,分别从两个子矩阵中任选几列,异或结果与所有子矩阵的结果不同,即异或结果与条件1)的种异或结果不相同;

满足条件1)保证单个symbol的错误可纠错,条件满足2)保证任意两个symbol的错误可检错。满足条件1)和2)的奇偶校验阵H就可以建立校正子S与错误模式e的对应表,解码器就可以通过查找表的方式进行解码。

在本实施例中,所提出的SSC-DSD可以实现单symbol纠错和双symbol检错后,可知本方案可应用于软件或硬件下需要进行不同s个比特所定义的symbol的单纠错双检错环境。而上述查表方式虽然可以实现纠错和检错的工作,但是依然是基于SEC-DED的逻辑进行的直接扩展,硬件实现查表需要设置额外的查表工作逻辑,本方案中的SEC-DED中并不需要的额外运算。因此,本方案基于扩充到symbol后的运算特性,对奇偶校验阵H的条件进行进一步的限制,使得SSC-DSD的解码过程只包含向量和矩阵的乘法,可以通过简单的比特级异或逻辑实现。比传统的查表方式节省了时间。

在本实施例中,首先将奇偶校验阵H的PT矩阵部分按照每s列为单位划分,划分成k/s个(n-k)*s维的子矩阵,然后将每个子矩阵划分成(n-k)/s个s*s维的方阵,具体为:

公式5即为SSC-DSD码奇偶检验阵,子矩阵包括s*s维的方阵,例如:在公式5中,其中一个子矩阵为:子矩阵中的T11、T21等均为s*s维的方阵。

本发明生成奇偶校验阵H的构造规则为:

1)奇偶校验阵中每个方阵中任意几列异或的结果互不相同,且与其余方阵中任意几列异或的结果互不相同;也即:公式5中每个s*s维方阵中任意几列异或的结果互不相同,即种异或结果不相同;且与其余方阵中任意几列异或的结果互不相同,即种异或结果不相同;

2)奇偶校验阵中任意两个方阵的任意几列的异或结果互不不同,且与所有子矩阵的方阵中任意几列异或的结果互不相同;也即:本方案取任意两个方阵任意几列的异或结果与所有子矩阵的结果不同,即异或结果与条件1)的种异或结果不相同;

3)奇偶校验阵中每个子矩阵包含的(n-k)/s个s*s维的方阵中,包含至少一个s*s维的单位阵;

4)奇偶校验阵中每个子矩阵至少包含两个s*s维的方阵,即(n-k)/s≥2。

奇偶校验阵H满足以上四个条件后,SSC-DSD的解码过程可以用向量和矩阵的乘法实现,不需要通过查表解码。在此,通过举例对本方案的推论过程进行说明。在本实施例中,SSC-DSD具体为(3*s,3*s,s),也即:3个symbol的数据信息,3个symbol的校验位,每个symbol包含s个比特,在本实施例中,编码和解码的过程具体为:

假设:编码前的数据信息为:u=(u1,u2,u3);

确定满足上述条件1)2)3)4)的奇偶校验阵H,其结构如下:

奇偶校验阵H的转置如下:

生成矩阵G的结构如下:

若解码器接收到的码字信息为:r=[r1,r2,r3,r4,r5,r6],前3个symbol为数据位,后3个symbol为校验位,校正子S=r·HT=(S1,S2,S3),其中S1,S2,S3是1*s的校正子向量。

假设收到的码字r=v,则有S=r·HT=v·HT=0,也即:当校正子S=0可以认为接收到的码字没有错误,即e=0;

假设收到的码字的第二个和第三个symbol出错,即

此时计算校正子S如下:

此时校正子S≠0,证明码字r=[r1,r2,r3]有错误,但因为所有的方阵都是满足条件3),所以当任意两个symbol错误的时候都会有这样的结论。

推论一:当收到的码字任意两个symbol错误的时:

假设收到的码字的第一个symbol出错,即

此时计算校正子S如下:

第一个symbol的错误对应于奇偶校验阵H转置的第一个子矩阵中的I对应于S1,此时有

推论二:当第一个symbol错误时,对应于奇偶校验阵H转置的第一个子矩阵中的I对应于S1:有S1≠0且此时S1=e1,利用如下公式对码字的第一个symbol进行纠错:

假设收到的码字的第二个symbol出错,即

此时计算校正子S如下:

即:表明第二个symbol的错误对应于奇偶校验阵H转置的第二个子矩阵S1对应于中的I,此时有

推论三:当第二个symbol错误时,对应于奇偶校验阵H转置的第二个子矩阵S1对应于中的I:有此时S1=e2,利用如下公式对码字的第二个symbol进行纠错:

同理假设收到的码字的第三个symbol出错,即

此时计算校正子S如下:

即:表明第三个symbol的错误对应于奇偶校验阵H转置的第三个子矩阵中的I对应于S2,此时有

推论四:当第三个symbol错误的时,对应于奇偶校验阵H转置的第三个子矩阵中的I对应于S2:有S2≠0且此时S2=e3,利用如下公式对码字的第三个symbol进行纠错:

假设收到的信息位对应的第二个和第三个symbol出错,即

此时计算校正子S如下:

假设收到的信息位对应的第二个symbol与校验位对应第五个symbol出错,即

此时计算校正子S如下:

假设收到的校验位对应的第四个与第五个symbol出错,即

此时计算校正子S如下:

即S=[e4 e5 0]。

推论六:当收到的码字中任意两个symbol错误时,校正子S不可能为[S1,0,0],[0,S2,0][0,0,S3]这种样式(其中S1,S2,S3均不为0)。

假设收到的信息位对应的第四个symbol出错,即

此时计算校正子S如下:

即:S=[e4 0 0];同样的收到的信息位对应的第五个和第六个symbol出错,得到的校正子S分别位S=[0 e5 0],S=[0 0 e6]。

推论七:当校验位对应的symbol出错时,校正子S为[S1,0,0],[0,S2,0][0,0,S3]这种样式(其中S1,S2,S3均不为0)。

在本实施例中,基于以上推论,公开了一种信息纠错方法,参见图1,本发明实施例提供的一种信息纠错方法流程示意图,包括:

S101、从解码器获取码字信息;该码字信息为将数据信息与生成矩阵进行编码后得到,生成矩阵通过满足构造规则的奇偶校验阵确定;

在本实施例中,根据预先设定的构造规则确定奇偶校验阵H后,需要根据奇偶校验阵H确定生成矩阵G;其中,该奇偶校验阵为(n-k)*n维矩阵,奇偶校验阵包括(n-k)*k维的PT矩阵及(n-k)*(n-k)维的In-k矩阵,PT矩阵包括k/s个(n-k)*s维的子矩阵,每个子矩阵包括(n-k)/s个s*s维的方阵,s为每个Symbol中的比特数。假设未编码的数据信息为u=(u1,u2,u3,...,uk),根据满足构造规则的奇偶校验阵H及对应的生成矩阵G进行编码得到的码字信息v:

v=(u1,u2,…,uk)G

=(v1,v2,…,vn)

码字信息v包括n个Symbol的信息,码字信息v的前k个Symbol为数据信息,后n-k个Symbol是校验位。

在本实施例中,由于接收到的码字信息会存在错误,因此在本实施例中,设定接收到的码字信息为r=[r1,r2,r3,…,rn],该码字信息中同样v包括n个Symbol的信息,码字信息v的前k个Symbol为数据信息,后n-k个Symbol是校验位。

例如:在本实施例中,编码前的数据信息为:u=(u1,u2,u3),生成矩阵G如公式8所示,计算编码后生成的码字为:

进一步,本实施例从解码器获取码字信息为:r=[r1,r2,r3,r4,r5,r6],其中,前三个Symbol为数据信息,后三个Symbol为校验位。

S102、根据码字信息及奇偶校验阵计算校正子;

本实施例在计算校正子时,通过如下方式计算校正子S:

S=r·HT=(S1,S2,…,Sn-k);其中,S1,S2,…,Sn-k是1*s的校正子向量。

S103、判断校正子是否为零;若是,则执行S104;若否,则执行S105;

S104、判定码字信息正确;

S105、通过奇偶校验阵及校正子对码字信息进行纠错。

在本实施例中,若S=0,则认为接收的码字信息正确,无需纠错;若S≠0,则认为接收的码字信息存在错误,需要进入纠错步骤。

在本实施例中,通过奇偶校验阵对码字信息进行纠错的过程具体包括:

步骤一:对码字信息中前k个Symbol的数据信息,利用奇偶校验阵H转置的子矩阵及校正子,对前k个Symbol的数据信息进行纠错,得到目标码字信息;该码字信息包括n个Symbol的信息;

具体的,在执行步骤一中,在对码字信息中前k个Symbol的数据信息中的第k'个Symbol的数据信息rk'进行纠错时,首先需要获取奇偶校验阵H转置的第k'个子矩阵Hk';然后从子矩阵Hk'中确定目标单位阵的标识号i,从子矩阵Hk'中确定除所述目标单位阵之外的其他阵Mj的标识号j;确定校正子中的第i个校正子向量Si和第j个校正子向量Sj;若第i个校正子向量Si和第j个校正子向量Sj满足条件:Si≠0且SiMj=Sj,则判定rk'错误,利用Si对rk'纠错,得到纠错后的第k'个Symbol的数据信息r'k';其中,r'k'=rk'+Si;对前k个Symbol的数据信息均纠错完成后,得到目标码字信息。

例如:从解码器获取码字信息r=[r1,r2,r3,r4,r5,r6]后,计算出的校正子为:

S=r·HT=(S1,S2,S3),其中,S1,S2,S3是1*s的校正子向量,HT详见公式7。若S=0,则认为接收码字信息正确,无需纠错;若S≠0则认为码字信息存在错误,进行纠错。以对码字信息中前k个Symbol的数据信息中的第1个Symbol的数据信息r1进行纠错为例进行说明,参见公式7,第k'个子矩阵Hk'为奇偶校验阵H转置的第k'行矩阵,也即:第1个子矩阵H1子矩阵H1中的单位阵为第一个和第二个,此时子矩阵中单位阵存在两个,可从这两个单位阵中选取任意一个单位阵作为目标阵,在此选择第一个单位阵为目标单位阵,则可确定目标单位阵的标识号i为1。

然后从子矩阵Hk'中确定除第一个目标单位阵之外的其他阵Mj的标识号j,此时可将第二个单位阵I的标识号2作为j,也可以将第三个的标识号3作为j,在此选择j为2。然后即可确定校正子中的第i个校正子向量S1和第j个校正子向量S2;此时的判定条件为:S1≠0且S1I=S2,若满足该判定条件,则判定r1错误,利用Si对rk'纠错,即:r'1=r1+S1,否则,r1'=r1

根据此过程,继续对r2和r3进行纠错,其纠错过程具体为:

对于r2,若S1≠0且对r2利用r′2=r2+S1进行纠错,否则r′2=r2

对于r3,若S2≠0且对r3利用r′3=r3+S2进行纠错,否则r′3=r3

这样对前3个Symbol的数据信息均纠错完成后,得到目标码字信息。

步骤二:利用目标码字信息及奇偶校验阵计算得到目标校正子;

步骤三:判断所述目标校正子是否为零;若是,则判定目标码字信息正确;若否,则判断所述目标校正子是否符合预定规则;若是,则将所述目标校正子与所述目标码字信息中后n-k个Symbol的校验位进行异或操作,并将生成的异或结果替换所述目标码字信息中后n-k个Symbol的校验位;若否,则发出错误探测信号。

在本实施例中,利用纠正之后的目标码字信息r'重新计算校正子S=[S′1,S'2,…S'n-k,];若S=0认为错误已经纠正,若S≠0,则需要验证校验位是否出错。在本实施例中,判断重新计算的校正子是否符合预定规则时,具体是判断重新计算的校正子中是否仅存在一个校正子向量不为零,若是,则判定重新计算的校正子符合预定规则;若否,则判定重新计算的校正子不符合预定规则。例如:若校正子S为[S'1,0,…0],[0,S'2,…0][0,…,S'n-k]这种样式(其中S'1,S'2,…S'n-k均不为0),则将重新计算的校正子S与目标码字信息的后n-k个symbol进行异或操作,异或的结果替换目标码字信息的后n-k个symbol,即得到正确的码字;否则认为错误没法纠正,即有两个symbol的错误,没法进行纠正,此时应该给出错误探测信号。

例如:在上文中,利用纠正之后的目标码字信息重新计算校正子S=[r′1,r′2,r′3,r4,r5,r6]·HT=[S'1,S'2,S'3];若S=0认为错误已经纠正;若S≠0,则判断校验位是否出错,若校正子S为[S'1,0,0],[0,S'2,0][0,0,S'3]这种样式(其中S'1,S'2,S'3均不为0),则校正子S与目标码字信息的后三个symbol进行异或操作,异或的结果替换目标码字信息的后三个symbol即得到正确的码字;否则认为错误没法纠正,即有两个symbol的错误,没法进行纠正,此时应该给出错误探测信号。

综上可见,本方案根据上述四条构造规则构造的奇偶校验阵后,使得本方案在纠错解码时,可在满足不同s个比特构造的任意symbol条件下的单symbol纠错双symbol检错功能前提下,对其编解码的生成矩阵进行了进一步改进,使其解码过程只包含向量和矩阵的乘法,可以通过简单的比特级异或逻辑实现。在满足单symbol纠错双symbol检错的功能前提下,不仅适用于软件实现,更使其适用于硬件逻辑,可以快速实现,并具有任意定义需求的纠错表现的优势。

下面对本发明实施例提供的纠错装置、设备及介质进行介绍,下文描述的纠错装置、设备及介质与上文描述的纠错方法可以相互参照。

参见图2,本发明实施例提供的一种信息纠错装置结构示意图,包括:

获取模块10,用于从解码器获取码字信息;所述码字信息为将数据信息与生成矩阵进行编码后得到,所述生成矩阵通过满足构造规则的奇偶校验阵确定;

计算模块11,用于根据所述码字信息及所述奇偶校验阵计算校正子;

判断模块12,用于判断所述校正子是否为零;若是,则判定所述码字信息正确;若否,则触发纠错模块13;

所述纠错模块13,用于通过所述奇偶校验阵及所述校正子对所述码字信息进行纠错。

其中,该装置还包括:

奇偶校验阵确定模块,用于根据预先设定的构造规则确定奇偶校验阵H;

生成矩阵确定模块,用于根据所述奇偶校验阵H确定生成矩阵G;

其中,所述奇偶校验阵为(n-k)*n维矩阵,所述奇偶校验阵包括(n-k)*k维的PT矩阵及(n-k)*(n-k)维的In-k矩阵,PT矩阵包括k/s个(n-k)*s维的子矩阵,每个子矩阵包括(n-k)/s个s*s维的方阵,s为每个Symbol中的比特数。

其中,所述构造规则为:

所述奇偶校验阵中每个方阵中任意几列异或的结果互不相同,且与其余方阵中任意几列异或的结果互不相同;

所述奇偶校验阵中任意两个方阵的任意几列的异或结果互不不同,且与所有子矩阵的方阵中任意几列异或的结果互不相同;

所述奇偶校验阵中每个子矩阵包含的(n-k)/s个s*s维的方阵中,包含至少一个s*s维的单位阵;

所述奇偶校验阵中每个子矩阵至少包含两个s*s维的方阵。

其中,纠错模块包括:

纠错单元,用于对所述码字信息中前k个Symbol的数据信息,利用所述奇偶校验阵H转置的子矩阵及所述校正子,对前k个Symbol的数据信息进行纠错,得到目标码字信息;其中,所述码字信息包括n个Symbol的信息;

计算单元,用于利用所述目标码字信息及所述奇偶校验阵计算得到目标校正子;

第一判断单元,用于判断所述目标校正子是否为零;若是,则判定目标码字信息正确;若否,则触发第二判断单元;

第二判断单元,用于判断所述目标校正子是否符合预定规则;若是,则触发操作单元;若否,则触发信号发出单元;

所述操作单元,用于将所述目标校正子与所述目标码字信息中后n-k个Symbol的校验位进行异或操作,并将生成的异或结果替换所述目标码字信息中后n-k个Symbol的校验位;

信号发出单元,用于发出错误探测信号。

其中,所述纠错单元包括:

子矩阵获取子单元,用于在对所述码字信息中前k个Symbol的数据信息中的第k'个Symbol的数据信息rk'进行纠错时,获取所述奇偶校验阵H转置的第k'个子矩阵Hk'

标识号确定子单元,用于从子矩阵Hk'中确定目标单位阵的标识号i,从子矩阵Hk'中确定除所述目标单位阵之外的其他阵Mj的标识号j;

向量确定子单元,用于确定所述校正子中的第i个校正子向量Si和第j个校正子向量Sj

纠错子单元,用于在第i个校正子向量Si和第j个校正子向量Sj满足条件:Si≠0且SiMj=Sj时,判定rk'错误,利用Si对rk'纠错,得到纠错后的第k'个Symbol的数据信息r'k';其中,r'k'=rk'+Si;对前k个Symbol的数据信息均纠错完成后,得到目标码字信息。

其中,所述第二判断单元具体用于:判断重新计算的校正子中是否仅存在一个校正子向量不为零;若是,则判定重新计算的校正子符合预定规则;若否,则判定重新计算的校正子不符合预定规则。

参见图3,为本发明实施例公开的一种电子设备结构示意图,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任意方法实施例所述的信息纠错方法的步骤。

在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。

该设备可以包括存储器21、处理器22和总线23。

其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行纠错方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行纠错方法的程序代码等。

该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。

可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。

图3仅示出了具有组件21-25的设备,本领域技术人员可以理解的是,图3示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

为本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的信息纠错方法的步骤。

其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种混合解码方法、存储装置控制器及存储系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类