一种可容错的RS码码长起点识别方法转让专利

申请号 : CN201310344575.0

文献号 : CN103401652B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马丕明李丹丹杨勇

申请人 : 山东大学

摘要 :

一种可容错的RS码码长起点识别方法,属于信道编码盲识别技术领域,该识别方法通过计算和待识别码字序列汉明距离与随机码字序列汉明距离的出现概率偏移量来识别RS码的码长和起点,包括三个参数初始化,码长识别以及起点识别三个步骤。本发明提供的RS码码长和起点识别方法,针对本原根为0的无误RS码可以达到100%识别,并且克服了只能用肉眼看结果图的识别缺点,可以通过编码仿真出结果的变化趋势。采取码长和起点同时识别的方法,且容错效果好,可实现误比特率为10-4的RS码的识别。

权利要求 :

1.一种可容错的RS码码长起点识别方法,通过计算机内用C语言仿真算法进行识别,该方法包括参数初始化、码长识别以及起点识别三个步骤,其具体步骤如下:

1)参数初始化

设置RS码的最大可能码长nmax,主要识别阶数m为3到9的RS码的起点和码长,所以将最大可能码长设为29-1,即nmax=511;设置所需码字个数codenum,根据经验值令codenum=

200;

2)码长识别,按如下步骤进行:

a)码长n从1开始遍历,每次遍历都依次进行(b)到(g)步的操作,找到真实码长后,结束遍历;

b)生成长度为n*codenum的0、1随机码字序列;

c)以码长n为间隔划分随机码字序列得到codenum个码长为n的随机码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,则一共有(codenum2-codenum)/2种两两组合的随机码字,可能出现的随机码字汉明距离集为{0,1,2,L,n},设distance1为与随机码字汉明距离集相对应的各个元素出现的次数集合,即distance1={distance1[0],distance1[1],...,distance1[n]},distance1[i]表示汉明距离i在(codenum2-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距离的计算方法为计算两个码字相应位置元素不同的个数;

d)计算随机码字序列汉明距离出现概率集合P′={P′[0],P′[1],...,P′[n]},计算方法如(1)式所示:P′[i]=distance1[i]/((codenum2-codenum)/2),i=0,1,...,n      (1)其中:P′[0]、P′[1] …… P′[n]分别是随机码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,方括号[]内元素表示为汉明距离,{}表示集合,P′[i]是集合P′中的第i个元素;

e)以码长n为间隔划分待识别码字序列得到codenum个码长为n的码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,则一共有(codenum2-codenum)/2种两两组合的待识别码字,可能出现的待识别码字序列汉明距离集为{0,1,2,L,n},设distance为与待识别码字汉明距离集相对应的各个元素出现的次数集合,即distance={distance[0],distance[1],...,distance[n]},distance[i]表示汉明距离i在(codenum2-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距离的计算 方法为计算两个码字相应位置元素不同的个数;

f)计算待识别码字序列汉明距离出现概率集合P={P[0],P[1],...,P[n]},计算方法如(2)式所示:2

P[i]=distance[i]/((codenum-codenum)/2),i=0,1,...,n     (2)其中:P[0]、P[1] …… P[n]分别是待识别码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,方括号[]内元素表示为汉明距离、{}表示集合,P[i]是集合P中的第i个元素;

g)计算汉明距离出现概率P与随机码字序列汉明距离出现概率P′的偏移量En,按式(3)计算:

其中:Pi表示待识别码字序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率,Pi′表示随机码字序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率,||2表示对其内部元素计算模的平方;

h)若n

i)至此,每一个码长n都有一个En与之对应,令偏移量矢量集合E={E1,E2,...,Enmax},求E的一次差序列,一次差序列的表达式如(4)式所示:E1i=Ei+1-Ei,i=0,1,...,n-1     (4)

其中:Ei表示偏移量矢量集合E中的第i个值,Ei+1表示偏移量矢量集合E中的第i+1个值,E1表示偏移量矢量集合E的一次差序列集合,E1i表示E1的第i个值;

j)找出E1中最大的元素,并记录最大元素的下标imax,设E12i表示E1的第2*i个元素值,E13i表示E1的第3*i个元素值,若E12i>E1i/10且E13i>E1i/10,则imax=i即为真实码长,码长识别成功;若E12i≤E1i/10或E13i≤E1i/10,则i不是真实码长;

3)起点识别

因为只有当识别时选取的待识别序列起点为完整码字的首个比特且识别出的码长为真实码长时,Ei的值明显大于其左边n-1个值Ei-1,Ei-2,...,Ei-(n-1)和右边n-1个值Ei+1,Ei+2,...,Ei+(n-1),Eki的值明显大于其左边n-1个值Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1),2≤k≤3,当k>3时,Eki的值明显大于其左边n-1个值 Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1)的规律将会变弱或消失,且此时随着i的增大,Ei成平缓递增趋势,所以采取同时遍历起点start和码长的方法来识别起点和码长,start由0到nmax遍历,每一次遍历都转入步骤2)开始码长识别的所有操作,直到码长识别正确时,此时的起点即为真实起点。

说明书 :

一种可容错的RS码码长起点识别方法

技术领域

[0001] 本发明涉及一种基于汉明距离的RS码起点和码长的盲识别方法,即一种可容错的RS码码长起点识别方法,属于信道编码盲识别技术领域。

背景技术

[0002] 在通信对抗领域里,为了获取敌方更多有效信息,需要对截获数据的编码方式进行识别,并估计其编码参数,因此信道编码的盲识别技术具有重要的实际应用价值。目前很多研究RS码盲识别的论文都是在起点和码长已知的情况下研究RS码的生成多项式识别,实际上在起点和码长未知情况下是无法实现RS码的全盲识别的。
[0003] 两个码字间的汉明距离即两个等长码字之间对应位上码元取值不同的位的数目。汉明距离是RS码的一个重要参数,它表示该RS码抗干扰性的强弱。“信道编码盲识别技术研究”【西安电子科技大学,闫郁翰,硕士毕业论文,2012.03.15】提出的基于最小距离的线性分组码码长识别方法在实际码长比较大的情况下,数据量往往不能保证识别的准确性,识别成功的概率随着真实码长的增大而减小。

发明内容

[0004] 为克服现有技术存在的缺陷与不足,本发明提出一种基于码字间汉明距的RS码码长和起点的识别方法,已解决识别过程中数据量大准确率低的问题,使得识别准确度较高,并且容错性能增强。
[0005] 为了实现上述发明目的,本发明采用的技术方案如下:
[0006] 一种可容错的RS码码长起点识别方法,通过计算机内用C语言仿真算法进行识别,该方法包括参数初始化、码长识别以及起点识别三个步骤,其具体步骤如下:
[0007] 1)参数初始化
[0008] 设置RS码的最大可能码长nmax,主要识别阶数m为3到9的RS码的起点和码长,所以将最大可能码长设为29-1,即nmax=511;设置所需码字个数codenum,根据经验值令codenum=200;
[0009] 2)码长识别,按如下步骤进行:
[0010] a)码长n从1开始遍历,每次遍历都依次进行(b)到(g)步的操作,找到真实码长后,结束遍历;
[0011] b)生成长度为n*codenum的0、1随机码字序列;
[0012] c)以码长n为间隔划分随机码字序列得到codenum个码长为n的随机码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,则一共有(codenum2-codenum)/2种两两组合的随机码字,可能出现的随机码字汉明距离集为{0,1,2,…,n},设distance1为与随机码字汉明距离集相对应的各个元素出现的次数集合,即dis tan ce1={dis tan ce1[0],dis tan ce1[1],...,dis tan ce1[n]},distance1[i]表示汉明距i在(codenum2-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距的计算方法为计算两个码字相应位置元素不同的个数;
[0013] d)计算随机码字序列汉明距离出现概率集合P′={P′[0],P′[1],...,P′[n]},计算方法如(1)式所示:
[0014] P′[i]=dis tan ce1[i]/((codenum2-codenum)/2),i=0,1,...,n   (1)[0015] 其中:P′[0]、P′[1]……P′[n]分别是随机码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,运算符号[]表示其内元素为汉明距离,{}表示集合,P′[i]是集合P′中的第i个元素;
[0016] e)以码长n为间隔划分待识别码字序列得到codenum个码长为n的码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,则一共有(codenum2-codenum)/2种两两组合的待识别码字,可能出现的待识别码字序列汉明距离集为{0,1,2,…,n},设distance为与待识别码字汉明距离集相对应的各个元素出现的次数集合,即dis tan ce={dis tan ce[0],dis tan ce[1],...,dis tan ce[n]},distance[i]表示汉明距i在(codenum2-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距的计算方法为计算两个码字相应位置元素不同的个数;
[0017] f)计算待识别码字序列汉明距离出现概率集合P={P[0],P[1],...,P[n]},计算方法如(2)式所示:
[0018] P[i]=dis tan ce[i]/((codenum2-codenum)/2),i=0,1,...,n   (2)
[0019] 其中:P[0]、P[1]……P[n]分别是待估计码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,运算符号[]表示其内元素为汉明距离、{}表示集合,P[i]是集合P中的第i个元素;
[0020] g)计算待识别码字序列汉明距离出现概率P与随机码字序列汉明距离出现概率P′的偏移量En,按式(3)计算:
[0021]
[0022] 其中:Pi表示待估计码子序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率, 表示随机码字序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率,2
||表示对其内部元素计算模的平方;
[0023] h)若n<nmax,则n=n+1,转入步骤b);否则若n=nmax,则转入下一步;
[0024] i)至此,每一个码长n都有一个En与之对应,令偏移量矢量集合E={E1,E2,...,Enmax},求E的一次差序列,一次差序列的表达式如(4)式所示:
[0025] E1i=Ei+1-Ei,i=0,1,...,n-1   (4)
[0026] 其中:Ei表示偏移量矢量集合E中的第i个值,Ei+1表示偏移量矢量集合E中的第i+1个值,E1表示偏移量矢量集合E的一次差序列集合,E1i表示E1的第i个值;
[0027] j)找出E1中最大的元素,并记录最大元素的下标imax,设E12i表示E1的第2*i个元素值,E13i表示E1的第3*i个元素值,若E12i>E1i/10且E13i>E1i/10,则imax=i即为真实码长,码长识别成功;若E12i≤E1i/10或E13i≤E1i/10,则i不是真实码长;
[0028] 3)起点识别
[0029] 因为只有当识别时选取的待识别序列起点为完整码字的首个比特且识别出的码长为真实码长时,Ei的值明显大于其左边n-1个值Ei-1,Ei-2,...,Ei-(n-1)和右边n-1个值Ei+1,Ei+2,...,Ei+(n-1),Eki的值明显大于其左边n-1个值Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1),2≤k≤3,当k>3时,Eki的值明显大于其左边n-1个值Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1)的规律将会变弱或消失,且此时随着i的增大,Ei成平缓递增趋势,所以采取同时遍历起点start和码长的方法来识别起点和码长,start由0到nmax遍历,每一次遍历都转入步骤2)开始码长识别的所有操作,直到码长识别正确时,此时的起点即为真实起点。
[0030] 本发明的有效增益如下:
[0031] 1、本发明提供的RS码码长和起点识别方法,针对本原根为0的无误RS码可以达到100%识别,并且克服了只能用肉眼看结果图的识别缺点,可以通过编码仿真出结果的变化趋势。
[0032] 2、本发明提供的RS码码长和起点识别方法,采取码长和起点同时识别的方法,且容错效果好,可实现误比特率为10-4的RS码的识别。

附图说明

[0033] 图1是本发明可容错RS码码长和起点识别的流程框图。

具体实施方式

[0034] 下面结合附图和实施例对本发明做进一步说明,但不限于此。
[0035] 实施例:
[0036] 本发明实施例如图1所示,一种可容错的RS码码长起点识别方法,通过计算机内用C语言仿真算法进行识别,该方法包括参数初始化、码长识别以及起点识别三个步骤,其具体步骤如下:
[0037] 1)参数初始化
[0038] 设置RS码的最大可能码长nmax,主要识别阶数m为3到9的RS码的起点和码长,所以将最大可能码长设为29-1,即nmax=511;设置所需码字个数codenum,根据经验值令codenum=200;
[0039] 2)码长识别,按如下步骤进行:
[0040] a)码长n从1开始遍历,每次遍历都依次进行(b)到(g)步的操作,找到真实码长后,结束遍历;
[0041] b)生成长度为n*codenum的0、1随机码字序列;
[0042] c)以码长n为间隔划分随机码字序列得到codenum个码长为n的随机码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,则一共有(codenum2-codenum)/2种两两组合的随机码字,可能出现的随机码字汉明距离集为{0,1,2,…,n},设distance1为与随机码字汉明距离集相对应的各个元素出现的次数集合,即dis tan ce1={dis tan ce1[0],dis tan ce1[1],...,dis tan ce1[n]},2
distance1[i]表示汉明距i在(codenum-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距的计算方法为计算两个码字相应位置元素不同的个数;
[0043] d)计算随机码字序列汉明距离出现概率集合P′={P′[0],P′[1],...,P′[n]},计算方法如(1)式所示:
[0044] P′[i]=dis tan ce1[i]/((codenum2-codenum)/2),i=0,1,...,n   (1)[0045] 其中:P′[0]、P′[1]……P′[n]分别是随机码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,运算符号[]表示其内元素为汉明距离,{}表示集合,P′[i]是集合P′中的第i个元素;
[0046] e)以码长n为间隔划分待识别码字序列得到codenum个码长为n的码字,计算两两随机码字间汉明距离,并统计不同汉明距离出现的次数,若码长为n,码字个数为codenum,2
则一共有(codenum-codenum)/2种两两组合的待识别码字,可能出现的待识别码字序列汉明距离集为{0,1,2,…,n},设distance为与待识别码字汉明距离集相对应的各个元素出现的次数集合,即dis tan ce={dis tan ce[0],dis tan ce[1],...,dis tan ce[n]},distance[i]表示汉明距i在(codenum2-codenum)/2种组合中出现的次数,i=0,1,...,n,两个码字间汉明距的计算方法为计算两个码字相应位置元素不同的个数;
[0047] f)计算待识别码字序列汉明距离出现概率集合P={P[0],P[1],...,P[n]},计算方法如(2)式所示:
[0048] P[i]=dis tan ce[i]/((codenum2-codenum)/2),i=0,1,...,n   (2)
[0049] 其中:P[0]、P[1]……P[n]分别是待估计码字序列的汉明距离0,1,…,n在(codenum2-codenum)/2种组合中出现的概率,运算符号[]表示其内元素为汉明距离、{}表示集合,P[i]是集合P中的第i个元素;
[0050] g)计算待识别码字序列汉明距离出现概率P与随机码字序列汉明距离出现概率P′的偏移量En,按式(3)计算:
[0051]
[0052] 其中:Pi表示待估计码子序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率, 表示随机码字序列中汉明距离i在(codenum2-codenum)/2种组合中出现的概率,||2表示对其内部元素计算模的平方;
[0053] h)若n<nmax,则n=n+1,转入步骤b);否则若n=nmax,则转入下一步;
[0054] i)至此,每一个码长n都有一个En与之对应,令偏移量矢量集合E={E1,E2,...,Enmax},求E的一次差序列,一次差序列的表达式如(4)式所示:
[0055] E1i=Ei+1-Ei,i=0,1,...,n-1   (4)
[0056] 其中:Ei表示偏移量矢量集合E中的第i个值,Ei+1表示偏移量矢量集合E中的第i+1个值,E1表示偏移量矢量集合E的一次差序列集合,E1i表示E1的第i个值;
[0057] j)找出E1中最大的元素,并记录最大元素的下标imax,设E12i表示E1的第2*i个元素值,E13i表示E1的第3*i个元素值,若E12i>E1i/10且E13i>E1i/10,则imax=i即为真实码长,码长识别成功;若E12i≤E1i/10或E13i≤E1i/10,则i不是真实码长;
[0058] 3)起点识别
[0059] 因为只有当识别时选取的待识别序列起点为完整码字的首个比特且识别出的码长为真实码长时,Ei的值明显大于其左边n-1个值Ei-1,Ei-2,...,Ei-(n-1)和右边n-1个值Ei+1,Ei+2,...,Ei+(n-1),Eki的值明显大于其左边n-1个值Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1),2≤k≤3,当k>3时,Eki的值明显大于其左边n-1个值Eki-1,Eki-2,...,Eki-(n-1)和右边n-1个值Eki+1,Eki+2,...,Eki+(n-1)的规律将会变弱或消失,且此时随着i的增大,Ei成平缓递增趋势,所以采取同时遍历起点start和码长的方法来识别起点和码长,start由0到nmax遍历,每一次遍历都转入步骤2)开始码长识别的所有操作,直到码长识别正确时,此时的起点即为真实起点。