[发明专利]一种二进制本原 BCH 码盲识别方法有效

专利信息
申请号: 201310343717.1 申请日: 2013-08-08
公开(公告)号: CN103401567A 公开(公告)日: 2013-11-20
发明(设计)人: 马丕明;王丹;杨勇 申请(专利权)人: 山东大学
主分类号: H03M13/15 分类号: H03M13/15
代理公司: 济南金迪知识产权代理有限公司 37219 代理人: 许德山
地址: 250100 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种二进制本原BCH码盲识别方法,属于信道编码盲识别技术领域,采用线性矩阵分析法或比特相关性算法识别马场,再识别起点,线性矩阵分析法可在误码率较高时正确识别码长小于等于15的BCH码,比特相关性算法可快速识别出码率不太高的码字码长。码根特性算法通过统计码根的分布判断码长是否正确,可以识别出高码率的码字码长。识别起点时采用公因式算法。公因式算法的依据是无误码情况下所有码字的公因式是生成多项式或生成多项式的倍数。识别生成多项式时采用码根算法,最后遍历本原多项式译码,根据误码率得到本原多项式。本方法运算速度快,正确率高,容错性好,适用于所有二进制本原BCH码。
搜索关键词: 一种 二进制 本原 bch 识别 方法
【主权项】:
1.一种二进制本原BCH码盲识别方法,包括码长识别、起点识别、生成多项式识别和本原多项式识别,其具体步骤如下:〈1〉码长识别1)初始化参数,可能的起点:shiftg=-1,取值范围为[-1∞],shiftg的类型gchoice=-1,取值范围为{-1,1},识别的码长:ng=-1,取值范围为[-1∞],从本原多项式文件中读入本原多项式表,接收到的码字序列为R,长度为Rlength;2)用线性矩阵分析法识别码长是否小于等于15,定义q为3~50内的循环变量,将接收到的数据按行写入50×q的矩阵M中,如果M的秩不等于q,则保留q,计算保留数即q在3~50的循环中保留的满足上述条件的q的最大公因式作为识别的码长ng,如果没有保留数,则没有识别出码长;3)判断ng是否满足下列两个条件:ng+1是2的整数幂;ng>0,如果ng不满足这两个条件,则进入步骤4),如果ng满足这两个条件,则识别到的码长就是ng,码长识别过程结束;4)若ng+1不是2的整数幂并且ng≤0,码长识别如下:(a)定义阶数m=5,偏移量shift=0,数据序列指针R0=R;(b)设码长n=2m-1,R=R0+shift,使用比特相关性算法判断R中数据的码长是否是n:i.定义矩阵XN×n,矩阵函数为XN×n,将接受到的码字序列R的前N*n比特按行写入矩阵XN×n,然后将矩阵XN×n转置得到Xtn×N,Xtn×N的列数集合为N={0,1,…,n-1},Xtn×N中信息集的列数集合为I1×n,Xtn×N冗余列数集合为J1×(N-n),计算得到的码字个数num=0,码重分布向量为W1×(N+1),将其初始化为全0;ii.寻找集合I1×n,I∪J=N,其中符号∪、∩、分别表示集合相加、取交集、空集合,I、J是两个集合,集合元素是矩阵Xtn×N的列数,Xt(I)表示I1×n中的元素对应的列构成的方阵,Xt(J)表示J1×(N-n)中元素对应的列构成的矩阵,如果Xt(I)能够通过行化简得到单位阵,则I1×n为正确的信息集,记录下Xt(I)的行化简步骤,对Xt(J)实施相同的行化简步骤,执行步骤iii;如果找不到I1×n使得Xt(I)能够通过行化简得到单位阵,则认为n为接收到的码字序列的码长,ng=n,gchoice=1,shiftg=shift;iii.将{0,1,…,n-1}随机平分成两个向量Z1(1×k1),Z2(1×k2),k1+k2=n,k1、k2分别是向量Z1,Z2的列数,Z1中元素对应的行组成的矩阵为Λ1,Z2中元素对应的行组成的矩阵为Λ2,定义sigma=log(n)/log(2),随机选取sigma个J1×(N-n)中的元素构成向量L,选取Λ1中的任意2行,共有种取法,对于遍取的所有的Λ1中的任意2行,将其在二元域上相加,得到向量Λ1|L,Λ1|(J\L),其中Λ1|L表示L中的元素对应的Λ1的列构成的矩阵,J\L表示J-L,,L∈J,同样计算Λ2|L,Λ2|(J\L);iv.比较所有的Λ1|L和Λ2|L,如果Λ1|L=Λ2|L,则Λ1+Λ2的码重为weight=weight((Λ1+Λ2)|(J\L))+4,W(weight)=W(weight)+1,num=num+1;其中:(Λ1+Λ2)是将Λ1、Λ2两个向量相加,(Λ1+Λ2)|(J\L)表示J\L中元素对应的列构成的向量、weight((Λ1+Λ2)|(J\L))表示(Λ1+Λ2)|(J\L)向量中1的个数、W(weight)表示重量为weight的向量Λ1+Λ2出现的次数;v.如果num≥200,转入下一步,如果num<200,则转入步骤iii;vi.计算W的平方差为hsigma,如果hsigma>30,则认为n是接受到的码字序列的码长,ng=n,shiftg=shift,gchoice=1;(c)判断n是否为二进制本原BCH码的码长,如果n是接收到的码字序列的码长,则跳出循环,ng=n,如果判断n不是接收到的码字序列的码长且shift<n,则shift=shift+n/m,重新执行步骤(b);如果判断n不是接收到的码字序列的码长且shift≥n,则执行步骤(d);(d)使用码根算法判断码长是否是接收到的码字序列的码长:1〉根据阶数m和本原多项式表中m对应的第1个本原多项式,计算本原关系表,定义偏移量shift=0;2〉定义码字序列指针R=R0+shift,对于一个长度为n个二进制序列(c0,c1,c2,…,cn-2,cn-1),可以将其每一项看作是一个码字多项式c0+c1x+c2x2+…+cn-2xn-2+cn-1xn-1中的各项的系数,将代入到码字多项式c0+c1x+c2x2+…+cn-2xn-2+cn-1xn-1中,其中符号表示任意、∈表示属于、及式表示对于任意属于集合[1,n-1]的元素x,xl可以通过步骤1〉中的本原关系表找到,其中符号l表示幂次,最后在GF(2m)上计算多项式的值,如果结果为0,表示x为这个多项式的根,将R中前1000*n个比特分割成1000个码字,计算码根分布,如果码根出现的概率最大值小于0.9,则进入步骤3〉,统计码根出现的概率与最大值相差小于0.1的码根数目,如果该数目是m的整数倍,则判断该码长正确,识别码长结束,shiftg=shift,gchoice=1;如果该数目不是m的整数倍,则进入步骤3〉;3〉shift=shift+1,如果shift<n,则执行步骤2〉,如果shift≥n,n不是接收到的码字序列的码长;(e)如果码根特性算法判断n是接收到的码字序列的码长,则识别得到的码长为n,ng=n,否则m=m+1,shift=0,执行步骤(b);〈2〉起点识别a〉识别的码长为ng,定义起点偏移量为start,如果gchoice==1,则R=R0+shiftg-ng/m,shiftgmost=3*ng/m,Rlength=Rlength-(shiftg-ng/m),否则R=R0,shiftgmost=n;b〉使用最大公因式算法进行起点识别:①定义偏移量shift=0,定义一个ng×ng的矩阵M,分配相应空间作为缓冲区1和缓冲区2,定义num1、num2作为循环变量,统计最小值:shiftmin=200,统计最大值shiftmax=0,统计最大值对应的偏移量shiftg1=0,统计最小值对应的偏移量shiftg2=0,公因式个数最大值的统计最大值对应的公因式总数sum1=0,公因式个数最大值的统计最小值对应的公因式总数sum2=0,公因式个数最大值为max,公因式个数总数为sum;②定义数据序列指针R1=R+shift,码字序号num1=0,码字循环次数num2=0;将R1前200*ng个比特分割成200个码字;③将第num1个码字循环左移num2次,放入M的第num2行,num2=num2+1.如果num2==ng,则num2=0,num1=num1+1,使用欧几里德算法计算M中所有行的公因式,将公因式及其阶数放入缓冲区1中,如果num1==200,则执行步骤④,如果num1≠200执行步骤③;④统计公因式,首先将公因式按照阶数由低到高排列,相同的公因式合并,次数相应增加,如果高次公因式可以被低次多项式整除,则删除高次公因式,低次公因式次数增加,将统计后的结果放入缓冲区2中,max为公因式出现的次数最大值,sum为公因式次数的和;⑤如果max大于shiftmax,则shiftg1=shift,shiftmax=shift,sum1=sum,如果max小于shiftmin,则shiftg2=shift,shiftmin=shift,sum2=sum,shift=shift+1,如果shift<ng,则执行步骤②,否则执行步骤⑥;⑥如果sum1>sum2,则起点偏移量为start=shiftg1,否则为start=shiftg2,c〉如果gchoice==1,则start=start+shiftg-ng/m,起点偏移量为start,起点识别完成;〈3〉生成多项式识别a)起点偏移量为start,码长ng,阶数m=log2(ng+1),偏移量为shift=start,状态变量flag=0,码字序列指针R=R0+shift;b)根据阶数m和本原多项式表中m对应的第1个本原多项式,计算本原关系表;c)对于一个长度为ng个二进制序列(c0,c1,c2,…,cng-2,cng-1),可以将其每一项看作是一个码字多项式c0+c1x+c2x2+…+cng-2xng-2+cng-1xng-1中的各项的系数,将代入到码字多项式中,xl可以通过b)中本原关系表找到,最后在GF(2m)上计算多项式的值,如果结果为0,表示x为这个多项式的根,将R中前1000*ng个比特分割成1000个码字,计算码根分布,如果码根出现的概率最大值小于0.9,则进入步骤d),统计码根出现的概率,统计码根概率与概率最大值相差小于0.1的码根数目rootnum,信息位长度y=n-rootnum,如果此时起点偏移量和码长都是接收到的码字序列的真实起点和码长,那么BCH码字阶数m、信息位长度k、纠错能力t之间的关系表中必然存在一个纠错能力t使得n=2m-1,y==k,如果没有t满足条件,则进入步骤d),否则进入步骤e);d)如果flag=0,则定义m=2,shift=0,flag=1,R=R0+shift,n=2m-1,执行步骤b),如果flag=1且shift<n,则shift=shift+1,如果flag==1且shift=n,则m=m+1,shift=0,R=R0+shift,执行步骤c);e)接收到的码字序列的真实起点偏移量start=shift,根据最大的前rootnum个码根得到一个由rootnum个一元一次多项式,将这些多项式相乘、化简,从而得到生成多项式G,G的阶数degree=rootnum;〈4〉本原多项式识别a.定义码字序列R=R0+start,m=log(ng)/log(2),根据二进制本原BCH码阶数m、纠错能力t和信息位长度k之间的对应关系得到信息位长度k,阶数m共有prime_max个本原多项式,本原多项式序数primenum=0,误比特数Errorbits=0,最小无比特数Errormin=1e20,无法纠错的次数Error=0,最可能的本原多项式的序数posprimenum=0,译码再编码后对比错误最小个数ErrorRmin=1e20;b.根据阶数m的第primenum个本原多项式,计算伽罗华域,对接收到的码字序列R的前2000个码字进行译码,Errorno是译码过程中不能纠正的错误个数;c.根据生成多项式G将译码后的信息序列进行编码,得到的码字为code,将code与R的前2000个码字进行对比,不相同的位数为ErrorR;d.无法纠错的次数Error=Errorno*k+Errorbits,如果Error<Errormin,则Errormin=Error,posprimenum=primenum,ErrorRmin=ErrorR;如果Error=Errormin且ErrorR<ErrorRmin,则Errormin=Error,posprimenum=primenum,ErrorRmin=ErrorR;e.本原多项式序数primenum=primenum+1,如果primenum=prime_max,则执行步骤f,否则执行b;f.根据阶数m的第primenum个本原多项式,计算伽罗华域,对R的前2000个码字进行译码,Errorno是译码过程中不能纠正的错误个数,Errorbits是译码纠正的错误个数,根据生成多项式G将译码后的信息序列进行编码,得到的码字为code,将code与R的前2000个码字进行对比,不相同的位数为ErrorR;g.第primenum个本原多项式就是接收到的码字序列使用的本原多项式,置信度为:1-ErrorR/2000/ng。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310343717.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top