张桦林,孙发鱼,2,唐 强
(1.西安机电信息技术研究所,陕西 西安 710065;2.机电动态控制重点实验室,陕西 西安 710065)
近年来远程武器弹药的发展逐步迈向制导智能化、控制精细化等方向,其信息化、数字化和研制复杂程度大幅度提升[1],因此在武器系统研制过程中必须利用先进的试验测试手段,遥测设备作为武器弹药飞行试验时必不可少的组成部分,既是试验是否成功的鉴定方法,又是在出现故障后寻找故障原因的诊断手段。
目前的遥测飞行试验任务呈现出大射程、超视距、高码率等特点。且弹药所处的空间电磁环境复杂多变,会对遥测无线电信号产生干扰,同时遥测无线电信号的多径效应,也不利于箭地无线通信,尤其是高码率无线遥测的正常工作[2]。目前在研的远程火箭弹型号项目飞行试验均面临遥测传输距离长,遥测传输数据量大的挑战,这些试验要求都对遥测信号的传输质量提出了更高标准[3],故有效提高遥测系统的通信可靠性,对于遥测任务中箭地间的信息传输十分重要。
新一代遥测系统有着提高数据传输速率、通信可靠性和频带利用率的要求。目前主流遥测技术体制PCM/FM,由于较低的功率和频谱利用率,已经不能满足实际应用的需求。将TPC编译码技术与BPSK/QPSK等高效频谱调制技术相结合,研究其在兵器弹箭遥测系统中的应用,有着非常重要的意义,可以提高系统的抗噪声性能,保障遥测传输的可靠性[1]。
随着弹箭遥测传输速率的不断提高, 其解调门限效应和功率利用率低等问题已不能满足日益增长的实际需求。为解决高码率(5~10 Mb/s)遥测数据传输过程中出现的无线作用距离下降和传输可靠性低等问题,将信道编码技术应用在遥测系统中。在弹载空间资源有限的情况下,相比提高发射功率与增加接收天线口径的传统手段,采用信道编码技术是一种经济高效的解决方式,可在保持弹上发射机输出功率和地面接收天线直径不变的情况下额外获得较大的信道增益,确保遥测数据正确可靠,有效提高弹箭飞行体与地面站间通信的质量。
本文以目前在研的远程制导火箭弹飞行试验为背景,针对远距离、高码速率及复杂环境下弹上回传数据的高误码率问题,提出在现有弹箭遥测通统中,加入TPC信道编码模块,以改善通信的可靠性。在研究TPC编码算法的基础之上,结合兵器遥测实际工程项目需求,基于Altera 公司Cyclone Ⅳ系列FPGA EP4CE10F17C8平台,提出一种高集成,小型化,具有较高编码增益和编码效率的TPC编码模块设计和实现方法。
TPC编码,又名Turbo乘积码,是一种性能接近香农极限的优良信道编码技术,具有编绎码结构简单、码长灵活,负载度较小的特点,可以在不增大系统带宽的条件下,取得较好的编码增益[4]。TPC码由Turbo码改进而来,相比之下,TPC编码器不含复杂的交织器,硬件结构更加简单,且编码增益不会随着码率的提高而迅速下降,且译码延时更小。相比RS编码、卷积码,TPC码具有更高的编码增益和效率[2]。相比于LDPC码复杂编码过程,TPC码具有编码算法更加简单的优势。同时TPC码拥有分量码选择多样,可变码长的特点,可以较好地适应不同需求背景的兵器高码率箭地遥测通信。
从编码结构的角度可以将TPC码理解为一种级联块状码,一般由2个及以上的分量码构成,也可以按同样的构造方式扩展到多维[5]。TPC码在分量码选择上具有多样性,可以是 RS码、汉明码、BCH码、奇偶校验码和扩展汉明码等[6-8]。由于可以根据需要来决定分量码个数,因此TPC编码在算法复杂度上更为灵活,具有相对较高的可调性。目前在航天领域,主要以扩展汉明码做为TPC码的分量码,已广泛应用于卫星通信系统中。在国际航天遥测等领域,通常采用IEEE 802.16标准进行TPC编码的设计[2]。IEEE 802.16标准所推荐TPC码的码型如表1所示。
表1 IEEE802.16标准推荐码型Tab.1 IEEE802.16 recommended code type
可见奇偶校验码的编码效率相比扩展汉明码更高,但由于奇偶校验码的纠错能力较差,以及两种不同码长组合的扩展汉明码的算法复杂度过大,故一般情况优先考虑相同码长的二维扩展汉明码作为TPC码的分量码。
从编码原理的角度理解,可以将TPC码看作是一种串行级联分组码,编码器由其分量码的编码器级联而成。以二维TPC码为例,其拥有2个分量码,编码结构如图1所示。
图1 二维TPC编码结构Fig.1 Two-dimensional TPC coding structure
二维TPC码的编码步骤为:
1) 将k2×k1的信息位矩阵按顺序输入编码器的存储单元;
2) 用C1码完成k2行编码,得到k2×n1的数据矩阵;
3) 用C2码的规则完成n1列编码,得到n2×n1的数据矩阵;
其中行编码与列编码的先后顺序可以互换[9-10]。二维TPC码的编码过程如图2所示。
图2 二维TPC码编码过程 Fig.2 Schematic diagram of TPC coding
TPC码的编码方法,以IEEE 802.16标准推荐的(64,57)×(64,57)扩展汉明码作为分量码的二维TPC码为例,每个码字包含57个信息位,7个校验位,其中校验位与信息位的运算关系如式(1)所示:
(1)
定义一个TPC编码前的原始遥测数据矩阵M,大小为k×k,只包含信息位,I1为遥测数据经TPC行编码生成大小为k×n的矩阵,I2为遥测数据经TPC列编码后大小为n×n的矩阵,I1、I2均包含由信息位与校验位;G为TPC分量码的生成矩阵。其中M、I1、I2三者满足如式(2)式(3)所示关系:
I1k×n=Mk×k×Gk×n,
(2)
(3)
进行TPC行列编码时,各原始信息码字m1,m2,…,mk通过编码运算,得到其相应的编码后码字i1,i2,…,in,各码字组成一个TPC码组,完成编码后得到的主要参数为
码长:n=n1×n2,
信息位:k=k1×k2,
码率:R=R1×R2=k1/n1×k2/n2,
最小汉明距离:dmin=dmin1×dmin2。
由通信编码理论可知,若分量码C1可以纠正t1=(d1-1)/2个错误,分量码C2可以纠正t2=(d2-1)/2个错误,故可知二维TPC码C可以纠正t=(d1×d2-1)/2个错误[11]。
由IEEE 802.16标准可知,TPC码的子码选择众多,不同子码类型TPC码的编码效率、纠错性能不同,其占用逻辑资源及算法复杂度也不同,当迭代次数过多时,会出现大量延时等问题。与此同时由于飞行过程中弹上的高过载环境,有限的空间存储资源以及对数据传输实时性的严格要求,对兵器弹载遥测TPC编码器软硬件的设计,应在误码率与编码增益得到提高的基础上,兼顾硬件运行速度、软件算法复杂度、逻辑资源消耗等具体要求[1-2],综合纠错性能和较小延时的性能需求,选择合理的TPC分量码及译码迭代次数。
在Matlab中使用AWGN信道对火箭弹飞行环境进行模拟,使用BPSK调制方式,通过对不同分量码类型的TPC编码进行不同次数的迭代仿真,对TPC编码效果及纠错性能进行分析。
2.1.1分量码的选择
选取IEEE 802.16标准推荐码型中的(16,11)×(16,11),(32,26)×(32,26),(64,57)×(64,57),(128,120)×(128,120)四种不同类型的分量码进行编码仿真,结果如图3所示。
图3 不同码型TPC码BER的仿真曲线Fig.3 Simulation of different type TPC code bit error rate
分析图3的误码率变化曲线可知,经过TPC编码后,遥测数据误码率有明显降低。总体来讲,当信噪比较低时,在同一误码率量级下,短码与长码的纠错能力相差不大,可提供的编码增益相近,当信噪比达到4 dB左右时,采用长码作为分量码的TPC编码效果更佳。在理论上码长越长,纠错能力和编码效率越高,然而如果码长过大,会占用过多硬件逻辑资源,增加编译码算法复杂度,故综合考虑使用码长适中,纠错能力较强的(64,57)×(64,57)扩展汉明码作为分量码,进行下一步设计仿真。
2.1.2迭代次数对TPC编码性能的影响
对分量码为(64,57)×(64,57)二维TPC码进行不同迭代次数的仿真,结果如图4所示。
图4 不同迭代次数仿真结果Fig.4 Simulation of different iterations
由图4的仿真结果可知,经TPC编码可有效提高编码增益,且迭代次数越多,系统对数据传输过程中产生误码的纠错能力越强。当误码率为10-4数量级时,经过1次迭代,TPC编码可提供的增益约3.5 dB,经过2次迭代,TPC编码可提供的增益约为4 dB,迭代3次可提供的编码增益约4.5 dB,迭代4次可提供的编码增益约5 dB。而当迭代次数过多时,编译码器占用的逻辑资源会相应增加,编译码过程的延时急剧增大,此时TPC编码对于显著降低误码率,提高编码增益的能力相对减弱,故使用4次迭代,即可较好地平衡性能和复杂度的需求。
经上述仿真分析,在误码率达到10-4数量级时,使用扩展汉明码(64,57)×(64,57),迭代4次时,相比不经过信道编码直接传输数据,提供了5 dB左右的编码增益,综合考虑纠错能力、编译码实时性、编码器占用资源和软硬件实现复杂度等因素,使用IEEE 802.16标准推荐码型(64,57)×(64,57)扩展汉明码作为二维TPC编码的分量码,进行信道编码模块软硬件实现,可以满足箭地数据通信的可靠性要求。
在远程制导火箭弹飞行试验中,弹上遥测系统具有传输数据量大、实时性要求高、硬件资源少等特点,实际项目和工程常面临体积、重量和功耗等指标的严格限制。FPGA作为一种运算速率高,系统功耗低的实用性硬件架构,适应弹上严苛的环境和低功耗的应用需求,可以较好地将遥测信道编码算法与硬件集成。
2.2.1TPC编码单元结构
每个TPC遥测信道编码单元,由同步字(32 bit)和TPC编码数据(4 096 bit)构成。TPC编码数据由原始信息码元(3 249 bit)和校验位(847 bit)组成。原始信息码元包括数据有效标识(16 bit)、遥测数据(3 232 bit)和保留位(1 bit)。TPC遥测信道编码的单元组成如图5所示。
图5 TPC遥测信道编码单元组成示意Fig.5 Schematic diagram of channel coding unit
2.2.2工程实现
弹载遥测数据在进行TPC信道编码时,首先生成同步字、数据有效标识,生成初始信息矩阵和保留位一般均默认为0。随后按行输入初始信息数据,得到57×57的信息矩阵,依次计算出各行校验位,并将计算结果添加在各行信息位的后方,直到前57行信息位数据的行编码全部完成。随后依次计算出各列校验位,并将计算结果添加在各列信息位的下方,在计算完前57列信息位数据后,继续按列编码算法计算之前行编码得到的校验位数据(共计7列),得到校验位的校验,至此完成所有64列数据的列编码,得到64×64的编码后矩阵并输出。
TPC编码器主要分为4个模块,由预处理模块、输入缓存(串并转换)、TPC行列编码模块(行列交织)、输出缓存模块(并串转换)构成,编码器结构框图如图6所示。本TPC编码器的设计,采用寄存器替代了大量使用RAM和FIFO的传统方法,在行列编码及交织时节省了时序,提高了编码器的工作速度。模块间采用流水线结构连接,相对占用存储资源更少,合理节约了弹上物理存储空间。
图6 TPC编码器结构框图Fig.6 Structure diagram of TPC encoder
在QuartusII软件中完成TPC编码模块的RTL、testbench文件编写,编译通过后在Questasim软件中对(64,57)×(64,57)二维TPC码进行编码仿真测试。定义系统时钟50 MHz,帧头为FDB18540,软件定义产生PCM信源码流。系统复位后进入编码状态,串行待编码数据在每个时钟上升沿,由data_in输入din_fifo,完成时钟同步等预处理工作,经header检测到data_in中的帧头数据FDB18540后,ok信号拉高。仿真结果如7所示。
图7 信源数据加帧头FDB18540 Questasim仿真Fig.7 Simulation of FDB18540 Questasim with source data and frame header
完成帧头校验后,数据由din_fifo进入输入缓存data_in_reg,通过移位进行串并转换,每57个时钟得到一帧57位宽的数,并行进入编码部分,首先完成行编码,得到深度57、位宽64,共3 648 bit数据,并存入寄存器data_hang。接着完成列编码,得到的深度7、位宽64,共448 bit数据,存入寄存器data_lie。随后将经行列编码得到的4 348+448=4 096 bit的数据存入输出缓存data_hl中,通过移位完成并串转换后,由data_out串行输出已编码数据,由图8可知,编码器可按照TPC编码规则完成对串行遥测数据的编码任务。
图8 TPC编码 Questasim 仿真Fig.8 Simulation of Questasim encoded by TPC
将经过(64,57)×(64,57)二维TPC编码后的数据导入Matlab软件中,在AWGN信道,BPSK调制环境下,迭代次数为4,完成信道译码仿真,并与未经信道编码的原始数据码流进行对比,结果如图9所示,加入TPC编码器较好改善了遥测传输的可靠性,在误码率为10-4量级下,有效提供4.8 dB左右的编码增益,实现了对TPC编码模块功能及性能的验证。
图9 TPC编码性能实测仿真Fig.9 Simulation of TPC coding measurement
本文针对高码率数据传输的背景下,兵器遥测的实际工程项目需求,阐明了在现有遥测系统中加入信道编码模块的必要性,分析了TPC编码原理及方法,并对几种常见的不同码长的TPC码性能进行比较仿真,同时结合工程实际,设计了一种基于FPGA硬件平台的远程火箭弹弹载遥测TPC编码器。实验数据表明,使用扩展汉明码(64,57)×(64,57)作为分量码,TPC编码器可在误码率为10-4数量级下,提供4.8 dB左右的编码增益,可以较好地完成TPC信道编码功能。