一种基于循环冗余码的单比特纠错查表方法及其电路的制作方法

文档序号:7538338阅读:274来源:国知局
专利名称:一种基于循环冗余码的单比特纠错查表方法及其电路的制作方法
技术领域
本发明涉及一种基于循环冗余码的单比特纠错查表方法及其电路,属于数字通信技术领域。
背景技术
循环冗余码(以下简称CRC)校验技术,由于其实现简单、高效,占用软件或硬件的资源少,已经在数字通信的检错纠错领域中得到了广泛的应用。目前,国际上数字通信领域应用最广的CRC校验主要是生成多项式为x16+x12+x5+1的CRC-16和x32+x26+x23+x22+x16+X12+x11+x10+x8+x7+x5+x4+x2+x+1的CRC-32。在现有的绝大部分通信系统中,CRC部分通常只是实现简单的检错功能,往往不进行纠错处理。一些通信系统中利用了CRC的单比特纠错能力,实现了对关键字段的单比特错误的恢复,增加了通信的可靠性。
CRC校验一个典型的应用是在通用成帧规程(简称GFP)协议中。该协议在净荷长度指示(简称PLI),净荷类型区域,扩展类型区域等三个关键字段均采用了生成多项式为x16+x12+x5+1的CRC-16的检错和单比特纠错。该CRC保护的信息字段长度为16比特,本身校验位为16比特,因此总的数据段长度为32比特。在GFP的接收端,需要能够纠正该数据段前16比特的受保护的信息字段的单比特错误,对后16比特校验位的单比特错误不需要纠正。
CRC单比特纠错方法通常是采用查表法,每种单比特错误出现的错误图样对应唯一的校验图样。因此,利用接收到的信息部分和CRC校验部分,在接收端重新进行CRC计算,判断是否有错;如果有单比特错误,利用CRC的计算结果进行查表可以确定该错误的所在位置。这种方法无论是用软件还是硬件实现,算法上都比较规范和简单,易于集成和复用。但是,由于单比特查表纠错方法的核心技术在于校验图样查找表的生成,而现有的各种算法在查找表的生成上比较随意,利用了某些特殊性或者自定义的预运算来生成查找表,因此各算法对资源的利用差异很大,同时其中的一些算法实现较为复杂,对除查找表部分外的电路要求较高。
查找表占用资源的大小,主要取决于地址空间的大小;查找表部分外的电路设计复杂程度,主要取决于结构是否简单、规整。利用CRC校验本身的一些特征,可以对地址空间的大小进行最优化分析,从而找到一种使查找表占用空间最小化,同时使整体结构简单的设计方法和电路。假设CRC校验的信息字段为kbits,CRC校验字段为n-kbits,因此发送的数据段总长为n比特,可以用多项式v(x)表示(其最高次数为n-1)。传输过程中引入的错误图样可以记做e(x)(最高次数为n-1),其中的非零项表示错误发生的位置。那么,接收到的多项式为r(x)=v(x)+e(x)。对接收的多项式重新进行和发送端相同的CRC的运算,有如下结果CRC(r(x))=CRC(v(x)+e(x))=CRC(v(x))+CRC(e(x))=Constant+CRC(e(x)),等式中的加法为模二加法。其中的CRC(v(x))不管发送的v(x)为何值,结果都为一常量序列,在大多数的CRC校验中这一常量为零。因此,接收到的r(x)在CRC运算后的图样取决于传送过程中的错误图样的CRC运算结果。利用这一结论,我们可以用更为有效的方法对查找表进行最优化的分析和设计,用最小的地址空间生成单比特纠错的核心查找表。

发明内容
本发明的目的是提出一种基于循环冗余码的单比特纠错查表方法及其电路,基于通常的查表思想,通过最优化过程,用尽可能小的地址空间实现单比特纠错的核心查找表,极大的减少对资源的占用,同时使电路的整体结构更为有效和规整,以更加适合于专用集成电路(简称ASIC)中知识产权(简称IP)核的集成和复用。
本发明提出的基于循环冗余码的单比特纠错查表方法,包括如下步骤(1)对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m};(2)建立地址信息与内容信息一一映射的查找表T;(3)将上述接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;(4)从上述行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq;(5)将上述行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后 比特的单比特错误位置信息;(6)当上述前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;(7)根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;(8)重复步骤(3)~(7),完成所有接收数据段的纠错。
上述方法中,从1到m的校验位序号中提取子空间I的过程,包括以下步骤(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;(2)设待提取的子空间I的元素个数为p,取p的初始值为 (3)从上述矩阵A中任意取p列,构成n×p矩阵,共有Cmp种矩阵组合,对Cmp种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则进行步骤(4);(4)对子空间I的元素个数p赋以新值,p=p+1,重复步骤(2)和(3),直至找到任意两行都不相同的矩阵,以得到子空间I。
上述方法中,建立地址信息与内容信息一一映射的查找表T的过程,包括以下步骤(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;(2)从上述矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;(3)根据上述单比特错误图样的按行排列的校验结果顺序,构建 矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成 的矩阵E,作为查找表T的内容信息;(4)将上述矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。
其中构建矩阵D的过程,包括(1)设矩阵D的大小为 其中n为接收数据段的长度;(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。其中将e(x)多项式中非零项的次数映射成二进制代码的方法为若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为 比特,并在该二进制代码前补上“1”,作为最高位,构成长度为 的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
本发明提出的基于循环冗余码的单比特纠错查表电路,包括(1)校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,检验器与选择器相连接;(2)选择器,用于从上述的校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接;(3)存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和 比特的单比特错误位置信息,存储器与比较器相连接;(4)比较器,用于比较上述内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;(5)单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
上述电路中的比较器包括q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接;或q比特序列比较器及与门,将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示。
上述电路中的单比特纠错器包括(1)移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;(2)异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
本发明提出的基于循环冗余码的单比特纠错查表方法及其电路,采用查找表的方法进行单比特错误的定位,在查找表的构建上面利用了CRC运算时错误图样决定运算结果的特征,采用了最优化的分析方法,保证了查找表占用空间的最小化,同时周边电路结构简单,从而实现了占用资源尽可能小,结构简单、高效,易于集成的纠错方法和电路。本发明的优点之一是查找表的构建过程中,对地址信息进行最优化控制,实现其表示位数最小化,极大的减少了查找表所占用的地址空间,降低了存储单元的容量,比传统的定制方法减少了1倍以上。优点之二是匹配信息和错误位置信息表示简单,不需要经过计算,信息通过简单比较、移位即可用,保证了电路的简单实现。优点之三是整体电路模块清晰,结构规整,执行速度快,易于集成,非常适合在集成电路中的应用。


图1是本发明方法的流程框图。
图2是本发明方法中的子空间I的获得方法示意图。
图3是本发明方法中的单比特纠错查找表T的生成方法示意图。
图4是本发明方法中的单比特纠错查找表T的结构示意图。
图5是本发明方法中的单比特错误位置信息矩阵D的构建过程示意图。
图6是本发明方法的单比特错误位置信息矩阵D的构建过程中二进制码的映射方法。
图6(a)用于纠正信息位与校验位单比特错误,图6(b)用于只纠正信息位单比特错误。
图7是本发明提出的单比特纠错查表电路示意图。
图8是本发明中的比较器的电路示意图,其中图8(a)用于纠正信息位与校验位单比特错误,图8(b)用于只纠正信息位单比特错误。
图9是本发明中的单比特纠错器的电路示意图。
具体实施例方式
本发明提出的基于循环冗余码的单比特纠错查表方法,其流程框图如图1所示,首先对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m};建立地址信息与内容信息一一映射的查找表T;将接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;从行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq;将行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后 比特的单比特错误位置信息;当前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;根据单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;重复上述过程,完成所有接收数据段的纠错。
上述方法中,从1到m的校验位序号中提取子空间I的过程框图,如图2所示,首先将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;设待提取的子空间I的元素个数为p,取p的初始值为 从矩阵A中任意取p列,构成n×p矩阵,共有Cmp种矩阵组合,对Cmp种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则对子空间I的元素个数p赋以新值,p=p+1,重复上述过程,直至找到任意两行都不相同的矩阵,以得到子空间I。
上述方法中,建立的地址信息与内容信息一一映射的查找表T的结构如图4所示,其建立过程如图3所示,首先将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;从矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;根据单比特错误图样的按行排列的校验结果顺序,构建 矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成 的矩阵E,作为查找表T的内容信息;将矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。其中构建矩阵D的过程,如图5所示,包括(1)设矩阵D的大小为 其中n为接收数据段的长度;(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。其中将e(x)多项式中非零项的次数映射成二进制代码的方法为若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码,如图6(a)所示;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为 比特,并在该二进制代码前补上“1”,作为最高位,构成长度为 的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码,如图6(b)所示。
本发明提出的基于循环冗余码的单比特纠错查表电路示意图,如图7所示,包括校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,检验器与选择器相连接;选择器,用于从校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接;存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和 比特的单比特错误位置信息,存储器与比较器相连接;比较器,用于比较内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
上述电路中的比较器,包括q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接,如图8(a)所示;或q比特序列比较器及与门,该器件为可选项,若进行信息位以及校验位的单比特纠错,不用该器件,则将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示,如图8(b)所示。
上述电路中的单比特纠错器,如图9所示,包括移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
本发明提出的基于CRC的单比特纠错查表方法及其电路,核心思想是通过最优化分析,遍历单比特错误情况下所有可能的地址子空间,找到最小的地址子空间,构建地址表示位数尽可能小的查找表,该方法及其电路的工作原理如下将接收到的数据进行校验位位长为m的循环冗余校验,得到m比特的校验结果。
若校验结果为零向量,接收的数据校验正确,不需要进行单比特纠错,否则对该结果进行调整,按最优化的抽取子空间I,从中抽取p比特的地址信息,剩余部分构成q比特的待比较信息。从1到m的校验位序号中最优化的提取子空间I的过程是本发明的重点之一。该过程需要考虑最优化的约束,一是要求抽取子空间的元素个数尽可能的小,也就是p值最小,这样才能使查找表对应的地址空间最小化,二是要求按该子空间抽取的结果两两不相等,保证地址空间的唯一性。从一个n×m的校验矩阵中任意取p列,构成n×p的矩阵,共有Cmp种组合。通过调整p的值,总能够在当p大于等于某个值的时候,抽取的这些矩阵组合中,存在至少一个矩阵满足它的任意两行都不相同的条件。该值就是p的最后取值,也就是子空间在满足最优化约束条件下的p的最小取值;对应的最优化子空间I中的元素值为该p值情况下,满足任意两行都不相同的矩阵集合中,某一矩阵中的每一列在原校验A矩阵中的列号。这种最优化的方法能够在保证地址信息的唯一性前提下,让表示地址空间位数的p值达到最小,从而使寻址的操作尽可能简单,同时查找表占用的地址空间达到最小。
利用上述p比特的地址信息,在已预先生成的最优化的查找表T中查找,获得该地址所对应的内容信息。最优化查找表T的生成是本发明的重点之二。查找表T的生成利用了接收到的数据段在CRC运算后的结果直接取决于传送过程中的错误图样的CRC运算结果这一结论,根据对所有可能单比特错误图样e(x)进行校验位位长为m的循环冗余校验而得到的校验矩阵A,依照最优化的子空间I,抽取得到表示位数最小的地址信息矩阵,抽取后A矩阵的剩余部分构成匹配信息矩阵。在把所有可能的单比特错误图样e(x)进行校验位位长为m的循环冗余码校验以得到校验矩阵A的过程中,知道了每行所对应的单比特错误位置信息,对该信息进行处理,按一定规则映射成二进制代码,构建单比特错误位置信息矩阵。把地址信息矩阵作为查找表的地址,匹配信息矩阵和单比特错误位置信息矩阵合并作为和地址信息相对应的查找表的内容信息,构成所占用地址空间最小和内容空间尽可能少的查找表。
将上述的内容信息中的前q比特的匹配信息和q比特的待比较信息相比较,并根据是否要纠正校验位的单比特错误,结合内容信息中的后 比特的单比特错误位置信息的最高位,以得到单比特纠错指示。当两者相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当两者不吻合时,意味着发生了多比特错误,无法进行单比特的纠错,因此纠错过程结束。该部分的主体是两个q比特长序列的比较,这在数字电路中非常易于实现。
根据上述单比特错误位置信息和输出的单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错。通常情况下,通信系统只需要对信息位的单比特错误进行纠错,而校验位的单比特错误不需要纠正。
本发明提出的基于CRC的单比特纠错查表电路其中的校验位位长为m的循环冗余码校验器,在专用集成电路设计中,利用通常的CRC校验单元,其硬件描述语言VHDL或Verilog的源代码可以从很多途径获得,包括一些网站提供的自动生成工具,网上开放的IP库,一些半导体厂商例如Cadence公司提供的硬IP核等。
其中的选择器,根据最优化后确定的子空间I中的元素值,直接用硬连线实现m比特数据的p比特和q比特的划分。
其中的存储器。用普通的通用RAM或ROM实现,预先存储地址空间最优化的查找表T。存储器的地址对应查找表T的地址信息,存储器的地址对应的存储内容相对应于查找表T的内容信息,存储器中空闲的地址空间对应的存储内容置为全“1”或全“0”。
其中的比较器,其主体部分用通用的q比特长序列的比较器,实现两个q比特长的序列的相互比较。根据是否要纠正校验位的单比特错误,决定是否要外加与门。
其中单比特纠错器,利用移位器和异或器的简单组合,根据单比特错误位置信息和单比特纠错指示,完成单比特纠错。
以下以通用成帧规范中校验位位长为16的循环冗余码单比特纠错查表为例,介绍本发明的一个实施例对长度为32比特的数据进行校验位位长为16的循环冗余码校验,得到长度为16比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为16,从1到16的校验位序号中提取子空间I,I=i1,i2,i3,…,ip=2,3,4,5,6,7,11,其中p=7。
上述提取子空间I的过程为将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为16的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为16比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为16,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A;设待提取的子空间I的元素个数为p,取p的初始值为5;从上述矩阵A中任意取p列,构成32×p矩阵,共有C16p种组合,矩阵组合,对C16p种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则子空间I的元素个数p赋以新值,p=p+1,重复上述过程,直至找到任意两行都不相同的矩阵,以得到子空间I,这时p=7,I=2,3,4,5,6,7,11。
建立地址信息与内容信息一一映射的查找表T,其过程为将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为16的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为16比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为16,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A;从矩阵A中,将子空间I中的元素值作为该矩阵的列号,抽取7列比特,得到32×7的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成32×9子矩阵C,作为查找表T的内容信息中的匹配信息;根据单比特错误图样的按行排列的校验结果顺序,构建32×5矩阵D,作为查找表T的内容信息中的单比特错误位置信息,并与子矩阵C合并,E=[C,D],构成32×14的矩阵E,作为查找表T的内容信息;将矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。
其中构建矩阵D的过程为设矩阵D的大小为32×5,其中32为接收数据段的长度;校验矩阵A的各行对应了各自相应的单比特错误图样,将各单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数按一定规则映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去16后的值映射成二进制代码,其长度为4比特,再在该二进制代码前补上“1”,作为最高位,构成长度为5的新二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
将接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×16行向量R;若上述R为零向量,则接收的数据正确,若不为零,则从向量R中按子空间I抽取7比特元素,获得1×7的行向量Rp,剩余部分构成1×9的行向量Rq;将行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前7比特的匹配信息和后5比特的单比特错误位置信息;当前7比特的匹配信息与上述行向量Rq相吻合时,若单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错。
除了子空间I和查找表T在过程开始时构建一次之外,重复上述过程,完成所有接收数据段的纠错。
权利要求
1.一种基于循环冗余码的单比特纠错查表方法,包括如下步骤(1)对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,...,ip,其中1≤p≤m,且i1,i2,i3,...,ip∈{1,2,...,m};(2)建立地址信息与内容信息一一映射的查找表T;(3)将上述接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;(4)从上述行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq;(5)将上述行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后 比特的单比特错误位置信息;(6)当上述前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;(7)根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;(8)重复步骤(3)~(7),完成所有接收数据段的纠错。
2.如权利要求1所述的方法,其特征在于其中所述的从1到m的校验位序号中提取子空间I的过程,包括以下步骤(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;(2)设待提取的子空间I的元素个数为p,取p的初始值为 (3)从上述矩阵A中任意取p列,构成n×p矩阵,共有Cmp种矩阵组合,对Cmp种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则进行步骤(4);(4)对子空间I的元素个数p赋以新值,p=p+1,重复步骤(2)和(3),直至找到任意两行都不相同的矩阵,以得到子空间I。
3.如权利要求1所述的方法,其特征在于其中所述的接收到的数据长度为32比特,其中校验位位长为16,提取的子空间I为I=i1,i2,i3,...,ip=2,3,4,5,6,7,11,其中p=7。
4.如权利要求1所述的方法,其特征在于其中所述的建立地址信息与内容信息一一映射的查找表T的过程,包括以下步骤(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;(2)从上述矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;(3)根据上述单比特错误图样的按行排列的校验结果顺序,构建 矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成 的矩阵E,作为查找表T的内容信息;(4)将上述矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。
5.如权利要求4所述的方法,其特征在于其中所述的其中构建矩阵D的过程,包括以下步骤(1)设矩阵D的大小为 其中n为接收数据段的长度;(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。
6.如权利要求4所述的方法,其特征在于其中所述的将e(x)多项式中非零项的次数映射成二进制代码的方法为若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为 比特,并在该二进制代码前补上“1”,作为最高位,构成长度为 的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
7.一种基于循环冗余码的单比特纠错查表电路,其特征在于该电路包括(1)校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,检验器与选择器相连接;(2)选择器,用于从上述的校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接;(3)存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和 比特的单比特错误位置信息,存储器与比较器相连接;(4)比较器,用于比较上述内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;(5)单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
8.如权利要求7所述的电路,其特征在于其中所述的比较器包括q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接;或q比特序列比较器及与门,将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示。
9.如权利要求8所述的电路,其特征在于其中所述的单比特纠错器包括(1)移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;(2)异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
全文摘要
本发明涉及一种基于循环冗余码的单比特纠错查表方法及其电路,属于数字通信技术领域。将数据段进行循环冗余码校验,得到行向量,若不为零,则从中按子空间抽取p比特元素,获得行向量R
文档编号H03M13/00GK1829099SQ20061000136
公开日2006年9月6日 申请日期2006年1月20日 优先权日2006年1月20日
发明者葛宁, 潘赟 申请人:北京华环电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1