APP下载

一种TPC译码算法的软件实现

2022-10-31叶新生刘国忠

山西电子技术 2022年5期
关键词:数据位汉明遥测

叶新生,刘国忠

(山西科泰航天防务技术有限公司,山西 太原 030006)

0 引言

信道编码是无线通信系统中的重要组成部分[1],而Turbo乘积码不仅具有良好的纠错性能,而且其编码算法简单,使用的资源较少,较为适合遥测领域的应用环境[2]。

信道编码技术会在遥测数据中增加纠错码,利用纠错码可对传输过程中的错误位进行纠错,可有效地降低遥测数据误码率。

使用信道编码可在不加大发射功率、不增加接收天线尺寸的情况下获得更远的遥测距离。

信道编码虽好,但需要遥测发射机与遥测接收机匹配使用,以及遥测发射机在发射数据时需要进行信道编码,遥测接收机在接收数据时需要进行信道解码。

遥测接收机一般属于接收设备,其更新换代的速度远不及遥测发射机。本文拟基于VC++研发一种TPC解码算法,基于算法可构建事后TPC解码软件,也可构建实时解码软件。通过这些方式可使原本不具备TPC解码的遥测接收站实现TPC解码能力,且可在不增加任何预算的情况下提高原遥测站的接收能力。

1 算法原理

TPC为分组乘积码,常用的结构为二维结构,分别进行纵向和横向编码。利用此种结构,可在2个维度上进行纠错,相比1维纠错码可极大地提高纠错能力。

1.1 TPC编码原理

Turbo乘积码是由两个或两个以上的短分组码C(n,k,δ)构成,其中n,k,δ分别表示分组码的长度、信息长度和最小汉明距离[3-4]。

本文使用目前应用最为广泛的二维乘积码,采用(64,57)×(64,57)扩展汉明乘积码[4],即在汉明码的基础上增加一位奇偶校验位,该编码可纠错一位,发现二位错误,两个维度均使用相同的分组码。二维乘积码的结构如图1所示。

图1 二维乘积码的结构

在进行TPC编码时,先对信息位逐行编码,生成57×64的行编码矩阵。然后对行编码矩阵进行逐列编码,最终生成64×64的编码矩阵。

在完成编码后,输出时一个编码块为一帧,每帧前面添加4字节同步字1ACFFC1D,编码块输出时按先行后列顺序输出。

1.2 TPC解码原理

TPC解码算法有2类,一类为软解码,一类为硬解码。

其中软解码常用算法为ChaseII算法,其基本原理为将位同步输出的软信息(判决前信息)向量,作为TPC解码输入,根据信息的幅值,选取最不可靠的N位(一般N=2),形成错误样本集合,从错误样本集合中找出与接收向量欧氏距离最小的子码为判决子码,同时将距离次小的子码为候选子码。同时利用外信息向量记录各位的软判决可靠度,进行迭代。经过多轮次(一般3次即可)迭代后完成解码[5-6]。

硬解码使用判决后的信息,利用汉明纠错算法直接进行纠错,根据扩展汉明码可以发现2位错位纠错1位的特性。当发现2位错位时,可不进行纠错,而是等下一轮次再行纠错,可在一定程度上提高纠错性能。

相对来说软解码要比硬解码具备更好的性能表现[7],但是软解码需要更多的信息。如在接收机内部实现,可以使用软解码信息。本文是在接收机外部实现,接收机一般只输出判决后的信息,因此无法使用软解码算法,只能使用硬解码算法实现。

硬解码算法在FPGA中实现时,一般使用逻辑电路实现[7];在VC上实现时,为加快软件的运行速度,本文采用查表法以加快解码速度。在计算前提前计算好每一位置对应的校验值数组(X1~X57),在解码时对每一位进行历遍,当该位为1时将该位置对应的校验值与校验位进行异或计算,具体原理见图2所示。

图2 查表法译码原理

当最后计算值为0则校验正确,如计算值不为0则说明数据有错位。

寻找错位位置方法的原理是,当数据无错位时其校验和应为0;当某位出现错误时,整个校验和必然会多异或了一次该位对应的校验值,下面推导该结论。

对数据位进行校验计算的公式如下,其中求和符号实际中为模二相加(同异或),式中ai为数据位(取值为0或1)。

(1)

又,基于异或的原理有:

1=0⊕1,0=1⊕1

.

从上式可以看出,任何数(0或1)取反(误码相当于,原数据位取反),均可看为其原值与1异或。

结合式(1),可以得出如下结论,当某位am出现错位时,可以将表达式写成如下形式:

(2)

又根据原编码信息,有:

(3)

所以有:

y=Xm

.

(4)

从中可以看出,根据式(1)对编码数据进行计算,其计算结果非零时,其对应值为某位对应的校验值。因此在实际中,可以根据校验计算结果反查是哪位出错,即在{X1~X57}集合中查找Xm,当查到时其下标即为错误位的位置。

2 设计及仿真

上节给出了查表法实现TPC译码的基本原理,下面根据原理进行具体设计实现。

实际数据传输时,发射机会在数据帧中间插入同步字节,接收机利用同步字节识别数据帧,TPC解码程序同样要利用同步字节识别TPC数据帧,在识别完成后,按行列依次进行纠错处理,处理流程如图3所示。整个纠错流程包括行纠错及列纠错,整个纠错过程包括3轮,分别进行行纠错和列纠错。在纠错时如果确认是一位错则修正,若是两位错或无错位则不进行任何处理。

在纠错时,需要按位取出数据进行处理,为便于取数据位,使用了一个位模板数组。

m[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

在实际运行时,需要对字节中不同数据位进行判定操作,取位模板数组中不同数进行判定与操作,即可取出对应位信息,具体见公式(5)所示。

a=x∧m[i]

.

(5)

因此测试某位是否为1时,只要按公式(5)计算,取其结果,当结果非0时,即可判定该位为1,否则为0,使用该方法可实现数据位的快速判定。

本文使用的是扩展型汉明码,即在编码时,除汉明纠错码外,还有一位表示全部的奇偶校验,因此可以利用该特性实现发现2位错的能力,其判定方式可参考表1。

图3 数据解码流程

序号汉明纠错奇偶校验判定1111位错2102位错301奇偶位错400无错位

从表1可以看出综合汉明纠错信息和奇偶校验信息,可实现1位错的判定及2位错的发现,在实现时仅当判定位1位错时进行纠错。通过该方式可有效避免错误纠错。

在实际实现时还需要考虑行列数据的数据结构,本文采用二维数组来进行数据帧的存储。

因TPC数据帧结构固定,因此实现时采用64行8列的数组进行数据存储,具体如下:

char dat[64][8];

图4 数据存储方式

在完成TPC帧同步后,将帧数据按图4方式整理成二维数组,需要注意的是因TPC数据每行有57位,因此TPC帧中的数据并非按字节对齐。在完成处理后还需要重新进行对齐处理,如果TPC帧中数据本身并非按字节对齐则还要重新进行同步处理,从其中还原出字节数据。

在纠错过程中,先进行逐行纠错处理,然后进行逐列纠错处理,总共进行3轮次行列纠错即可。

3 实现与测试

利用Visual Studio平台,并基于VC++实现了TPC信道解码软件,软件界面如图5所示。

该软件不仅完成了TPC信道解码,还完成了解码后数据帧的提取。为实现数据帧提取,需要设置数据帧头、帧头长度、反码副帧长、错误容量等信息。

图5 TPC信道解码软件界面

为测试其性能,利用具备TPC编码功能的发射机,发射仿真数据以进行解析验证,从验证情况看该TPC解码算法运行正常,从图6可以看出,数据纠错正常。

打开解析完的数据帧可以看到EB90前面的帧计数连续,数据帧无丢失。

经过验证后,该软件已经在实际遥测活动中得到推广应用,实际使用反馈情况良好,通过该软件使原先不具备TPC解码能力的遥测站,具备接收对TPC遥测帧的解析能力,还可利用TPC纠错算法提高数据质量。

图6 TPC信道解码软件

图7 TPC信道解码数据

4 结束语

本文利用VC++平台,实现了TPC信道编解码,可在不增加预算的情况下扩展原有遥测设备的功能,提高其接收性能,已在相关实际项目中得以应用,并取得良好的实用效果。

并且实现时考虑了实时应用和事后数据处理2种情况,使用简便且可以广泛应用,可在各遥测设备中推广使用。

但是为适应目前遥测设备,目前仅仅实现了TPC的硬解码,为进一步提升性能,后续考虑增加软解码能力,但软解码如要推行需要遥测设备进行相应改进,使其输出可供软解码的额外信息。

信道编解码,通过在遥测数据中增加校验信息,以实现信息纠错,从而获得编码增益,是无线通信领域的一个重要技术手段,如何通过后期改造使早期遥测设备提升能力,也是一个重要课题,本文提出的思路可在此领域进行推广应用。

猜你喜欢

数据位汉明遥测
A320飞机大气数据的采集和计算在排故中的应用
远程控制式遥测地面站关键技术研究
基于WPF的遥测CAS信息实时监控系统设计开发
自适应模糊PID控制的遥测方舱温度调节方法
微弱GPS信号避开比特跳变的捕获算法
一种适用于FPGA系统中的变速箱电路设计
浅谈如何提高遥测状态估计合格率
媳妇管钱
减少调度自动化设备通讯串口丢包率的措施
汉明距离矩阵的研究