一种基于哈希算法的快速系统分组码译码方法

文档序号:7750612阅读:255来源:国知局

专利名称::一种基于哈希算法的快速系统分组码译码方法
技术领域
:本发明涉及通信
技术领域
,特别是一种基于哈希算法的快速系统分组码译码方法。
背景技术
:在通信、计算机等领域,在信息的存储和传播过程中信息可能会受到干扰或破坏。为了提高存储数据的安全性,往往会对信息进行冗余编码来提高信息恢复或重建的可靠性。系统形式的分组码在通信、计算机、电子等领域应用得非常多,译码算法也很多。对于(n,k)码,如果n-k也是比较大,采用查表算法将会消耗掉很多存储空间以及消耗很多的资源来做匹配比较。对于用软件译码的情形,会有比较大的译码延迟;对于用FPGA或其他硬件实现来译码的情形,也会消耗掉很大的存储资源以及用于实现搜索或匹配的资源。
发明内容本发明的目的在于克服现有技术的缺点,提供一种基于哈希算法的快速系统分组码译码方法。本发明技术方案本发明的算法特征是把错误比特分到两部分系统比特部分和校验比特部分。然后按照错误比特在这两部分的分布特性来进行译码。在传统的译码算法里,如果PtP=I或者PPT=I在GF⑵域里是成立的,则可以很好地译码;如果不存在PtP=I或PPt=I,按照错误比特在这两部分的分布特性来进行译码将很复杂,如果k值很大,就无法实现,往往需要用其它算法来译码。本发明关键之处在于采用了哈希算法,降低了查找表的存储空间,同时消除了2k次搜索匹配的过程。从而使得在大多数系统形式的线性分组码都可以把错误比特分到两部分(系统比特部分和校验比特部分),然后按照错误比特在这两部分的分布特性来进行译码。比如对于二次剩余码(16,7,6),其生成多项式为g(x)=x8+x5+x4+x3+l的二次剩余码是这大类码中的一个。该种码是DMR标准(一个无线通信标准)里用到的。本发明的算法里,是可以适用大多数二次剩余码的。生成多项式里的校验矩阵PtP=I或PPt=I均不成立。如果用直接搜索需要1项,每次判决需要1次比较操作;而采用哈希算法后查找表项可以降为32项,只需要一次比较操作。对于一个系统形式的分组码,其生成多项式可以用G=[Ik,Pk,nJ来表示,其校验矩阵可以用^^=[/—t,AU来表示。设比为!1矩阵的第i行n-k维向量,可能受干扰的码字c=((V1,...,C15C0),则校正子S=YjCA。设错误模式e=(ei,eQ)为η维向量,ei和e0分别为n-k和k维向量。用<,i=0,1表示在该向量上仅有m个1的向量,对于存在t个错误比特的系统分组码,可以分为t种情形ie\,e{;1),-.,()。对于存在至多t的比特的系统分组码,总共有1>种情形,其中T为最大可纠正错误的比特数,当t=0的时t=0候,表示没有错误。可以将可译码错误情形分为A、B、C三大类A对于t(T的情形,可以算得校正子S的重量不大于T。B对于(),t彡T的情形,对于大多数系统分组码,计算出来的校正子S的重量大于T。C:对于(),/+_/+《Γ的情形,计算出来的校正子S的重量也大于T。对于可纠正错误模式e=(ei;e0)里的所有可能%Ρ,其重量为Ttl,对于大多数系统形式的分组码,有Ttl>2Τ;对于C类情形的译码,需要具体情况具体分析,译码的判决很大程度上取决于生成多项式的重量分布;对于B,可以通过搜索e(ip张成的向量空间来得到错误模式。由于e(ip张成的向量空间比较大,直接搜索表格将需要2k项,如果k也比较大的话,搜索时间和空间都比较消耗资源,直接搜索会比较耗时间,可以通过对e(lp的各个比特进行哈希处理,使得k维的向量#可以转到一个接近|l0g2CfI维的向量组成的表TableS,表项接近^。如果哈希函数有idx=Hash(S),则Table[idx]=S,同时保存TableE,该表里保存会产生校正子S的最可能错误模式的信息,形式不规定。具体的译码过程为计算校正子S,求S的重量,如果S的重量不大于T,则S为错误模式,直接将c=(Cn^1,...,C1,c0)的k比特系统部分作为k比特消息;对C情形进行译码;如果和C情形也无法译出,则对B情形进行译码,其译码过程如下对S进行哈希运算,得到数值idx,读取TableS[idx],如果TableS[idx]不等于S,则存在不可译码错误;如果TableS[idx]等于S,则取出对应的TableE,和c=(c^,...,C1,C0)进行异或操作纠正错误以后,输出k比特系统部分作为k比特消息。本发明价值是,大部分二次剩余码是不符合PtP=I或PPt=I这个条件的,比如具体实施例里提到DMR用到的码,就不符合这个条件,所以直接用A,B,C三个步骤里提到的思想、办法是行不通的。本发明的办法是,修正了这个不足。利用系统码校验矩阵的特殊性生成一个查表算法,即哈希查表算法,(当然,不一定是哈希功能,只要是一种简单的映射关系就可以了。)针对DMR协议里的二次剩余码(16,7,6),存在一种基于哈希算法的快速系统分组码译码方法,译码计算方法得到接收比特r,其步骤如下步骤1)、通过接收到的向量r,计算校正子S,求S的重量;步骤2)、计算S的重量w,如果w(s)彡2,则置e=(s,0);步骤3)、校验矩阵P中存在一行向量P,使得平P+S的重量为1且S的重量不小于4且不大于6;步骤4)、取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),获取TableS[idx],如果TableS[idx]等于S,则用TableE作为错误模式e;步骤5)、如果校正子与可纠正错误模式不匹配,停止译码并返回错误;步骤6)、令译出的码字为/=r+e,译码结束。所述步骤1)、通过接收到的向量r,计算校正子S;求S的重量w(s),S彡T,如果S的重量不大于T,则S为错误模式,直接将c=(Cn^1,...,C1,C0)的k比特系统部分作为k比特消息;将S作为错误模式的系统部分,用错误模式校正r,输出被校验后向量的系统部分作为译码结果后,结束;如果S的重量大于T,计算校正子S的重量w(s),转步骤2)。所述步骤2)、计算S的重量w(s),如果w(s)彡2,则置e=(s,0),如果是,将S作为错误模式e的系统部分,其他比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后,结束;如果W(S)重量彡2,转步骤3)。所述步骤3)、校验矩阵P中存在一行向量P,使得平P+S的重量为1且S的重量不小于4且不大于6,如果对于校验矩阵ρ中的某个行向量Pi,有W(S+PP=1或0;如果w(s+Pj)=0,则置6=(0,v(i))),w(s)=5或w(s)=7;如果《(8+」)=1,4彡w(s)彡6,则置e=(u(J)),v(J)));如果是,P所在的P的列位置j,则系统比特的第j位比特是错误的,该比特位上为1,其他比特位0的向量作为错误模式e,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,校验矩阵ρ中存在一行向量P,使得P+S的重量为0,如果是,错误模式e的比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;在校验矩阵ρ中存在一行向量P,使得P+S的重量为0后,如果不是,转步骤4)。所述步骤4)、取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),用idx来查表得到一个值,如果该值等于S,则用idx作为下表查找另外一个值,该值为错误模式e,这是一个哈希表,表里存放预先计算好的值,即获取TableS[idx],如果tableS[idx]等于S,则用TableE作为错误模式e,用错误模式校正r,直接输出r的系统比特部分后,如果不是,查到的值等于S,查到的值等于S后,如果是,用id查找错误模式e,然后,转步骤6)用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,转步骤5),错误不可纠正,之后结束。所述步骤5)、如果校正子与可纠正错误模式不必配停止译码并返回错,并结束。所述步骤6)、令译出的码字为/=r+e,用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后译码结束。本发明的有益效果本发明提出一种基于哈希算法的译码算法,可以极大地减少存储容量以及取消搜索匹配的过程。本发明的方法适用于通信、计算机等领域中大多数线性分组系统码。图1是本发明基于哈希算法的快速系统分组码译码方法的流程图。具体实施例方式在本实施例中,只是描述如何译DMR标准里用到的码。本说明书中,表示法、符号以及专用词说明P校验矩阵I对角矩阵域运算符本说明书上的分组码运算均为二元域上运算。“+”运算表示为模二加,即1+1=0,1+0=1,0+0=0。W(χ)运算对向量χ求汉明重量s校正子向量e错误模式向量(ei;e0)表示e向量是由系统比特向量部分h和校验比特向量部分%级联起来的向量。r接收比特向量G生成多项式H校验矩阵c码字向量m消息向量v(J),r(J),e(J),c(J)表示向量ν,r,e,c的第j比特为1,其他为0。图1所示,基于哈希算法的快速系统分组码译码方法,对于ETSITS102361-1用到的二次剩余码(16,7,6),其生成多项式为g(x)=x8+x5+x4+x3+l。令w(s)表示S的重量。一种基于哈希算法的快速系统分组码译码方法,译码计算方法首先得到接收比特r,其步骤如下步骤1)、通过接收到的向量r,计算校正子S;求S的重量(重量是指汉明重量,即1的个数,是信息论里的基本术语),S彡T,如果S的重量不大于T,则S为错误模式,直接将c=(Cn^1,...,C1,C0)的k比特系统部分作为k比特消息;将S作为错误模式的系统部分,用错误模式校正r,输出被校验后向量的系统部分作为译码结果后,结束;如果S的重量大于T,计算校正子S的重量w(s),转步骤2)。步骤2)、计算S的重量w(s),如果w(s)彡2,则置e=(s,0),如果是,将S作为错误模式e的系统部分,其他比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果Sw(s)重量彡2,转步骤3),步骤3)、校验矩阵P中存在一行向量P,使得平P+S的重量为1且S的重量不小于4且不大于6,如果对于校验矩阵P中的某个行向量Pi,有w(s+Pj)=1或0;如果w(s+Pj)=0,则置e=(0,v(i)),w(s)=5或w(s)=7;如果,w(s+Pj)=1,4^w(s)^6,则置e=(u(J),v(i));如果是,P所在P的列位置j,则系统比特的第j位比特是错误的,该比特位上为1,其他比特位0的向量作为错误模式e,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,校验矩阵ρ中存在一行向量p,使得P+S的重量为0,如果是,错误模式e的比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;在校验矩阵ρ中存在一行向量P,使得P+S的重量为0后,如果不是,转步骤4)。步骤4)、取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),用idx来查表得到一个值,如果该值等于S,则用idx作为下表查找另外一个值,该值为错误模式e,这是一个哈希表,表里存放预先计算好的值,即获取TableS[idX],如果TableS[idx]等于S,则用TableE作为错误模式e,用错误模式校正v,直接输出ν?r的系统比特部分后,如果不是,查到的值等于S,查到的值等于S后,如果是,用id查找错误模式e,然后,转到步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,转步骤5),错误不可纠正,之后结束。步骤5)、如果校正子与可纠正错误模式不匹配,停止译码并返回错误;并结束;步骤6)、令译出的码字为/=r+e,用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后译码结束。权利要求1.一种基于哈希算法的快速系统分组码译码方法,译码计算方法得到接收比特r,其步骤如下步骤1)、通过接收到的向量r,计算校正子S,求S的重量;步骤2)、计算S的重量w,如果w(s)彡2,则置e=(s,0);步骤幻、校验矩阵P中存在一行向量P,使得平P+S的重量为1且S的重量不小于4且不大于6;步骤4)、取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),获取TableS[idx],如果TableS[idx]等于S,则用TableE作为错误模式e;步骤5)、如果校正子与可纠正错误模式不匹配,停止译码并返回错误;步骤6)、令译出的码字为/=r+e,译码结束。2.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤1)、通过接收到的向量r,计算校正子S;求S的重量w(s),S彡T,如果S的重量不大于T,则S为错误模式,直接将C=(^,...,CljC0)的k比特系统部分作为k比特消息;将S作为错误模式的系统部分,用错误模式校正r,输出被校验后向量的系统部分作为译码结果后,结束;如果S的重量大于T,计算校正子S的重量w(s),转步骤2)。3.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤2)、计算S的重量w(s),如果w(s)彡2,则置e=(s,0),如果是,将S作为错误模式e的系统部分,其他比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后,结束;如果w(s)重量彡2,转步骤3)。4.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤幻、校验矩阵P中存在一行向量P,使得平P+S的重量为1且S的重量不小于4且不大于6,如果对于校验矩阵ρ中的某个行向量Pi,有w(s+Pj)=1或0;如果w(s+Pj)=0,则置e=(0,ν⑴),W(s)=5或W(S)=7;如果w(s+Pj)=1,4^w(s)(6,则置e=(u(J),ν⑴);如果是,P所在的P的列位置j,则系统比特的第j位比特是错误的,该比特位上为1,其他比特位0的向量作为错误模式e,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,校验矩阵P中存在一行向量P,使得P+S的重量为0,如果是,错误模式e的比特全为0,然后,转步骤6),用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;在校验矩阵P中存在一行向量P,使得P+S的重量为0之后,如果不是,转步骤4)。5.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤4)、取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),用idx来查表得到一个值,如果该值等于S,则用idx作为下表查找另外一个值,该值为错误模式e,这是一个哈希表,表里存放预先计算好的值,即获取TableS[idx],如果TableS[idx]等于S,则用TableE作为错误模式e,用错误模式校正r,直接输出r的系统比特部分后,如果不是,查到的值等于S,查到的值等于S后,如果是,用id查找错误模式e,然后,转步骤6)用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后结束;如果不是,转步骤5),错误不可纠正,之后结束。6.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤5)、如果校正子与可纠正错误模式不必配停止译码并返回错,并结束。7.根据权利要求1所述的基于哈希算法的快速系统分组码译码方法,其特征在于,所述步骤6)、令译出的码字为Z=r+e,用错误模式校正接收到的向量r,再输出被校验后向量的系统部分作为消息m,之后译码结束。全文摘要本发明公开一种基于哈希算法的快速系统分组码译码方法,得到接收比特r,步骤如下1)通过接收到的向量r,计算校正子S;2)计算S的重量w;3)校验矩阵P中存在一行向量P;4)取出S里的低5比特bl和高4比特bh,计算idx=mod(((bl<<4)+bh),32),获取TableS[idx],如果TableS[idx]等于S,则用TableE作为错误模式e;5)如果校正子与可纠正错误模式不匹配,停止译码并返回错误;6)令译出的码字为v*=r+e,译码结束。本发明方法适用于通信、计算机等领域中大多数线性分组系统码。文档编号H04L1/00GK102123004SQ20101019155公开日2011年7月13日申请日期2010年6月4日优先权日2010年6月4日发明者付文良,黄家志申请人:科立讯电子(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1