一种线性分组码编码参数的盲识别方法
技术领域
本发明涉及数字通信系统中一种线性分组码编码参数的盲识别方法,所述的线性分组码包括Hamming码、Golay码、CRC码、BCH码及部分LDPC系统码,同时也包括上述分组码的删余码。本发明适用于智能通信、通信侦察、信息对抗等领域。
背景技术
线性分组码在现代通信中应用非常广泛,随着数字通信技术的发展,越来越多的领域都会产生对信道编码盲识别技术的需求,信道编码盲识别技术也成为当今通信研究的前沿领域。
如何从信息码流中正确地识别出信道编码的相关参数,从而正确解码,是信息侦察和信息截获领域的一个基本问题,目前还少见报道。
对(n,k)线性系统分组码而言,其生成矩阵可表示为G=[Ik P],其中Ik为k×k单位阵,P为k×(n-k)矩阵,决定n-k个冗余比特或一致校验位。由它生成的码字,前k位是相互独立的信息位,后面n-k位校验对前面k位进行约束,即校验位是由前面的k位线性表示的。它的校验矩阵可以表示为H=[PT In-k]。
刘玉君在其2001年河南科学技术出版社的“信道编码”一书中介绍了线性分组码的如下一个性质:任何一个(n,k)线性分组码都可以由G的基线性表示,同样,如果将收到一组码字排成m行n列(m>n)矩阵形式,即每行是一个完整的码字,对这个矩阵进行初等行变换,则矩阵的前k行可以化成[Ik H]形式,余下m-k行全部化为0,如下所示。
虽然该性质为线性分组码的一个重要性质,可以在已知线性分组码分组长度和分组起点的情况下得到校验矩阵,但是该性质不能用来对线性分组码进行盲识别,本发明即主要解决该性质的前提条件:分组码长度和分组码起点的确定问题,通过合理算法,最终解决线性分组码的盲识别问题。
发明内容
本发明所要解决的技术问题是提出一种运算复杂度低,适用面广的线性分组码编码参数的盲识别方法。本发明方法通过线性变换在确定分组长度和分组起始点后,对矩阵进行分析,最终确定分组码的生成多项式。
为了解决上述技术问题,本发明提供的线性分组码编码参数的盲识别方法,包括如下步骤:
①根据接收的数据选取合适长度序列作为识别序列,确定将要排列的矩阵行数p,p至少大于2倍的分组长度;
②取定列数最大值和最小值,按列数变化将数据序列排成矩阵形式,计算各矩阵的秩,并记下秩不等于列数的列值,确定分组码长度n;
③矩阵列数依次取为:n,2n,3n,4n……行数大于列数即可。将码序列进行移位,对各矩阵分别求秩,记下n种移位情况(无移位和n-1种不同移位)时不同维数下矩阵的秩,分析确定分组码起始点;
④从③中分析的起始点开始,将序列按m行n列(m>n)矩阵形式排列,即每行是一个完整的码字,对这个矩阵进行初等行变换,确定分组码的信息数k,码率r=k/n及校验矩阵H;
⑤分析校验矩阵H,得到分组码生成多项式g(x)。
优选地,本发明上述线性分组码编码参数的盲识别方法中,分组码分组长度n的确定:对(n,k)线性分组码所构成的p×q矩阵(p>2n,q<p),若q为n或n的整数倍,则单位化后左上角单位阵的维数相等,且此时矩阵的秩不等于列数q。
优选地,本发明上述线性分组码编码参数的盲识别方法中,分组码起始点的确定:对(n,k)线性分组码所构成的p×q矩阵(p>2n,q=a*n,a>1)而言,当分组码起点与矩阵每行起点重合时,其秩最小(相应解空间维数最大)。
优选地,本发明上述线性分组码编码参数的盲识别方法中,生成多项式向量的确定:对(n,k)线性分组码校验矩阵H,其第k行的第k列到第n列即为生成多项式向量。
优选地,本发明上述线性分组码编码参数的盲识别方法中,线性分组码范围包括Hamming码、Golay码、CRC码、BCH码及部分LDPC系统码,同时也包括上述分组码的删余码。
相对于现有技术,本发明方法通过线性变换在确定分组长度和分组起始点后,对分组码序列进行矩阵变换,经数学分析,最终确定分组码的生成多项式。本发明较好地解决了线性分组码分组长度确定,分组起始点确定及生成多项式确定等问题,仅通过通信内容即可实现线性分组码编码参数的盲识别,具有算法简捷,过程清晰,识别速度快等特点。
附图说明
图1为本发明线性分组码编码参数盲识别的基本流程图。
图2为本发明分组码分组长度确定流程图。
图3为本发明分组码分组起点确定流程图。
具体实施方式
下面结合附图和具体实施例,进一步阐述本发明。这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明记载的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
本发明以下优选实施例旨在提出一种便于实现的线性分组码盲识别方法,通过分阶段逐步确定分组码的分组长度和分组起始点,从而为利用背景技术中所述性质创造条件。经矩阵变换,确定校验矩阵,进而得到分组码的生成多项式。
如图1所示,本发明优选实施例提供的线性分组码编码参数的盲识别方法,包括如下步骤:
①根据接收的数据选取合适长度的序列作为识别序列,固定将要排列的矩阵行数p,p至少大于2倍的分组长度。
本实施例中为了保证②中分组长度确定的有效性,矩阵行数p至少应为未知分组长度的2倍,数据长度应大于p2,实际应用中,(n,k)线性系统分组码的分组长度n不会大于255,所以一般取p>500。
②取定列数最大值和最小值,按列数变化将数据序列排成矩阵形式,计算各矩阵的秩,并记下秩不等于列数的列值,确定分组码长度n。
本实施例中将数据序列排成p行q列的矩阵形式,其中3≤q<p,对每个矩阵进行初等行变换,计算并记下其秩。确定本实施例中分组长度的定理1为:对(n,k)线性分组码所构成的p×q矩阵(p>2n,q<p),若q为n或n的整数倍,则单位化后左上角单位阵的维数相等,且此时矩阵的秩不等于列数q。
对定理1的证明如下:由线性分组码定义C=m*G,输出向量C为输入向量m的线性变换,且任意完整的线性分组码所表示的线性约束关系完全相同,等效于“系统形式”:[Ik P]。(n,k)线性分组码的n-k位校验只对本码组的k位信息起约束关系,和其他码组无关,其相互约束的最少码元即编码约束度为码长n。当分组码排成p×q矩阵(p>2n,q<p)时,显然当q=n且每行恰好为分组码的一个完整码组,即当矩阵的每行起点恰好为分组码起点时,单位化后,此p×n矩阵的(p>2n)秩为分组信息位长度k。当q=a*n(a>1)时,对p×q矩阵(p>2n,q=a*n)而言,每行至少存在(a-1)个位置完全对齐且线性相关的完整码组,此时矩阵的秩必定小于q。同理,当q与n没有倍数关系时,每行要么不存在一个完整的码组(q<n),要么虽然存在完整的码组,但其位置却是没对齐的(q>n),对矩阵而言,就是各列线性无关,其秩必然为列数q。
故只需对留存的列值取最大公约数即可得到分组长度n。
如图2所示即为分组码分组长度确定流程图。
③矩阵列数依次取为:n,2n,3n,4n……行数大于列数即可。将码序列进行移位,对各矩阵分别求秩,记下n种移位情况(无移位和n-1种不同移位)时不同维数下矩阵的秩,分析确定分组码起始点。
本实施例中确定分组码起始点的定理2为:对(n,k)线性分组码所构成的p×q矩阵(p>2n,q=a*n,a>1)而言,当分组码起点与矩阵每行起点重合时,其秩最小(相应解空间维数最大)。
对定理2的证明如下:对p×q矩阵(p>2n,q=a*n,a>1)而言,当q为n倍数时,每行码组内位置必定是一一对齐的,若矩阵的每行起点恰好为分组码的起点,则每行必存在a个完整码组,否则存在a-1个完整码组,显然当存在a个完整码组的时候,矩阵内线性相关性最强,其秩最小,相应解空间维数最大。
故当记下矩阵移位的n种情况(无移位和n-1种不同一位)时,则当各矩阵秩最小(解空间维数相对最大)时的移位即为分组码的起点。
如图3所示即为分组码分组起点确定流程图。
④从③中分析的起始点开始,将序列按m行n列(m>n)矩阵形式排列,即每行是一个完整的码字,对这个矩阵进行初等行变换,确定分组码的信息数k,码率r=k/n及校验矩阵H。
本实施例中当分组码的分组长度和起始位确定以后,依背景技术中分组码性质,从起始点开始,将码字排成m行n列(m>n)的矩阵形式,即每行是一个完整的码字,对这个矩阵进行初等行变换,则矩阵的前k行可以化成[Ik H]形式,得到校验矩阵H,依单位阵维数可以确定分组码的信息数k,从而确定码率r=k/n。
⑤分析校验矩阵H,得到分组码生成多项式g(x)。
本实施例中由校验矩阵H得到分组码生成多项式向量的定理3为:对(n,k)线性分组码校验矩阵H,其第k行的第k列到第n列即为生成多项式向量。
对定理3的证明如下:(n,k)分组码的任何生成矩阵都可以简化成“系统形式”:G=[IkP],称矩阵H为(n,k)码的校验矩阵,有校验关系:C·HT=0成立。式中0代表由n-k个元素组成的全零行矢量,另有G·HT=0,这里0代表一个由全零元素组成的k×(n-k)维矩阵,则有H=[PT In-k]。可见要得到P,只需取校验矩阵H的第1到k行的k到n列子矩阵的转置即可。又由定义,分组码中次数最低的多项式称为生成多项式,显然H中第k行的第k列到第n列即为生成多项式向量。
有了生成多项式向量,自然生成多项式g(x)就很容易写出了。
本发明所涉及的数学符号均为本技术领域常用符号。