尤红雨 王 垚 王 翔 黄知涛
(国防科技大学电子科学学院,湖南长沙 410073)
为了实现稳定可靠的通信,信道编码技术被广泛应用于各类数字通信系统中,该技术的合理应用可以有效提高信息传输的质量[1]。随着无线通信信道环境日趋复杂,以及太空等通信领域对信息传输质量的要求越来越高,对信道编码的抗噪性能也提出了更高的要求。BCH(Bose-Chaudhuri-Hocquenghem)码、RS(Reed-Solomon)码和卷积码等单一编码方式逐渐难以适应复杂的信道环境,复合编码因其优异的抗噪性能得到了人们的重视。TPC(Turbo-Product-Codes)码作为一种复合编码,能够同时纠正信息序列中的随机错误和突发错误,且构造简单,适用于信道环境复杂的通信系统。目前,TPC码广泛应用于卫星通信、深空通信,以及无线接入系统中,如WiMAX、IEEE 802.20、数字视频广播卫星(DVB-S)系统等[2]。对于智能通信、频谱监视等应用领域,能否利用接收序列获得所采用的编码参数对后续译码等过程非常关键,TPC 码作为一种应用广泛的复合编码,目前对其盲识别的研究成果不足以支撑实际需求。因此,对TPC 码进行盲识别的研究具有重要价值。
TPC 码作为一种复合编码,目前应用的结构可分为二维TPC 码和三维TPC 码,即在不同维度方向上利用子码对序列进行编码,中间通过矩阵交织完成码字序列的行列变换。TPC码常采用的子码有扩展汉明码、扩展BCH 码、RS码等[3],三维结构中也存在(n,n-1)偶校验码。在卫星通信系统中,子码为扩展BCH码的TPC码最为常见[4],且码率较高。因此,对TPC 码进行盲识别,子码的研究识别必不可少。目前对BCH 码和RS 码的研究,主要将其作为分组码进行盲识别,很少从TPC 码子码的角度研究。针对本原BCH 码识别问题,文献[5]提出了一种利用码根差熵和码根统计的本原BCH 码识别方法,但在高误码率情况下,码根差熵适应误码能力变差,且算法计算量较大。文献[6]利用共轭根的性质简化了伽罗华域的傅里叶变换运算,计算量降低40%,且能够在不遍历整个候选数据集的情况下识别BCH 编码参数。文献[7]提出了一种基于平均余弦符合度的识别算法,引入软判决信息对本原BCH 码进行识别,利用软判决信息对码根的分布情况进行统计,检验量充分利用了软判决信息,识别效果较好。针对RS码识别,文献[8]从提高容错性能出发,提出基于GFFT 的识别算法,虽然算法具有一定的容错性能,但是运算量随着码长会急剧增加。文献[9]基于部分码根校验匹配的识别方法,建立了二元域统计判决模型,引入了能够衡量校验关系成立大小的平均校验符合度概念,通过遍历的方式对参数进行匹配,该算法具有较好的低信噪比适应能力。现有研究成果,均利用先验信息,通过遍历可能的参数取值,选取符合度最高的参数作为识别结果,能够满足本原BCH 码和RS 码的识别需求。而扩展 BCH 码作为TPC 码常用的子码,码长与伽罗华域幂次不再有直接的约束关系,码字不再具有循环移位特性,已有BCH码的识别方法并不适用于扩展BCH码。
从公开发表的文献来看,关于TPC 码盲识别的文献甚少。文献[10]研究了卫星通信中TPC码的识别与译码算法,提出了基于独特码检测的TPC 码长识别算法与基于线性方程组求解法的BCH码识别算法,通过识别TPC 码子码,确定TPC 码类型和参数。线性方程组求解结果虽然能够清晰地得到各种编码参数,但该方法需要求解的数据中不包含误码,需要寻找数据质量很好的部分解方程,实际接收到的数据难以满足这一需求。而且该方法涉及到的参数较多,需要多次求解,找到合适的参数,才能解出正确的结果。容错性差和计算步骤复杂,使得该算法的适用性受到很大的限制。文献[2]研究了噪声条件下TPC 码的参数盲估计,使用参数遍历和高斯消元法确定子码的参数,该方法虽然比文献[10]提高了抗噪性能,但该方法是基于本原BCH 码、RS 码作为TPC 码子码进行研究的,对实际中由扩展BCH 码构造的TPC码无法进行识别。现有算法对TPC码的识别和参数估计,都需要采用参数遍历的方法对子码空间进行搜索,导致算法过程复杂,计算量较大,均未深入研究实用中TPC 码的子码类型及其相关性质,对误码条件下应用的TPC码无法进行有效识别。
针对上述问题,本文对TPC 码编码过程展开研究,深入分析其结构和子码性质,推导出三维TPC码的校验部分也存在编码结构,提出了TPC 码盲识别算法。通过对TPC 码常用子码扩展汉明码、扩展BCH 码和偶校验码的码重性质进行研究,分析得到了码重奇偶性与码长之间的关系,提出基于码重奇偶性的码长识别算法,实现子码码长的估计。从而进一步识别TPC 码的结构,通过帧长与各子码码长乘积之间的大小关系,判别是否存在二维TPC 码。若存在,在二维TPC码结构识别的基础上,识别三维TPC码和复用式三维TPC码,实现TPC码的盲识别。仿真结果表明,该算法能够有效识别出TPC 码的码型和结构,且能够较好地适应高误码率的信道环境。
TPC码是由两个或多个短分组码简单而有效地构造,通过两个或多个编码器的串行级联而成,这些编码器被矩阵交织器分隔开。其构造过程是将编码数据输入到一个q维超立方体排列,第i维子码使用线性分组码Ci(ni,ki,di)进行编码,其中ni表示码长,ki为信息长,di代表最小汉明距离。若第i维子码的码率为ri=ki/ni,则q维TPC 码的码长L=,信息长K=,码率R=,最小汉明距离d=,纠错能力t=(d-1)/2。实际应用中,考虑到信息传输速率和纠错能力等因素,一般采用二维或三维TPC码。
以二维TPC 码为例,由两个系统线性分组码C1(n1,k1,d1)和C2(n2,k2,d2)组成,其结构如图1 所示。将二维TPC 码平面形式化为X-Y二维平面,则X维对应分组码C1(n1,k1,d1),Y维对应分组码C2(n2,k2,d2),二维TPC码的编码步骤如下[11]:
图1 二维TPC码结构Fig.1 Two-dimensional TPC code structure
(1)将k1×k2个信息位按照k2行k1列排列;
(2)对k2行使用C1(n1,k1,d1)进行分组编码;
(3)对n1列使用C2(n2,k2,d2)进行分组编码。
对于二维TPC 码,码长L=n1×n2,信息长K=k1×k2,码率R=r1×r2,最小汉明距离d=d1×d2。实际应用中,通常采用行列编码方式相同的码字作为TPC 码的子码,并且在行列编码时增加一个奇偶校验位以增大码字间最小距离[3],从而增强码字的纠错能力。二维TPC 码常采用的子码是扩展BCH码,一些典型的参数如表1所示,表中TPC码组成的第一个子码对应二维TPC 码的X维编码,第二个子码对应Y维编码。
表1 一些二维TPC码参数Tab.1 Some two-dimensional TPC code parameters
对于三维TPC 码,编码结构在二维TPC 码X-Y平面化形式的基础上,增加了Z维编码,对应的是X-Y-Z三维立体空间。增加的Z维编码,使用C3(n3,k3,d3)分组编码器对k3个大小为n1×n2的码字矩阵进行编码,三维TPC 码结构图如图2 所示。三维TPC 码的一些典型参数如表2 所示,维度与码型对应与表1 类似,增加的第三个子码对应Z维分组码,表中(8,7)、(16,15)为偶校验码,其他均为扩展BCH码。
表2 一些三维TPC码的参数Tab.2 Some 3D TPC code parameters
图2 三维TPC码结构Fig.2 3D TPC code structure
结合表1 和表2 可知,相比于同样子码构造的二维TPC 码,三维TPC 码的码块大小更大,对应的纠错能力更强。但随着编码维度的增加,码率则会出现较为明显的下降,使得信息传输效率降低。而实际通信需要的编码是希望在纠错能力一定的条件下,编码效率越大且编、译码越简单越好。
考虑到卫星通信中的实际使用情况,一般采用的三维TPC 码并非图2 所示的结构,而是由N个二维TPC 码连接在一起,加上同步码,形成一个长帧结构,这样构成的TPC 码结构称为复用式三维TPC码[10],结构如图3所示。
图3 复用式三维TPC码结构Fig.3 Multiplex 3D TPC code structure
相比二维TPC 码,这样的结构在不降低码率的情况下,码长的选择变得更加灵活。相比于三维TPC码,其码长同样能够很长,而不降低码率,部分参数如表3所示,维度与码型对应与表1类似,Z维方向N表示二维TPC码的个数,表中码型均为扩展BCH码。
表3 一些复用式三维TPC码参数Tab.3 Some parameters of multiplex 3D TPC codes
综上所述,目前应用的TPC 码主要包括二维、三维以及复用式三维这三种结构,通常采用的子码为扩展汉明码、扩展BCH 码和偶校验码。TPC 码的参数选取灵活,由子码能够构造出合适的码长、信息长、纠错能力和码率,从而满足应用的需求。
根据信道编码识别在信号处理中的位置,编码类型是对解调后的二进制数据进行识别。TPC码在传输的过程中,往往加入帧同步后进行再发送。本文是在帧同步后,去掉帧同步头后,已知TPC 码码长的条件下,通过识别不同维度子码码长,确定存在分组码,并对识别结果进行验证判别,最终确定TPC码的码型及结构,识别过程如图4所示。
图4 TPC码识别总体框图Fig.4 Overall block diagram of TPC code identification
对于TPC 码的盲识别,关键在于编码结构和子码的识别,通过识别子码能够确定码型是否为TPC码。但TPC 码的码长通常较大(1000 以上),结构较为复杂,需要首先估计TPC 码的码长。由于TPC 码的特性,一般码长估计的算法很难适用于TPC 码长估计,通常需要结合信道帧结构分析确定码长。TPC码在实际传输过程中,都是以同步码字为序列帧头,然后再与二维或三维编码结合进行组合传输,如图5所示。文献[10]提出了基于同步码快速检测来确定TPC码的帧结构,去掉同步码即为TPC码的码长。
图5 TPC码传输模型Fig.5 TPC code transfer model
在实际的通信系统中,采用分组码的比特流序列通常具有固定的帧结构和同步码[12],且已有方法能够实现帧同步码的盲识别,故本文假设已完成帧同步[13-14]。因此,对于TPC码的盲识别,是在帧同步的基础上,帧长度已知,可通过识别每帧排成的码字矩阵是否同时存在行、列线性分组子码,判断TPC码是否存在,若存在,可通过分析子码的参数进一步确定TPC码的参数,包括信息块大小、码率等。
对于三维TPC 码和复用式三维TPC 码,主要的区别在于Z维上是否存在编码,即三维TPC码的Z维存在分组编码,而复用式三维TPC 码不存在,如图2和图3所示。由图2可知,三维TPC码,Z维方向是由k3个n1×n2大小的二维TPC码作为信息位,n3-k3个平面作为校验位构成。由表2可知,Z维方向使用的编码分为(n,k)扩展BCH码和(n,n-1)偶校验码,其中k≠n-1,扩展BCH 码是由BCH 码和偶校验码复合而成,下面分别研究两种类型校验位的编码情况。
对于Z维方向使用的编码为(n,k)扩展BCH码,先进行本原BCH 码编码,再进行扩展码编码。本原BCH 码和偶校验位作为系统线性分组码,从系统线性分组码的基本性质,研究Z维方向校验位的关系。系统线性分组码的生成关系如式(1)、(2)所示[4]。
由式(2)可得,生成矩阵G的左边是一个k×k的单位矩阵,右边是一个k×(n-k)的矩阵块,该矩阵块的每一列可由单位矩阵的某几列线性组合而成。因此,对于信息组m=(mk-1,mk-2,…,m1,m0),可由式(1)得到线性分组编码,即信息组保持不变,校验位由式(3)的关系得到。
根据式(3)的关系可知,本原BCH码的校验位是信息位之间的线性组合,不同校验位对应的组合系数不同。对于三维TPC 码,以X-Z平面为例进行研究,Y-Z平面同理。在X-Z平面上,X方向为C1(n1,k1,d1)线性分组码,Z方向则是对n1个k3位的信息位矩阵进行编码,得到(n3-k3-1)×n1大小的校验位矩阵。对于n1个(n3-k3-1)位的校验位,每个都是k3个信息位按照式(3)线性组合而成,Z方向上(n3-k3-1)个n1位的校验比特是由k3个线性分组码线性组合而成,结合引理1,可得到命题1。
引理1[4]:对于同一编码类型和参数的系统线性分组码,任意个不同编码之间的线性组合,得到的码组仍然是该类型的编码。
命题1:对于子码为扩展BCH码、偶校验码构造的三维TPC 码,在Z轴方向上,校验部分的X-Y平面仍然是二维TPC 码,对应的X维和Y维为扩展BCH码或偶校验码。
若子码均是扩展BCH 码,则Z方向上(n3-k3-1)个n1位的校验比特是k3个C1(n1,k1,d1)扩展BCH码的线性组合,每个n1位的校验比特就是一个参数为C1(n1,k1,d1)的扩展BCH 码。对于Z轴方向使用的编码为(n,n-1)偶校验码,以及扩展BCH码的扩展位,均满足公式(4)。在X-Z平面X方向上,n3-1个本原BCH 码按照式(4)计算扩展位,Z方向上,n1个n3-1位信息位,每个按照式(4)得到扩展位。因此,在三维TPC码Z方向上的最后一个平面,其每行、列均满足公式(4),即每行、列也是(n,n-1)偶校验码。
实际应用中,TPC码子码主要包括扩展汉明码、扩展BCH码和偶校验码,对于码长为2m-1、纠单个错误的BCH码就是汉明码[15],因此,本文中涉及的汉明码按照BCH 码进行研究。扩展BCH 码就是在原码BCH码的基础上,扩展一位奇偶校验位得到。
对于参数为(n,k,d)的分组码,设d为奇数,对每一个码字v=(vk-1,vk-2,…,v1,v0),增加一个校验位,其值为二进制“0”或者“1”,满足如下二进制运算关系:
若原码字的重量为奇数,由式(4)加上校验位后码重变为偶数,原码重为偶数的则校验位为“0”。由式(4)变换后,码的最小重量变为d+1,码长变为n+1,因此,称(n+1,k,d+1)码为(n,k,d)码的扩展码[4]。偶校验码的参数为(n,n-1),生成关系也满足式(4),码重均为偶数。扩展BCH 码,在(n,k)或(n-b,k-b)BCH 码的基础上,按照式(4)的关系得到,码重也均为偶数。
综上所述,可得命题2,下文将基于该命题给出TPC子码码长识别的算法。
命题2:扩展汉明码、扩展BCH码和偶校验码的码重均为偶数。
设去除帧同步的码流r每帧长度为L,按照式(5)对不同码组长度n进行分块,得到个码组,i∈[1,S],ri,j表示码元“0”或“1”。
不考虑误码情况,若码长估计正确,所有码组的重量均为偶数,遍历码长若不是实际码长,按照码重分布随机理论,奇数码重和偶数码重的码组各占总码组的50%左右。当存在误码时,导致码重发生变化,其奇偶性也可能随之变化,若发生奇数个错误,则码重变为奇数,若发生偶数个错误,则码重仍为偶数。但在一定的误码范围内,码长估计正确时,其偶数码重的码组所占比例仍然较大,由此可估计子码码长。
子码码长估计的具体步骤如下:
步骤1对于不同的遍历码长n,按照式(5)、(6)构建S×n大小的矩阵R。
步骤2统计每个码组的码重wi(v),并判断其奇偶性,如图6所示。
图6 码重奇偶性判别示意图Fig.6 Schematic of parity discrimination of code weight
步骤3统计偶数码重的个数D(n),并计算其占所有码组的比例E(n)=D(n)/S。
步骤4对E(n)求平均值得到mean(E(n)),然后计算E(n)与均值的差值,如下式:
对TPC 码的识别,不仅要识别是否存在,还需要识别TPC 码的结构,区分二维TPC 码、三维TPC码和复用式三维TPC 码。而每帧中,可能存在不止一个二维TPC 码,这是区分不同结构的关键所在,如图7 所示。设二维TPC 码按照X维由上至下逐行发送,三维TPC 码在二维TPC 码平面的基础上,从前到后逐面发送。
图7 每帧TPC码结构Fig.7 TPC code structure of each frame
按照图5的结构,去除同步码后,使用码重奇偶性识别每帧的码流中是否存在X维码长,若存在,则按此长度将每帧数据排列成矩阵,识别Y维上是否存在码长。若每帧数据排成矩阵后,行、列均存在码长,比较帧长L与n1×n2之间的关系,两者相等,则认为是二维TPC 码。如果两者不相等,对每帧按照n1列排列的矩阵进行Y维上分段码长识别,分段长为码长n2,根据分段识别产生的峰值,判断Z维上二维TPC 码的个数。若此个数与L/(n2×n1)相等,则再次利用码重奇偶性识别Z维上是否存在码长,区分三维TPC 码和复用式三维TPC 码,从而完成TPC码的识别和结构的区分,过程如图8所示。
图8 TPC码识别流图Fig.8 TPC code identification flow diagram
实验仿真生成TPC 码,所选码型来自表1、表2和表3,不失一般性,设噪声环境为通信系统中最常用的二进制对称信道。仿真编码为二进制数据,过信道后,取同步码之后的数据进行识别。
本小节主要考察本文算法对TPC 码识别和结构区分的有效性。
1)二维TPC码识别有效性分析
对表1 中子码为(44,31)、(43,30)扩展BCH 码的TPC 码进行验证,其他码型同理。该TPC 码码长为1892 比特,仿真中取数据帧数M为15,信道误码率τ=0.01,结果如图9所示。
图9 长度为1892的二维TPC码在τ=0.01条件下识别结果Fig.9 Recognition result of two-dimensional TPC code with length of 1892 under τ=0.01 condition
可以发现,当X维码长n识别正确时,码长n处所对应的差值V(n)最大。在码长n整数倍处,也存在局部峰值,如图9(a)所示。产生峰值的原因是码长正确时或者是码长整数倍时,码组内码字之间存在约束关系,码重的奇偶性不存在随机性。一定的误码范围内,部分偶数码重变为奇数码重,偶数码重仍然占据大多数,此时差值V(n)取到最大值,判断为实际码长。由图9可知,每帧数据排成矩阵后,按行识别存在码长为44的编码,按列识别存在码长为43的编码,且44×43=1892,即两维码长相乘等于TPC码长,由此可判断为二维TPC码。
2)三维TPC码识别有效性分析
对表2中子码为(16,11)、(32,26)扩展BCH码以及(8,7)偶校验码构造的TPC码进行验证,其他码型同理。该TPC码码长为4096比特,仿真中取数据帧数M为15,信道误码率τ=0.02,结果如图10所示。
图10 长度为4096的三维TPC码在τ=0.02条件下识别结果Fig.10 Recognition results of 3D TPC code with length of 4096 under τ=0.02 condition
按照图8 所示的流程,使用码重奇偶性和分段识别的方式对三维TPC 码进行识别,结合图10(a)、图10(b)可知,识别到其中X维的码长为16,按此长度排列码字矩阵,再次识别到Y维的码长为32。然后每帧数据按照矩阵16×256 大小排列,以码长32进行分段码长识别,识别存在的峰值,由图10(c)可知,256的长度中存在8个间隔为32的峰值,可判断Z维方向上有8 个二维TPC 码。基于码重奇偶性,再次对TPC 码的Z维进行长度识别,由图11(d)可知,存在长度为8的编码,且该值为4096/(16×32),即TPC 码码长除以二维TPC 码的值。综上识别结果,可判断为三维TPC码,每个维度都存在编码。
图11 长度为65536的复用式三维TPC码在τ=0.005条件下识别结果Fig.11 The multiplexed 3D TPC code with length of 65536 was identified under τ=0.005 condition
3)复用式三维TPC码识别有效性分析
对表3 中子码为(64,57)、(128,120)扩展BCH码构造的三维复用式TPC 码进行验证,取N为8,其他码型同理。该TPC 码码长为65536 比特,仿真中取数据帧数M为10,信道误码率τ=0.005,结果如图11所示。
复用式三维TPC码与三维TPC码的区别是Z维方向上是否存在编码,按照图8所示的流程,对复用式三维TPC 码进行识别,由图11(a)、图11(b)可知,识别到其中X维的码长为64,按此长度排列码字矩阵,再次识别到Y维的码长为128。然后每帧数据按照矩阵64×1024大小排列,以码长128进行分段码长识别,识别存在的峰值,由图11(c)可知,1024的长度中存在8个间隔为128的峰值,可判断Z维方向上有8个二维TPC 码。为了与三维TPC 码进行区别,再次对TPC 码的Z维进行长度识别,由图11(d)可知,Z维上码长识别不存在明显的峰值,且峰值不位于码长为8 处。综上识别结果,该TPC 码为复用式三维结构,每帧由8 个大小为64×128 的二维TPC码复用而成。
本节主要考察不同帧数、子码及码长对TPC 码识别性能的影响。设仿真中数据通过二进制对称信道,误码率范围为10-3~3×10-2,间隔为2×10-3,蒙特卡洛仿真次数为500。
1)不同帧数对识别性能的影响
本节主要考察码字帧数对TPC 码识别的影响。三维TPC 码的识别是建立在二维TPC 码基础上的,因此,以二维TPC 码的识别为例,研究不同帧数对识别性能的影响。理论上,对于同一误码率,帧数越多,识别出TPC 码的概率就越高,但所需的时间也越长,需要综合考虑识别准确率与时间的关系,在识别准确率相差不大的时候,所需要的帧数尽可能少,以便加快识别速度。仿真使用的编码为表1中码长为2944 的TPC 码,其子码分别为(64,57)、(46,39)扩展BCH 码。设接收到的TPC 码字帧数M分别为5、10、15、20、25 和30,统计不同误码率下TPC码识别的准确率,结果如图12所示。
图12 子码为BCH(64,57)*(46,39)TPC码在不同误码率下的识别准确率Fig.12 Identification accuracy of TPC code with sub code BCH(64,57)*(46,39)under different bit error rates
由图12 可以看出,随着TPC 码帧数的增加,识别准确率也有所提升,主要是因为随着码字帧数的增加,所求得的结果更具有稳健性,使识别结果准确率更高。以误码率为0.015 为例,码字帧数M由5 增加到20 时,准确率提升明显,当码字帧数达到20 以上时,性能提升趋缓,但均到达了90%以上的识别准确率。因此,取20 帧以上的数据进行处理,基本能够满足识别需求。
2)子码及码长对识别性能的影响
本节主要考察不同子码及码长对TPC 码识别的影响,码型为表1、表2和表3中设定的参数,设定识别的帧数为25,其他条件同上,研究子码及码长对识别性能的影响,表3 中的N与对应三维TPC 码的Z维子码码长相同。
表1中各种TPC 码在不同误码率条件下的识别准确率如图13 所示,由图可知,由相同子码构造的TPC 码,码长越长,相同误码率情况下,识别准确率越低,这是因为子码长度越长,码重奇偶性出错的概率越大。而对于码长相同、信息长不同的子码构造的TPC 码,识别准确率基本相同。对于X维子码相同,Y维子码长度在不超过X维子码长度的情况下,长度越短,识别准确率越低。这是由于子码长度的识别会受到另一维子码长度的影响,一维子码长度变短,对应的另一维子码识别的码组数就会减少,识别准确率就会降低。
图13 表1中TPC码在不同误码率下的识别准确率对比Fig.13 Table 1 comparison of TPC code recognition accuracy under different bit error rates
表2 和表3 中TPC 码在不同误码率条件下的识别准确率如图14 所示,由图可知,对于三维TPC 码和复用式三维TPC 码,随着误码率的升高,识别准确率呈现下降趋势。在码长和X维、Y维相同的情况下,本文算法对三维TPC 码的识别率高于复用式三维TPC 码,这是由于算法会将部分三维复用式TPC码识别为三维TPC码。
图14 表2和表3中TPC码在不同误码率下的识别准确率对比Fig.14 Table 2 and table 3 comparison of TPC code recognition accuracy under different bit error rates
设去除帧同步之后的TPC码每帧硬判决序列长度为L,识别帧数为M。遍历X维子码不同码长,码长遍历范围为1~n1,n1可取150 左右,每帧得到S=个码组,共得到M×S个码组。在X维子码遍历码长估计时,计算量主要体现在码重统计和奇偶性判断上,码重统计需要×S×n次加法,奇偶性判断可等效为M×S次加法和M×S次乘法。在得到X维子码码长n1后,将每帧数据按照n1列S行进行排列,识别Y维子码码长,码长遍历范围为1~n2,n2=L/n1。计算量也体现在码重统计和奇偶性判断上,码重统计需要×n1×n次加法,奇偶性判断可等效为M×n1次加法和M×n1次乘法。同理,Z维子码码长复杂度为×n1×n2×n,奇偶性判断可等效为M×n1次加法和M×n1次乘法,其中N=L/(n1×n2)。因此,本文算法识别TPC 码的算法复杂度与维度有关,根据维数将上述的乘法和加法次数求和即可得到总的复杂度。本文仿真实验在i7-8700处理器平台进行。设接收到的帧数M为5,以表1 中的TPC(128,120)*(128,120)码为例,取n1为150,误码率为0.005,则完成一次二维TPC 码识别所需的时间为6.3 s左右。
本文提出了一种基于子码识别的TPC 码盲识别方法。该方法利用子码共有的特性,使用码重奇偶性对TPC 码的每一维度存在的编码长度进行估计,在二维TPC 码识别正确的基础上,进一步识别存在的三维TPC 结构。码重奇偶性能够识别出子码扩展汉明码、扩展BCH 码、偶校验码的码长,分段识别的结果能够进一步验证Z维方向上存在二维TPC 码的个数。仿真结果表明,文章提出的方法能够对误码条件下三种TPC 码结构进行有效盲识别,具有较高的实用价值。