一种雷达航迹报文传输方法与流程

文档序号:14178792阅读:618来源:国知局
一种雷达航迹报文传输方法与流程

本发明属于雷达数据处理技术领域,具体涉及一种雷达航迹报文的无损压缩传输方法。



背景技术:

雷达航迹报文由点迹报文组成,点迹报文按照某一固定协议组织。雷达航迹报文在传输前通常进行数据编码压缩。

数据压缩方法按照压缩前后信息量是否有损失可分为两种类型,分别为有损压缩和无损压缩。有损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据有所不同;而无损压缩是指使用压缩后的数据进行重构后,数据与原来的数据完全相同,典型的无损压缩方法有行程编码、哈夫曼编码、算术编码等。哈夫曼编码是一种比较常用的变长编码方法,其基本原理是根据源数据符号发生的概率进行编码,对出现概率大的信息符号编短码字,对出现概率小的信息符号编长码字,从而达到用尽可能少的码符号表示源数据。理论研究表明,哈夫曼编码方法是接近压缩比上限的一种较好的编码方法,同时,该编码方法效率高、运算速度快、实现方式灵活,从20世纪60年代至今,在数据压缩领域得到了广泛的应用。

直接采用上述数据压缩编码方法对雷达航迹报文进行编码,没有利用连续点迹数据之间不变的信息,对于报文间的相同数据仍需消耗传输资源,当数据量特别大时,会影响数据的实时处理。



技术实现要素:

发明目的:针对现有技术中存在的问题,本发明公开了一种雷达航迹报文传输方法,采用该方法对雷达航迹报文在发送端进行压缩编码,在接收端进行解码,能够有效降低相同数据的传输资源消耗,提高报文的压缩比,保证数据传输的完整性、可靠性、实时性。

技术方案:本发明采用如下技术方案:

一种雷达航迹报文传输方法,发送端将雷达航迹报文编码后发出,接收端对接收到的雷达航迹压缩报文进行解码;其中对雷达航迹报文的编码包括如下步骤:

(c1)读入一帧雷达航迹报文,根据报文数据生成魔术字;

魔术字为报文数据采用校验算法生成的校验码;本发明中魔术字为报文数据除去报文类型及报文长度两个字段后,采用16位循环冗余校验生成唯一校验码。

(c2)判断关键字段是否命中;如果未命中,转步骤(c3);如果命中,当前帧定义为p帧,对报文增加p帧帧头标识和i帧档案中检索的魔术字,求p帧相对于i帧的残差,对所述残差进行简化哈夫曼编码,转步骤(c4);

关键字段为能够标识报文特征的多字段集合,本发明中关键字段包括报文长度、fspec字段、数据源标识、批号。

(c3)检索魔术字在魔术字列表中是否有重复项;若是,当前帧定义为不建档i帧,构建码流;否则,当前帧定义为i帧,构建码流,并将所述魔术字和i帧码流加入到魔术字列表中;

(c4)判断是否有下一条报文,如有,跳转至步骤(c1),否则结束编码;

所述雷达航迹压缩报文解码包括如下步骤:

(d1)读入一帧雷达航迹编码报文,判断是否为建档i帧报文,如是,生成魔术字,解析并输出码流,并将所述魔术字和i帧码流加入到魔术字列表中;转步骤(d4);

(d2)判断是否为不建档i帧报文,如是,生成魔术字,解析并输出码流;转步骤(d4);

(d3)判断是否为p帧报文,如是,提取报文中的魔术字,在魔术字列表中查找相同魔术字报文,还原p帧对应的报文结构及关键字段,解码简化的哈夫曼编码内容,构建解码码流并输出;转步骤(d4);

p帧报文中解码简化的哈夫曼编码内容包括如下步骤:

依次读入编码码流,若当前编码码元为0,直接拷贝对应i帧字节内容;若当前编码码元为1,拷贝当前编码码元1之后的字节内容,解码后组合成新的码流输出。

(d4)判断是否有下一条报文,如有,转步骤(d1),否则解码结束。

有益效果:与现有技术相比,本发明公开的雷达航迹报文传输方法具有以下有益效果:1、将帧内、帧间编码的思想引入到雷达航迹报文压缩中,重复利用连续点迹数据间的相同的信息,通过去相近报文间的冗余信息大幅提高了报文的压缩比;2、基于已公开的可靠的校验算法生成魔术字,对建档i帧采用魔术字进行唯一标识,简化为两字节校验码,并对可能出现的重复魔术字进行特殊处理,保证了标识的唯一性,使得解码端进行检索建档i帧迅速有效;3、通过定义了多种码流及其组织形式,有效区分编码报文与非编码报文,并通过帧头标识进行区分,在编码与解码两端建立了很好的秩序;4、对p帧计算相对于i帧的残差,对残差进行简化哈夫曼编码,可以有效减少相同数据的传输;5、本发明公开的方法可以有效降低相同数据的传输资源消耗,提高报文的压缩比;同时,在信道带宽有限的情况下,能够有效节约资源,保证数据传输的完整性、可靠性、实时性,大幅提高了报文的传输效率,增强了报文的实时处理与使用效果。

附图说明

图1为本发明公开的传输方法的实施框图;

图2为实施例中的p帧参照i帧的变化量示意图;

图3为实施例中的多个p帧参照多个i帧的变化量示意图;

图4为实施例中编码的流程图;

图5为实施例中解码的流程图。

具体实施方式

下面结合附图和具体实施方式,进一步阐明本发明。

本实施例通过构建包括发送端和接收端的传输系统来详细说明本发明公开的雷达航迹报文传输方法,该传输系统的示意图如图1所示,包括发送端和接收端,其中发送端完成雷达航迹报文的压缩编码,接收端对压缩报文进行解码。本实施例以广泛采用的《欧洲航空安全组织监视数据交换标准文件》第7部分:单传感器场面运动数据信息标准格式cat010报文格式为例,说明雷达航迹报的传输过程。该协议属于本发明所阐述的雷达航迹报文,协议帧格式形如:“<cat><len><fspec><data>”,各个字段以<>隔开以示区分,各字段所代表的信息如下:

cat——报文类型说明cat,一个字节;

len——长度字段len,两个字节;

fspec——fspec,指示报文结构中有哪些字段,变长;

data——数据;

具体格式说明如下:

<0><1><2><3><4><5><6><7><8><9><10>

字段<0>:0a,报文类型说明,表明该报文为单传感器场面运动数据信息标准格式cat010目标数据,一个字节;

字段<1>:长度字段,两个字节;

字段<2>:fspec,指示报文结构中有哪些字段,变长;

字段<3>:数据源标识,两个字节;

字段<4>:消息类型,一个字节;

字段<5>:目标描述,变长;

字段<6>:时间,三个字节;

字段<7>:极坐标,四个字节;

字段<8>:直角坐标,四个字节;

字段<9>:航速航向,四个字节;

字段<10>:批号,两个字节。

本实施例构建的雷达航迹报文传输系统,共分为四种码流类型,通过帧头标识进行定义,分别是透传、建档i帧、不建档i帧及p帧,对应不同类型的码流,其组织方式具体如下:

(1)透传:透传标识c2+原始报文;

(2)建档i帧:建档i帧标识c3+除去报文类型及长度字段的原始报文;

(3)不建档i帧:不建档i帧标识c5+除去报文类型及长度字段的原始报文;

(4)p帧:p帧标识c7+对应建档i帧魔术字+哈夫曼编码结果。

假设需连续传输两条报文,具体内容如下:

q1:0a001bf7a00100016100619f9e0052daaa055e00bb00213a78008a;

q2:0a001bf7a0010001610000009e0052daaa055e00bb00213a78008a。

如图4所示,依次接收q1、q2,整个编码的工作流程如下:

步骤1,读入一条报文;

步骤2,判断是否是航迹报;

根据报文类型字段,即字段<0>判断所述一条报文是否是航迹报,若是,则跳转到步骤4,否则执行下一步骤3;报文q1的首字节为0a,判断为航迹报文,

步骤3,透传该报文;

如果不是航迹数据,对该报文增加透传标识,透传该报文,然后跳转到步骤12;

步骤4,生成魔术字;

所述魔术字,本发明特指对建档i帧报文生成的16位循环冗余校验码(crc16),本发明使用crc16算法,但不局限于该方法,已公开的校验算法均可应用于本发明魔术字的生成。本实施例中魔术字生成的字节序列范围是除去报文类型及报文长度两个字段的报文内容,但不局限于该范围,可根据实际情况确定。通过采用16位循环冗余校验对对除去报文类型及报文长度两个字段的报文生成唯一校验码,作为魔术字,然后进入步骤5;本实施例中对去除字段<0>和字段<1>后的报文参与魔术字(crc16)计算,因此从第3个字节f7开始生成魔术字为3b58;

步骤5,判断关键字段是否命中;

关键字段是确保一条报文属性并能最大化压缩的数据字段集合。根据雷达目标航迹报文特点及所依据的数据格式标准,选取可以标识一条报文特征的多个字段,定义为关键字段。任何雷达航迹报文压缩的诸如共享、存储、传输等场合,只需根据报文特点适应性选取关键字段开展报文压缩。对于不同数据格式标准的雷达航迹报文,结合报文组成的字段必选项、可选项及禁选项规定,通常选取信息源、航迹号、报文长度及fspec字段作为关键字段。本实施例中关键字段包括报文长度、fspec字段、数据源标识、批号,即字段<1>、<2>、<3>、、<10>,q1报文中关键字段为加下划线部分:

0a001bf7a00100016100619f9e0052daaa055e00bb00213a78008a

在编码过程中,根据关键字段是否命中,判断进入i帧建档或者p帧编码过程;若是,则跳转到步骤9,否则执行下一步骤6;

步骤6,检索魔术字是否有重复项;

检索步骤4生成的魔术字在魔术字列表中是否出现重复项,若是,则执行下一步骤7,否则跳转到步骤8;

步骤7,定义为不建档i帧,构建码流;

当出现具有相同魔术字的i帧时,为了更充分利用简化的魔术字实现与i帧关联,根据本发明的码流定义,去报文类型及长度字段后增加不建档i帧标识并生成码流传输,告知解码端不对该i帧报文建档,以避免解码混乱问题;然后进入步骤12;

步骤8,定义为i帧,i帧建档;

根据本实施例的码流类型定义,对报文增加i帧帧头标识,由i帧帧头标识及除去报文类型及长度字段的报文内容构成i帧,建档数据库以魔术字为主索引,存储魔术字及i帧;i帧建档完成然后进入步骤12;

对q1进行压缩编码时,目前建档i帧库中为空,关键字没有命中,且魔术字没有重复,则q1为i帧,将q1去掉字段<0>字段<1>,添加报文头标识为c3,形成编码码流q1-1为:

q1-1:c3f7a00100016100619f9e0052daaa055e00bb00213a78008a

将魔术字3b58和码流q1-1保存在魔术字列表中。

步骤9,定义为p帧;

关键字段命中的情况下,根据本发明的码流定义,对报文增加p帧帧头标识,然后写入i帧档案中检索的魔术字,那么解码端接收后可以通过p帧标识确定解码过程,通过魔术字唯一检索关联i帧,实现报文解码;然后进入步骤10;

读入q2时,通过关键字段比较,发现<001b><f7a0><0100><008a>命中,进入p帧编码,关键字段与i帧,即q1报文相同,无需编码,直接剔除,下划线为变化部分:

0a001bf7a0010001610000009e0052daaa055e00bb00213a78008a

步骤10,求p帧相对于i帧的残差;

对读取的报文除报文类型及关键字段外,以字节为单位,与命中i帧逐个字节进行比较,求p帧与i帧之间的变化量,即残差;然后进入步骤11;

步骤11,简化哈夫曼编码并输出新码流;

对残差进行简化哈夫曼编码,p帧与i帧同一个字节内容相同时则编码为0,内容不同时则直接在最高位加1,保留原i帧字节。当出现最后不满8位的情况时,直接在低位补0凑齐8位即可;然后进入步骤12;

本发明中的码流包括i帧和p帧,其中i帧为帧内编码帧,p帧为帧间编码帧。对p帧的编码需要参考i帧,采用简化的哈夫曼编码。如图2所示,p帧报文与参照报文i帧之间,除了关键字段内容相同,报文结构中“g”、“i”、“j”、“k”字节内容相同,则编码时相同的字节用一位的0替代,进行高效压缩编码传输,减少了传输数据量。如图3所示是多个参照报文i帧与p帧的情况,p帧的关键字段与对应的参照报文i帧是相同的,确定了参照报文之后,再对相应的p帧与i帧求变化量。

根据本发明提供的简化哈夫曼编码方法,q2报文编码后的二进制序列为:

0001000000001000000000000000000000;

对应16进制为1008000000(最后不够8位补0)。

其中前三位0表示q1和q2报文中相同的三个字节:016100;下划线部分是q1和q2报文中变化的两个字节编码后的码流,最高位为1,其后保留原i帧,即q1报文字节;最后的13位0表示q1和q2报文中相同的13个字节。

再根据本实施例的码流规则,定义p帧报文头为c7,同时附带上对应建档i帧的魔术字3b58,最终p帧编码码流q2-1为:

q2-1:c73b581008000000;

步骤12,判断是否有下一条报文;

若是则跳转到步骤1,否则执行下一步骤13;

步骤13,结束本次编码过程。

q2报文的原始报文长度为27字节,经过p帧编码仅剩余8个字节,压缩比达到3.38。

如图5所示,整个解码的工作流程如下:

步骤d1,读入一条报文;

步骤d2,判断是否是透传标识;

根据本发明定义的码流类型标识判断所述一条报文是否是透传报,如报文的首字节为c2则为透传报文,则执行下一步骤d3,否则跳转到步骤d4;

步骤d3,解析透传码流并输出

根据本发明的透传码流定义,对该报文去除透传标识c2,即还原原始报文,然后跳转到步骤d13;

步骤d4,判断是否是p帧;

根据本发明定义的码流类型标识判断所述一条报文是否是p帧,如报文的首字节为c7则为p帧报文,则跳转到步骤d10,否则所述报文是建档i帧或不建档i帧,执行下一步骤d5;

步骤d5,还原i帧对应报文结构;

根据本发明的建档i帧及不建档i帧码流定义,去除帧头标识c5或c3,再写入报文类型及长度字段内容,即还原原始报文结构;然后执行下一步骤d6;

步骤d6,生成魔术字;

通过采用16位循环冗余校验对除去报文类型及报文长度两个字段的报文生成唯一标识,作为魔术字;然后进入步骤d7;

步骤d7,判断是否是建档i帧;

根据本发明定义的码流类型标识判断所述一条报文是否是建档i帧,如报文的首字节为c3则执行下一步骤d8,否则跳转到步骤d9;当出现具有相同魔术字的i帧时,为了更充分利用简化的魔术字实现与i帧关联,根据本发明的码流定义,标识为不建档i帧,以避免解码混乱问题;

步骤d8,解码端建立i帧及魔术字档案;

魔术字列表以魔术字为主索引,存储魔术字及i帧,编解码两端分别存储魔术字及i帧;然后执行下一步骤d9;

步骤d9,输出解码后报文;

输出解码后报文,然后跳转到步骤d13;

步骤d10,查找相同魔术字的报文;

p帧报文以c7为报文头,后面带2字节魔术字,提取该魔术字,以该魔术字为主索引,在魔术字列表中查找相同魔术字的i帧报文,此i帧报文作为p帧的参照报文开展帧间编码的逆过程;然后执行下一步骤d11;

步骤d11,还原p帧对应原报文结构及关键字段;

根据本发明的p帧码流定义,去除帧头标识c7及魔术字内容,再写入报文类型及长度字段内容,即还原成包含哈夫曼编码结果的报文内容;再通过命中i帧直接拷贝对应关键字段内容;然后执行下一步骤d12;

步骤d12,解析简化哈夫曼编码的内容并输出;

在解码时按照规则解析出残差内容即可还原原报文,同一个字节内容相同时编码为0,则解码时,若为0,直接拷贝对应i帧字节内容;若为1,则直接拷贝最高位1之后的数据即可,解码后组合成新的码流输出;然后执行下一步骤d13;

解析哈夫曼编码的结束条件是:因为编码端存在最后一个字节不满8位补0的情况,因此残差比较的结束条件需要限定为建档i帧全部字节比较结束,而非码流最后1位结束。

步骤d13,判断是否有下一条报文;

若是则跳转到步骤1,否则执行下一步骤d14;

步骤d14,结束本次编码过程。

本实施例中收到两条编码后报文,分别为:

q1-1:c3f7a00100016100619f9e0052daaa055e00bb00213a78008a;

q2-1:c73b581008000000。

开始进入解码:

(1)读入q1-1,通过首字节c3判断为建档i帧,进入i帧解码,自动根据后续报文组合,添加航迹报文头0a和长度001b,即可完整解码整条报文为:0a001bf7a00100016100619f9e0052daaa055e00bb00213a78008a;

(2)针对该报文生成对应的魔术字,魔术字生成的范围是去掉字段<0>和字段<1>全部参与魔术字(crc16)计算,因此从第3个字节f7开始生成魔术字为3b58,建立魔术字列表;

(3)读入q2-1,通过首字节c7判断为p帧,进入p帧解码,根据码流规则,取出此p帧对应的魔术字为3b58,同时查询魔术字报文对照表,发现能够匹配上一个i帧,根据码流规则,将建档i帧的关键字段补充到该p帧中,再将p帧哈夫曼编码的内容进行二进制展开为:

0001000000001000000000000000000000000000,同时将对应魔术字3b58的i帧展开,逐个比较,该建档i帧比较的范围为除掉字段<0>和关键字段,即如下报文下划线部分:0a001bf7a00100016100619f9e0052daaa055e00bb00213a78008a;

读入第1位为0,根据本发明解码方法,则表示与建档i帧该字节完全相同,直接引用为01,再依次读取第2位第3位均为0,也直接引用6100,第4位为1,根据哈夫曼解码规则,为变化部分,提取后续8位即第5位至第12位为00,第13位又为1,继续提取第14位到第21位仍为00,后因为第22位之后全部均为0,所以直接引用建档i帧的结果即可(因为编码端有不满8位补0的情况出现,比较的结束条件需要限定为建档i帧全部字节比较结束)。

至此,根据码流规则,可以形成解码码流如下:

0a001bf7a0010001610000009e0052daaa055e00bb00213a78008a。

至此具体实施案例结束。接收端解码后的码流与发送端编码前的报文中码流一致,实现了雷达航迹报文的无损传输。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1