一种差错控制编码的码字类型盲识别方法
【专利摘要】一种差错控制编码的码字类型盲识别方法,属于通信系统中的码字识别【技术领域】。该方法通过线性变换,以【背景技术】中(n,k,m)系统卷积码、删除卷积码、Turbo码的编码参数盲识别方法为创造条件,识别码流序列的码长和码字起点,其后,对码长范围及若干个行最简矩阵的列数与秩进行分析,首先区分出turbo码;进一步通过观察行最简矩阵的子块矩阵对角线规律,列值与第一个全零行行值相等的该列元素重复出现性,区分(n,k,m)系统卷积码与删除卷积码,最终完成码字类型盲识别,具有算法简捷,识别效率和准确度高等特点。本发明适用于智能通信、信息处理等领域。
【专利说明】一种差错控制编码的码字类型盲识别方法
【技术领域】
[0001] 本发明涉及数字通信系统中的一种差错控制编码的码字类型盲识别方法,具体为 (n,k,m)系统卷积码与删除卷积码、Turbo码的码字类型盲识别方法,适用于智能通信、信 息处理等领域,属于通信系统中的码字识别【技术领域】。
【背景技术】
[0002] 在协作通信中,接收方已知码字类型及编码参数才能正确译码,而在非协作通信 中,接收方对接收到的码流没有任何先验知识,必须首先进行码字类型盲识别,因为识别码 字类型,是真正实现信道编码参数盲识别的前提。
[0003] 1955年爱里斯(Elias)提出了卷积码,并且针对(n, k,m)系统卷积码编码参数的 盲识别已有很多方法。曾静在其2005年电子科技大学的硕士学位论文"VSAT网盲检测系 统的开发"中根据卷积码序列的矩阵排列规律,给出了求解原码校验矩阵的方法。薛国庆等 人在"系统卷积码盲识别"【信息安全与通信保密,2009】一文中提出了一种针对系统卷积 码的盲识别矩阵化简方法。
[0004] 码率为1/2的卷积码编码器码率较低,会产生一倍于原数据的冗余数据。通过删 余的方法,可以由码率为1/2的源卷积码来生成(n-1)/n型码率的删除码。针对删除卷积 码,陆佩忠、沈利等在其20〇 5年发表在中国科学:Ε辑信息科学35 (2)中"删除卷积码的盲 识别"一文中提出了一种通过求解容错线性方程组来解决删除卷积码盲识别的方法。
[0005] Turbo码在现代通信中应用非常广泛,其最大的特点是通过引入交织器和解交织 器,实现随机性编码,并通过若干短码的有效结合实现长码,达到接近Shannon理论极限的 性能。中国专利CN102244555A于2011年11月16日公开了一种通过将Turbo码中交织分 析转化为"卷积码+交织"模式,最终完成Turbo码盲识别的方法。
[0006]上述提及的盲识别方法,均是针对已知码字类型的情况下,对特定码字的编码参 数盲识别,而对于码字类型未知的情况,编码参数的盲识别也就无从谈起,因此要先进行码 字类型的盲识别,码字类型的正确识别是信道编码参数识别的首要前提。目前,查阅已有的 参考文献,尚未见有关码字类型盲识别方面的资料。
【发明内容】
[0007]为了克服现有技术存在的缺陷和不足,本发明提出一种运算复杂度低,高效率的 (n,k,m)系统卷积码与删除卷积码、Turbo码的码字类型盲识别方法即一种差错控制编码 的码字类型盲识别方法,以解决对接收到的码流没有先验知识的情况下,如何对码字进行 正确分类的问题。
[0008] 本发明方法采用的技术方案如下: _]-种差错控制编码_字类随识别施,以计算机为硬件平台,_待识纖 据读入、识别过程和识别结果的显示功能,其中识别过程主要是由计算机将待丨口丨数读 入计算机内存,然涵过本龍别施贿侧,测的结果显示在计龍騎上,该识别 方法的步骤如下:
[0010] (1)首先定义待识别码字的二进制〇、1比特数据为码流序列,由计算机读入码流 序列并选取识别序列的长度不小于(130X10) X 130,该识别序列的长度数值即为步骤2中 建立的一系列识别矩阵中最大的识别矩阵大小;
[0011] ⑵利用识别序列建立pXq大小的识别矩阵,其中矩阵列数q的大小依次从3取 到130,且矩阵行数p = l〇q;
[0012] (3)对识别矩阵进行初等变换得到行最简矩阵,计算行最简矩阵的秩r及其左上 角单位阵维数α,初等变换的具体方法为:对识别矩阵中的数据从左到右按列处理,如果 对角线上的元素为1,则将对角线元素所在的行设为标准行,将同列其他有非零元素的行替 换为该行与标准行中的元素模二加后所得的结果,如果对角线上的元素为零,则寻找该列 对角线元素下方的非零元素所在的行作为标准行,将同列其他有非零元素的行替换为该行 与标准行中的元素模二加后所得的结果,如果对角线下方位置的元素全为〇,则不再进行化 简;
[0013] ⑷若行最简矩阵的秩r与其列数q不相等,则记录当前矩阵的列数q、秩r、左上 角单位阵维数α及列数与秩的差值q-r这四个数值,并以[^,ai,qi- ri]形式表示,下 标i表示第i组数据,若行最简矩阵的秩r与其列数q相等则转步骤5 ;
[0014] (5)将列数q加1,若q彡130,则返回步骤2,否则转步骤6 ;
[0015] (6)统计记录的数据[qi, a, a 丨,qi-ri]组数记为 ReservedNum,若 ReservedNum 等 于〇,则判断码流序列为Turbo码,码字类型盲识别结束,若ReservedNum不等于0则转步骤 7;
[0016] (7)比较步骤6中统计的ReservedNum组数据[q^ l,a " qi-rj中所有左上角单 位阵维数a i的大小,得到a i的最小值记为a _ ;
[0017] (8)观察这ReservedNum组数据[q^ a,a " 中所有左上角单位阵维数a i 的大小,若存在某一 a i > a min,则删去该组[q^,r" a qi-rj ,同时ReservedNum减1,不 断重复此操作,直至剩下所有数据[如^,ai,qi-ri]中的 ai均满足ai= anin,然后将所 剩数据的下标按从小到大的顺序重新编号;
[0018] (9)经过步骤8数据筛选后,比较现有的ReservedNum组数据ΙΧ,A, a qfrj 中所有行最简矩阵秩A的大小,若存在某一 A > ri+1,则删去该组[qi,:^,a qi-ri],同时 ReservedNum减1,并将所剩数据的下标按从小到大的顺序重新编号,不断重复此操作,直 至剩下所有数据[q;,A, a qfrj中的&均满足& < ri+1 ;
[0019] (10)经过步骤9数据筛选后,比较现有的ReservedNum组数据[qi, ri,a q「ri] 中所有行最简矩阵列数与秩差值qm的大小,若存在某一 qm > qi+1-ri+1,则删去数据 [qi+1,ri+1,a i+1, qi+1-ri+1],同时ReservedNum减1,并将所剩数据的下标按从小到大的顺序 重新编号,不断重复此操作,直至剩下所有数据[Ui, a^qi-ig中的qi-ri均满足qrri < Qi+「ri+1 ;
[0020] (11)对上一步筛选后所剩ReservedNum组数据[q。a, a d q厂r;]中的qi求最大 公约数,即为码长ng;
[0021] (12)若码长ng > 8,则判断码流序列为Turbo码,码字类型盲识别结束,否则转步 骤13 ;
[0022] (13)将码流序列按小于13倍码长且为码长倍数的列数建立一个识别矩阵p X q, 且口 > q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步骤3中 一样;
[0023] (14)观察行最简矩阵对角线元素,沿着矩阵右下角向左上角方向看,当对角线上 第一次出现元素0与1相邻,且0所在列的列值比1所在列的列值小的情况时,用该〇元素 所在列的列值V与码长ng进行计算,可得码字起点即= i ; .L呢」
[0024] (15)将码流序列中shiftg位之后的序列按大于13倍码长且为码长倍数的列数 建立η个足够多的Pj X q」(1 < j彡η)大小的识别矩阵,且Pj > qj,设这n个矩阵的列值为 % q2, Lqn,经步骤3中描述的初等变换后均化简为行最简矩阵,其秩分别为ri,r2, Lrn ; [0025] (16)当η趋于无穷时,若满足以下两条件之一,则判断码流序列为Turbo码,码字 类型盲识别结束,若以下两条件均不满足则转步骤17,这两个条件具体为:
[0026] a)存在 & =屮(1 彡 j 彡 n);
[0027] b) ^ =L =-n r,,< 不成立·
[0028] (17)将码流序列中Shiftg位之后的序列排列成以30倍码长为列数的识别矩阵 > q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步 骤3中一样;
[0029] (18)沿着矩阵左上角向右下角方向看,观察行最简矩阵中以码长为单位的矩阵子 块,若子块矩阵对角线元素中1的个数不等于码长减1,则判断码流序列为(n,k,m)系统卷 积码,码字类型盲识别结束,反之转步骤19 ;
[0030] (19)记行最简矩阵第一个全零行行值为q。,若列值%所在列中从上到下q。个元 素在%+dXng(d G N*)列重复出现,则判断码流序列为(n,k,m)系统卷积码,反之判断码流 序列为删除卷积码,码字类型盲识别结束。
[0031] 本发明的有益效果如下:
[0032] (1)将矩阵分析法充分应用到了码字类型盲识别中,对各种编码后码流序列的行 最简矩阵的特性进行综合分析,确定了用于类型判别的有效特征;
[0033] (2)识别过程中,采用由粗分类到细分类的分步方式,分类条件一步步细化,最線 完成了码字类型的盲识别; ~
[0034] (3)识别过程中,尽量采用了较少的识别矩阵个数及较小的识别矩阵维数,降低了 运算复杂度并提高了识别速度。
【具体实施方式】
[0035] 下面结合实施例对本发明作进一步说明,但不限于此。
[0036] 实施例:
[0037]本发明实施例如下,一种差错控制编码的码字类型盲识别方法,以计算机为硬件 平台,实现待识别数据读入、识别过程和识别结果的显示功能,其中识别过程主要是由计算 机将待识别数据读入计算机内存,然后通过本盲识别方法进行识别,识别的结果显示在计 算机屏幕上,该识别方法的步骤如下:
[0038] (1)首先定义待识别码字的二进制〇、1比特数据为码流序列,由计算机读入码流 序列并选取识别序列的长度不小于(130X10) X 130,该识别序列的长度数值即为步骤2中 建立的一系列识别矩阵中最大的识别矩阵大小;
[0039] ⑵利用识别序列建立p X q大小的识别矩阵,其中矩阵列数q的大小依次从3取 到130,且矩阵行数p = l〇q;
[0040] (3)对识别矩阵进行初等变换得到行最简矩阵,计算行最简矩阵的秩r及其左上 角单位阵维数α,初等变换的具体方法为:对识别矩阵中的数据从左到右按列处理,如果 对角线上的元素为1,则将对角线元素所在的行设为标准行,将同列其他有非零元素的行替 换为该行与标准行中的元素模二加后所得的结果,如果对角线上的元素为零,则寻找该列 对角线元素下方的非零元素所在的行作为标准行,将同列其他有非零元素的行替换为该行 与标准行中的元素模二加后所得的结果,如果对角线下方位置的元素全为〇,则不再进行化 简;
[0041] ⑷若行最简矩阵的秩r与其列数q不相等,则记录当前矩阵的列数^、秩r、左上 角单位阵维数α及列数与秩的差值q-r这四个数值,并以[qi,ri, ai,qi-ri]形式表示,下 标i表示第i组数据,若行最简矩阵的秩r与其列数q相等则转步骤5 ;
[0042] (5)将列数q加1,若q彡130,则返回步骤2,否则转步骤6 ;
[0043] (6)统计记录的数据[qi,r" a q厂ri]组数记为 ReservedNum,若 ReservedNum 等 于0,则判断码流序列为Turbo码,码字类型盲识别结束,若ReservedNum不等于0则转步骤 7;
[0044] (7)比较步骤6中统计的ReservedNum组数据a ^厂!^]中所有左上角单 位阵维数a i的大小,得到a i的最小值记为a _ ;
[0045] (8)观察这ReservedNum组数据[q。a,a qi-rj中所有左上角单位阵维数a i 的大小,若存在某一 a ^ > a min,则删去该组[qprp a。qrrj,同时ReservedNum减1,不 断重复此操作,直至剩下所有数据[qp:^,ai, qi-ri]中的%均满足ai= amin,然后将所 剩数据的下标按从小到大的顺序重新编号;
[0046] (9)经过步骤8数据筛选后,比较现有的ReservedNum组数据[q^ 1^,a q厂rj 中所有行最简矩阵秩r;的大小,若存在某一 A彡ri+1,则删去该组[qi,ri, a qi-rJ,同时 ReservedNum减1,并将所剩数据的下标按从小到大的顺序重新编号,不断重复此操作,直 至剩下所有数据[qi,h,a q^rj中的A均满足& < ri+1 ;
[0047] (10)经过步骤9数据筛选后,比较现有的ReservedNum组数据[q^ A, a " qm] 中所有行最简矩阵列数与秩差值m的大小,若存在某一 qrri多qi+1-ri+1,则删去数据 [qi+1, ri+1, a i+1,qi+1-ri+1],同时ReservedNum减1,并将所剩数据的下标按从小到大的顺序 重新编号,不断重复此操作,直至剩下所有数据[qi,ri,apC^-rJ中的 qi-ri均满足qm < q1+i_r1+1 ;
[0048] (11)对上一步筛选后所剩ReservedNum组数据[q^ r;, a i, qj-rj中的q;求最大 公约数,即为码长ng;
[0049] (12)若码长ng > 8,则判断码流序列为Turbo码,码字类型盲识别结束,否则转步 骤13 ;
[0050] (13)将码流序列按小于13倍码长且为码长倍数的列数建立一个识别矩阵pXq, 且? > q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步骤3中 一样;
[0051] (14)观察行最简矩阵对角线元素,沿着矩阵右下角向左上角方向看,当对角线上 第一次出现元素0与1相邻,且0所在列的列值比1所在列的列值小的情况时,用该〇元素 所在列的列值q'与码长ng进行计算,可得码字起点即= i x/ig;
[0052] (15)将码流序列中shiftg位之后的序列按大于13倍码长且为码长倍数的列数 建立η个足够多的 Pj X qj (1彡j彡n)大小的识别矩阵,且Pj > qj,设这n个矩阵的列值为 qi,q2, Lqn,经步骤3中描述的初等变换后均化简为行最简矩阵,其秩分别为ri, r2, Lrn ;
[0053] (16)当η趋于无穷时,若满足以下两条件之一,则判断码流序列为Turbo码,码字 类型盲识别结束,若以下两条件均不满足则转步骤17,这两个条件具体为:
[0054] a)存在 I·』=qj(l 彡 j 彡 η);
[0055] b)聽互^= =屋^不成立·
[0056] (17)将码流序列中shiftg位之后的序列排列成以30倍码长为列数的识别矩阵 > q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步 骤3中一样;
[0057] (18)沿着矩阵左上角向右下角方向看,观察行最简矩阵中以码长为单位的矩阵子 块,若子块矩阵对角线元素中1的个数不等于码长减1,则判断码流序列为(n, k,m)系统卷 积码,码字类型盲识别结束,反之转步骤19 ;
[0058] (19)记行最简矩阵第一个全零行行值为q。,若列值qQ所在列中从上到下q。个元 素在%+dXng(d e N*)列重复出现,则判断码流序列为(n,k,m)系统卷积码,反之判断码流 序列为删除卷积码,码字类型盲识别结束。
【权利要求】
1. 一种差错控制编码的码字类型盲识别方法,以计算机为硬件平台,实现待识别数据 读入、识别过程和识别结果的显示功能,其中识别过程主要是由计算机将待识别数据读入 计算机内存,然后通过本盲识别方法进行识别,识别的结果显示在计算机屏幕上,该识别方 法的步骤如下: (1) 首先定义待识别码字的二进制〇、1比特数据为码流序列,由计算机读入码流序列 并选取识别序列的长度不小于(130X10)X130,该识别序列的长度数值即为步骤2中建立 的一系列识别矩阵中最大的识别矩阵大小; (2) 利用识别序列建立pXq大小的识别矩阵,其中矩阵列数q的大小依次从3取到 130,且矩阵行数p=IOq; (3) 对识别矩阵进行初等变换得到行最简矩阵,计算行最简矩阵的秩r及其左上角单 位阵维数α,初等变换的具体方法为:对识别矩阵中的数据从左到右按列处理,如果对角 线上的元素为1,则将对角线元素所在的行设为标准行,将同列其他有非零元素的行替换为 该行与标准行中的元素模二加后所得的结果,如果对角线上的元素为零,则寻找该列对角 线元素下方的非零元素所在的行作为标准行,将同列其他有非零元素的行替换为该行与标 准行中的元素模二加后所得的结果,如果对角线下方位置的元素全为0,则不再进行化简; (4) 若行最简矩阵的秩r与其列数q不相等,则记录当前矩阵的列数q、秩r、左上角单 位阵维数α及列数与秩的差值q_r这四个数值,并以[qi,ri,ai,qi_ri]形式表示,下标i 表示第i组数据,若行最简矩阵的秩r与其列数q相等则转步骤5 ; (5) 将列数q加1,若q彡130,则返回步骤2,否则转步骤6 ; (6) 统计记录的数据Hq^ri,a^qi-Iri]组数记为ReservedNum,若ReservedNum等于 0, 则判断码流序列为Turbo码,码字类型盲识别结束,若ReservedNum不等于0则转步骤7 ; (7) 比较步骤6中统计的ReservedNum组数据Iiqi, !Ti,aDqm]中所有左上角单位阵 维数ai的大小,得到ai的最小值记为amin ; (8) 观察这ReservedNum组数据Iiqi, !Ti,Cti,qm]中所有左上角单位阵维数Cti的大 小,若存在某一Cti >amin,则删去该组I^ri,a^qi-Iri],同时ReservedNum减1,不断重 复此操作,直至剩下所有数据Iiqi,A,a 中的ai均满足ai=α_,然后将所剩数 据的下标按从小到大的顺序重新编号; (9) 经过步骤8数据筛选后,比较现有的ReservedNum组数据Iiqi, !Ti,a^qi-Iri]中 所有行最简矩阵秩A的大小,若存在某一 !Ti彡ri+1,则删去该组Iiqi, !Ti,aQi-Iri],同时 ReservedNum减1,并将所剩数据的下标按从小到大的顺序重新编号,不断重复此操作,直 至剩下所有数据Iiqi,A,aqm]中的!Ti均满足!Ti <ri+1 ; (10) 经过步骤9数据筛选后,比较现有的ReservedNum组数据Iiqi, !Ti,aqm]中 所有行最简矩阵列数与秩差值的大小,若存在某一 >qi+1-ri+1,则删去数据 [qi+1,ri+1,ai+1,qi+1-ri+1],同时ReservedNum减1,并将所剩数据的下标按从小到大的顺序 重新编号,不断重复此操作,直至剩下所有数据[^ri,Cii,qm]中的qm均满足qm <qi+i-ri+1 ; (11) 对上一步筛选后所剩ReservedNum组数据Iiqi, !Ti,aqm]中的qi求最大公约 数,即为码长ng; (12) 若码长ng> 8,则判断码流序列为Turbo码,码字类型盲识别结束,否则转步骤 13 ; (13) 将码流序列按小于13倍码长且为码长倍数的列数建立一个识别矩阵pXq,且p >q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步骤3中一 样; (14) 观察行最简矩阵对角线元素,沿着矩阵右下角向左上角方向看,当对角线上第一 次出现元素〇与1相邻,且〇所在列的列值比1所在列的列值小的情况时,用该〇元素所在 t 列的列值V与码长ng进行计算,可得码字起点即i (15) 将码流序列中shiftg位之后的序列按大于13倍码长且为码长倍数的列数建立η 个足够多的PjXq」(1彡j彡η)大小的识别矩阵,且Pj >qj,设这η个矩阵的列值为qi,q2,L qn,经步骤3中描述的初等变换后均化简为行最简矩阵,其秩分别为Γι,r2,Lrn ; (16) 当η趋于无穷时,若满足以下两条件之一,则判断码流序列为Turbo码,码字类型 盲识别结束,若以下两条件均不满足则转步骤17,这两个条件具体为: a)存在I·』=q』(1彡j彡η); ψ>- ψ-ψ )limi^ =i^ =L 不成立. "?++备―^ft-备 I ' (17) 将码流序列中shiftg位之后的序列排列成以30倍码长为列数的识别矩阵pXq, 且? >q,对识别矩阵进行初等变换得到行最简矩阵,其中初等变换的具体方法同步骤3中 一样; (18) 沿着矩阵左上角向右下角方向看,观察行最简矩阵中以码长为单位的矩阵子块, 若子块矩阵对角线元素中1的个数不等于码长减1,则判断码流序列为(n,k,m)系统卷积 码,码字类型盲识别结束,反之转步骤19 ; (19) 记行最简矩阵第一个全零行行值为%,若列值%所在列中从上到下%个元素在 qtl+dXng(deN#)列重复出现,则判断码流序列为(n,k,m)系统卷积码,反之判断码流序列 为删除卷积码,码字类型盲识别结束。
【文档编号】H04L1/00GK104270225SQ201410461897
【公开日】2015年1月7日 申请日期:2014年9月11日 优先权日:2014年9月11日
【发明者】马丕明, 马柳青, 杨勇 申请人:山东大学