一种遥测数据纠错算法的设计与实现

2022-08-18 05:58涂卫军万蒋亮
教练机 2022年1期
关键词:遥测码字校验

梅 欢,涂卫军,万蒋亮,汪 海

(1.航空工业洪都,江西 南昌,330024;2.空军驻南昌地区军事代表室,江西 南昌,330095)

0 引言

在产品研制阶段,遥测系统用于获取飞行试验中航天器各系统的工作状态参数和环境数据,为确定航天器性能或进行故障分析提供依据。航天器飞行试验耗费巨大,每次试验必须尽可能多地获取各种数据,遥测系统的性能优劣直接影响到产品的研制进程及费用,影响着武器性能的改进和提高。因此,遥测数据的准确性在航天器的研制和发展中发挥着非常重要的作用。

当用于传输遥测数据的各种信道中存在噪声或干扰时,遥测数据的传输常常会出现差错,这种情况在随传输距离、屏蔽情况等干扰因素而显著变化的无线传输信道中很严重。遥测系统随工作环境的不同而受到的干扰程度和差错特点存在很大的差异。单一的纠错方式很难得到较低的码率。本文综合硬判决译码和软判决译码的优缺点,提出了一种软硬结合的混合译码纠错编码算法,通过对测试向量进行硬判决译码来选择正确码字,不仅没有性能上的损失,而且实现方式也比较简单。

1 算法原理说明

1.1 RS纠错编码原理

由编码理论可知,RS码是非二进制的BCH码,在(n,k)RS码中输入信号分为k×m bit一组,每组包括k个符号,而每个符号则由m个bit组成。对于长度2-1为符号的RS码,每个符号都是有限域GF()中的一个元素;因而,最小码距为d的RS码生成多项式具有如下形式:

式中a为GF(2)中的一个元素。

又由于RS码属于线性循环分组码,因此它具有如下性质:

式中:d为最小汉明距离;n-k为数据冗余数量,t为错误个数;e为删除个数。

由此,可以得出RS码具有如下特性:

1)允许在一定范围内随意减少或增加冗余校验数目,当冗余度发生变化时,算法可以通过调整删除操作进行译码。

2)RS的最小汉明距离与冗余校验位数成比,即码的纠错能力随冗余度的增加而增加。

RS码的硬判决译码(HDD)算法已经得到广泛应用,而代数软判决译码(SDD)算法则可获得更大的编码增益,是目前信道编码领域的研究热点之一。

目前比较流行的代数软判决译码算法主要包括KV算法、BGMD算法和LCC算法等。在这些算法中,LCC译码算法通过对各重数为1的测试向量进行译码,不仅降低了硬件实现的复杂度,而且性能上与KV算法相比并无损失,具有广阔的应用前景。

1.2 硬判决算法

硬判决在通信系统中是指对解调之后的信息进行硬判决,得到比特级的判决结果;在广义的信道中则是指接收端的输入信息在集合{0,1}中的取值。

在信息从发送端到接收端的传递过程中,由于干扰和噪声的存在使得接收到的信息不同于发送信源,这样就使得相应的校验方程不能满足。比特反转算法认为参与不满足的校验方程个数最多的比特的错误概率最高,在一次迭代之后对该比特进行反转,用反转之后的准码字继续进行校验方程的计算,这就是其名称的来历。

译码步骤之前,首先要设定一个最大迭代次数,以免在不能正确译码的情况下增加不必要的运算和陷入死循环。

对信道接收序列y=(y,y,…,y),其硬判决定义为z:

算法的具体步骤如下:

①对信道输出进行硬判决,得到硬判决结果z;

②计算每个校验方程,如果所有校验方程均满足,则结束译码,输出z,作为码字。否则进行步骤③;

③统计每个比特参与的不满足校验方程的个数,即fn(1≤n≤N);

④反转最大fn对应的比特,并返回步骤②。

重复上述步骤直到得到的结果满足校验方程或达到最大迭代次数,如果达到最大迭代次数仍然不能正确译码,则宣布译码失败,将最后一次的结果作为译码输出。算法中,每次迭代只能反转一个比特,为了提高算法效率,可以设定一个反转门限,当fn大于这一门限时,就反转fn对应的比特,但是门限需要仔细的选定,否则会降低码字性能。

1.3 软判决+硬判决优化算法

优化后的算法流程图如图1所示,包括重数分配、校验子计算、关键方程计算、Chien搜索,译码失败检测和Forney算法等模块。首先对通过信道输入的软信息进行重数分配并产生测试向量,然后对测试向量进行关键方程求解,得出错误位置多项式,计算关键方程采用iBM译码算法,通过Chien搜索得出多项式根的个数,接着由DF模块进行判别,如果错误位置多项式最高次项的幂和该多项式根的个数相同,则认为译码成功,最后通过Forney算法计算错误值多项式进行纠错,否则运算下一个测试向量。

图1 算法流程图

信道译码的目的是构建一组硬判决码字,使其存在一个测试向量为正确码字的概率最大。就RS码而言,这等价于使每个测试向量的错误码字不超过(nk+1)/2的概率最大化。传统译码的重数分配过程为:首先根据信道输出的软信息产生可靠度矩阵,然后按照这个矩阵选择η个最不可靠的点且0<η<2t,同时分配重数,使其重数为1,这样做的目的是增加了纠错译码半径,最大纠错数可以达到(n-k+1)/2+η。当η>2t时,译码器的复杂度过高,不利于硬件实现。重数分配中产生的测试向量需要计算可靠度最高的硬判决码字和可靠度次高的硬判决码字的比值,这个比值称为码字的相对可信度,即

式中:r为接收到的码字。由式(4)可以看出,越接近1则表示码字越不可靠。将所有码字按照相对可靠度排列,选择出η个最不可靠的点,每个分配两个插值点,分别为(α,β)和(α,β′);剩余的n-η个位置分配一个插值点为(α,β)。此处的α表示伽罗华域元素,和分别表示第j个位置的可靠度最高的硬判决码字和可靠度次高的硬判决码字。对每个码字选择插值点即能生成测试向量,由于有η个最不可靠的点,故测试向量的总数为2。

基于硬判决和软判决算法的重数分配步骤不同于传统的重数分配。只需要根据可靠度选择η个不可靠的码字将其标记为0,产生2个测试向量;剩余的n-η个码字都标记为1。

译码器校验子算法:

输入R(x),R(x),m(x),j=1。

对于i=0~255,

①当m=1,

②其他,

当j<η+1,j=j+1。

③按照可靠度降低的顺序将所有的测试向量按照格雷码遍历进行排序,先将可靠度最高的测试向量进行译码。

如果错误位置多项式最高次项的幂不等于多项式根的个数,将下一个测试向量S与S中校验子不同的部分进行替换然后进行译码,否则输出。

输出正确的S(k=1~2t)。

其中,R(x)表示接收码字的可靠度最高的硬判决信息;R(x)表示接收码字的可靠度次高的硬判决信息;m(x)表示所译码字的重数;S(1<g<2t)表示公共点的2t个校验子的计算结果;S(x=1or2,1<j<η)用于计算不同点的校验子。首先根据重数分配计算n-η个公共点的校验子,然后计算η个不可靠点的校验子,最后将其按照格雷码的编码顺序将其组合成2η个测试向量,相邻的两个测试向量之间只有一个点不同,这样做的目的使可靠度高的测试向量优先译码,而且不需要计算所有的校验子。S(1<k<2t,x表示2η个测试向量的二进制表示形式)表示组合后的校验子,在组合校验子时,测试向量的二进制表示形式中,0代表选择点的硬判决码字R(x),1代表选择点的可靠度次高的硬判决码字R(x)。

2 测试结果

图2为本文提出的算法及硬判决译码算法的仿真结果图。

图2 仿真结果图

仿真结果表明,本文提出的算法相比于硬判决译码算法,在误帧率RFER=0.001时,编码增益高出0.3dB。

3 结语

本文依据遥测数据的实际需求,结合遥测译码的各种算法,提出了一种基于软判决和硬判决混合译码算法。仿真结果表明,该算法能够提高遥测数据的接收效果,提升数据的准确性,纠错能力进一步提升。

猜你喜欢
遥测码字校验
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
岁末感怀
精通文件校验的“门道”
放下
母亲跟我学“码字”
“码字”拾零
多种方法快速校验文件
调度监控系统画面数据信息纠错方法讨论
基于VBScript的遥测数据处理技术研究