用于北斗发送通用航空器经纬位置数据的多模型压缩方法

文档序号:7520053阅读:717来源:国知局
专利名称:用于北斗发送通用航空器经纬位置数据的多模型压缩方法
技术领域
本发明涉及信息与信号处理领域的一种方法,具体是一种用于北斗设备批量发送通用航空器经纬位置和高度数据的多模型压缩和解压方法。
背景技术
伴随着国家对航空工业大力支持,国家、民间对通用航空应用的迫切需求,通用航空市场蓬勃发展。然而对于通用航空器的用户和管理来说的定位和跟踪通用航空器是极其重要的,而我国自主研发的北斗系统非常适合进行通用航空器的定位和跟踪。但第一代民用北斗设备发送信息的间隔较长,且每次送数据的数量有限,因此使用民用北斗设备发送通用航空器经纬度信息急需相应的压缩算法,这是实现实时连续跟踪的必要条件。
北斗系统是我国自主研发的定位和通信系统,它不但可以进行定位,同时其通信功能可以允许用户发送数据。对于普通民用用户来说,每次发送信息的间隔至少为一分钟,且每次至多发送约两百个字节的数据。使用北斗的数据传输功能传输通用航空器的经纬度位置信息,可以实现对通用航空器的跟踪和监控,若用浮点数格式发送经纬度信息,每个浮点数由四个字节构成,一个经度或纬度或高度信息可由一个浮点数表示,因此一组位置和高度信息由12个字节构成,民用北斗一次发送的数据量为210字节,因此只能发送约17组数据,航空器经纬度位置的时间分辨率约为3秒,基本能满足监控的需求。但是,通用航空器在使用北斗发送经纬位置和高度的同时也会发送文字短消息与地面通信,通常每次50个汉字(100个字节)左右的短消息基本能满足用户的需求,若能够在发送经纬度的同时也发送短消息,那么,每次只能发送9组经纬位置和高度数据,则经纬位置和高度数据的时间分辨率为7秒,这个间隔对于监控高速飞行的通用航空器来说,是不能满足需求的。文字信息是很难压缩的,因此只能对经纬位置和高度数据进行压缩,以保证每次发送经纬度位置和高度的同时仍能够正常发送50个汉字的信息。经对现有技术的检索发现,专利《用于批量发送通用航空器经纬位置数据的压缩方法》,申请号/专利号201210102422. 0,该方法使用了预测编码和霍夫曼编码技术进行压缩,但是在预测编码过程中仅使用单一模型,在某些情况下压缩效率低,为此,本发明使用基于不同模型的预测编码,以进一步提高压缩效率。

发明内容
针对上述现有技术存在的问题,本发明的目的在于提供一种用于北斗设备发送通用航空器经纬位置的多模型压缩和解压方法。本发明是基于多个模型的预测编码和霍夫曼编码相结合的数据压缩和解压方法,该方法能够用于北斗设备批量发送通用航空器经纬位置和高度时的数据压缩。本发明的发明目的是通过以下技术方案实现的,包括如下步骤步骤一,根据实际情况确定经纬度和高度数据的精度,并根据确定的精度要求对数据进行截断处理;
步骤二,基于不同的假设模型对步骤一中经过截断处理的数据分别进行预测编码;步骤三,对步骤二中得到的多组预测编码数据分别进行霍夫曼编码;步骤四,对步骤三中得到的多组霍夫曼编码分别生成压缩数据的数据头和压缩数据体,并比较每组数据头和数据体所占用的字节数,选择字节数最小的作为最终的压缩结果;步骤五,数据的解压缩。步骤一中的截断操作是一个截尾操作,例如,若要求经纬度精度为小数点后5位,那么第6位和第6位以后的数据全部舍弃,高度的精度若为米,那么米级以后的数据全部舍
弃。 步骤二中的预测编码是一种编码技术,它基于离散信号间相关性,利用前面一个或多个信号预测下一个信号,然后对实际值和预测值的差(误差)进行编码。若信号间的相关性较强,且采取的预测方法得当,那么预测误差会比较小,就可以用比较少的比特进行编码,进而达到数据压缩的目的。步骤二中的预测编码采用了不同的假设模型进行预测编码,所采用的假设模型有一阶差分模型和二阶差分模型。步骤三中的霍夫曼编码是一种编码技术,它是由Huffman与1952年提出的,它的基本原理是基于定理“在变长编码中,如果码字长度严格按照出现概率由大到小的顺序排列,则平均码字长度最小”。步骤三中的数据头是用于记录压缩编码关键信息的数据块,这些信息包括霍夫曼编码的码字,初始经纬、高度和其他一些状态信息等,这些是解码时所必须的。与现有技术相比,本发明具有以下有益效果本方法根据通用航空飞行器的性能特点和其发送的经纬度和高度信息的特点进行压缩,无需人工干预,完全自动完成,压缩效率高。可以保证在批量传输高时间分辨率的经纬、高度数据的同时还能够发送文字信息。或者在不发送文字信息时,传送更高时间分辨率的数据经纬、高度数据,以便实现对航空器的精确的监控。


图I为某型号直升机飞行时记录的一组经纬度和高度数据。表中经纬度单位为度,高度单位为米,数据采样间隔为8秒图2为描述经纬、高度数据的不同模型组合3对图I中的数据进行步骤一中的截断操作后,再进一阶差分后的结果图4对图I中的数据进行步骤一中的截断操作后,再进二阶差分后的结果图5对图4中的数据进行出现频率统计得到的结果图6为本发明实施例中霍夫曼编码的初始叶子节点图7为本发明实施例中霍夫曼编码第一次和第二次合并的情况图8为本发明实施例中得到的霍夫曼树图9为数据头、数据体和文字信息间的排列关系图。
具体实施方式
下面结合附图对本发明作进一步的详细说明本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例步骤一,根据实际情况确定经纬度和高度数据的精度,并根据确定的精度要求对数据进行截断处理;设数据为浮点数,精度为小数点后M位,则从小数点后第M+1位(包括M+1位)全部舍去,截断后对数据放大IOm倍后转换成整数。设本例中使用的数据如图I所示,其中经纬和高度数据分别用jk,wk, hk表示。本实施例中经纬度精度为小数点后5位,高度精度为米级,那么对于经纬、高度数据中小数点后第6位(包括第6位)以后的数据可以认为是不需要的或者不准确的,进行舍弃。截断后将经度、纬度和高度数据扩大IO5倍后将数据转换为四字节表示的整数,转换后的经纬和高度数据分别用Jk,Wk, Hk。 步骤二,基于不同的假设模型对步骤一中经过截断处理的数据分别进行预测编码;若飞机进行匀速直线运动,使用一阶差分模型描述此时飞机的经纬、高度数据将会得到比较好压缩性能;若飞机进行匀加速运动,使用二阶差分模型描述此时飞机的经纬、高度数据将会得到比较好压缩性能。因此,尝试对经纬、高度数据分别采用不同的模型进行描述,然后再进行压缩,就可以进一步提高压缩效率。这里只采用一阶差分模型和二阶差分模型两种模型,所以对经纬、高度数据的模型描述可以有8种组合,如图I所示。依次尝试这8种组合,选取最佳的模型组合就可以得到最佳的压缩效率。设步骤一中经过截断处理的经度数据序列、纬度序列和高度序列分别为Jk,Wk, Hk(k=l,2,3,…,N,其中N为序列长度)。记Jk,Wk,Hk的一阶差分分别为J/ = Ji-Jwff/ = Wi-Wi-!, (OH1' = Hi-Hi-!其中1=1,2,...,N_l,i=2,3,-,N0 记 Jk,Wk,Hk 的二阶差分为Jm" = Ji' -Ji-/,W111" =Wi' -Wi-/,⑵H: =Hi' -Hi-/,其中m=l,2,...,N_2,i=2,3,...,N_1。对图I中的数据进行步骤一中的截断操作后,然后经由公式(I)和公式(2)所得到的一阶差分和二阶差分如图3和图4所示。步骤三,对步骤二中的多组预测编码数据进行霍夫曼编码步骤二中的数据共有8组,分别对应图2中的8种组合。分别对这8组数据进行霍夫曼编码。这里以图2最后一组,即图4中所示的数据为例进行说明。图2最后一组组合对应序列Jm",Wm",Hm" (m=l,2,…,N-2),将其组合成一个序列dk (k=l,2,…,3N-6),其中dk = Jk" (k=l, 2, ...,N_2)dk = Wk" (k=N_l,N,…,2N—4)(3)
dk = Hk" (k=2N-3,2N_2,…,3N—6)然后对序列dk (k=l,2,…,3N-6)进行霍夫曼编码。具体方法是I.统计序列dk中每个数值出现的频率(即出现的次数)。记dk中共有M个不同的值,这M个值按其值由小到大的顺序排列得到的序列为Rs (s=l,2,…,M),RS是一个二维序列包括数值和对应数值出现的频率,记Rs (I)为数值,Rs (2)为数值出现的频率。本实施例中对图2中的数据进行处理得到的序列按值由小到大排列的得到的序列Rs如图6所示。记这M个值按出现频率由小到大排列的序列为Ds (s=l,2,…,M),Ds也是一个二维序列包括数值和对应数值出现的频率每个数值和该数值对应的频率,Ds的每一个单元作为一个叶子节点,这些叶子节点为霍夫曼编码的初始叶子节点,本实施例中霍夫曼编码的初始叶子节点如图6所示。2.叶子节点中两个最小频率的节点合并为一个新节点,并将频率相加作为新节点的频率,并将该节点和其他节点一起新按照出现频率由大到小的顺序进行排列。合并时频 率较高的节点作为右节点,频率较低的节点为左节点。图7给出了第一次和第二次合并的情况。3.重复步骤2直到只剩下一个节点,作为根节点。最终获得的霍夫曼树如图8所示。经过上述步骤后得到一个霍夫曼树,记录叶子节点到根节点的路径,该路径上的左子树赋值“0”,右子树赋值“1”,按照由低位到高位的顺序排列,就是叶子节点所对应数值的霍夫曼编码的码字。例如,值-3的码字为0101 ;值-2的码字为00 ;值-1的码字为100 ;值O的码字为11 ;值I的码字为101 ;值2的码字为011 ;值3的码字为01001 ;值6的码字为01000 ;最后,根据霍夫曼编码的码字将序列dk转换为霍夫曼编码。对图I所示的8组数据分别进行霍夫曼编码,于是可以得到8组霍夫曼编码。步骤四,生成压缩数据的数据头和压缩数据体;下面以图2中第7组数据所得到的的霍夫曼编码为例,介绍如何生成数据头。数据头的前10位二进制位记为Iitl用于存储一个整数,该整数表示文字信息的起始位置。接着Iitl的是Ii1 A1的前24个二进制位顺序存储两个12位二进制位标表示的整数,第一个整数为序列dk中最小值dmin,第二个整数为序列dk中最大值dmax,在第二个整数后的是(dmax-dmin)个二进制位,记为U,U的第i位记为Up当且仅当a是序列dk中的一个值时,
所以,U中I的个数等于霍夫曼编码码字的个数。紧接着Ill的是霍夫曼编码的码字信息,这一段数据头记为h2。设Ii1中的U中的I的个数为Hlm,码字的个数等于Hlm。一个码字信息包括码字长度和码字两部分,码字长度由N位二进制位表示的正整数表示,其中N为满足2n ^ Hlen的最小整数,码字即为霍夫曼编码得到的码字。码字信息的排列的顺序按照码字对应的数值由小到大排列。接着h2的是h3,h3的前3位二进制二进制位分别表示描述经度数据、纬度数据和高度数据所使用的模型,O为一阶差分模型,I为二阶差分模型。h3的其他二进制位存储的信息由h3的前3位决定若h3前三位为000则h3其他二进制位存顺序存储J1, W1, H115若h3前三位为001则h3其他二进制位存顺序存储J1, W1, H1, H/。
若匕前三位为010则h3其他二进制位存顺序存储J1, W1, H1J/。若h3前三位为011则h3其他二进制位存顺序存储J1, W1, H1, W/,H/。若h3前三位为100则h3其他二进制位存顺序存储J1, W1, H1, J/。若h3前三位为101则h3其他二进制位存顺序存储J1, W1, H1, J/,H1'。若h3前三位为110则h3其他二进制位存顺序存储J1, W1, H1, J/,W/。若h3前三位为111则h3其他二进制位存顺序存储J1, W1, H1, J/ ,ff/,H/。本例中h3前三位为110,h3其他二进制位存顺序存储J1, W1, H1, J1' ,W/接着h3的是数据体,数据体存储序霍夫曼编码。数据体后是文字消息。数据头和数据体的排列关系如图9所示。 对步骤四中生成的8组霍夫曼编码分别生成数据头,分别比较每组霍夫曼编码和其对应的数据头的长度之和,选择最短的作为最终的压缩结果。在本例中,图2中第7组模型组合所对应的霍夫曼编码和数据头长度之和最小,是最终压缩结果。步骤五,数据的解压缩。从接收的数据读取Iv根据Iltl的数值读取文字信息,从而完成解码文字信息。然后解码经纬、高度数据。读取Ii1中的前两个12位二进制位标表示的整数,这两个整数分别为最小值dmin,和最大值dmax, Ii1中的U共有(dmax_dmin)个二进制位,记U中的二进制位为I的数目为Hlm,则Hlm为霍夫曼码字的个数。扫描数据头中的Ii1的U,若发现U第i位为1,则从h2中顺序读取N位二进制位表示的正整数Ni,其中N为满足2n ^ Hlen的最小整数,正整数Ni的数值为该条码字的长度,读取Ni个二进制位从而得到该条码字。该码字对应的数值为(dmin+i),重复该步骤直到扫描结束,此时就得到了霍夫曼编码的码字和码字对应的数值。读取h3,根据h3的前三位二进制位,分别读取h3其他二进制位,得到J1, W1, H1或J/或W/或H/的数值。根据h3的前三位二进制位分别得到J1, W1, H1或J/或W/或H1'的数值所候采用的方法是若h3前三位为000则h3其他二进制位存顺序存储J1, W1, H115若h3前三位为001则h3其他二进制位存顺序存储J1, W1, H1, H/。若h3前三位为010则h3其他二进制位存顺序存储J1, W1, H1, W/。若h3前三位为011则h3其他二进制位存顺序存储J1, W1, H1, W/,H/。若h3前三位为100则h3其他二进制位存顺序存储J1, W1, H1, J/。若h3前三位为101则h3其他二进制位存顺序存储J1, W1, H1, J/,H1'。若h3前三位为110则h3其他二进制位存顺序存储J1, W1, H1, J/,W/。若h3前三位为111则h3其他二进制位存顺序存储J1, W1, H1, J/,W/,H/。本例中h3前三位为110,h3其他二进制位存顺序存储J1, W1, H1, J1',W/。使用得到的码字对数据体进行解码,即将数据体中的编码序列按照编码码字对应的数值转换为数值序列,此时得到的数值即为序列dk (k=l,2,…,3N-6),根据(3)式将dk分别转换为序列J/或W/或H1'或Jm"或Wm"或扎"(m=l,2,…,N-2)。本例中dk分别转换为序列Jm",Wm",H/。然后根据式(I)和(2)就可以得到经度数据序列、纬度序列和高度序列jk,wk,hk。(注意由于在步骤一中将数据截断后放大了 IO5倍,因此所得jk,wk,hk也要相应缩小IO5倍)
本实施例中对图I给出的数据进行压缩,数据头中Iitl的长度为10位二进制位(bit),数据头中Ii1长度为24+9=33个二进制位(bit),h2的长度共计55个二进制位(bit),h3 存储 J1, W1, H1, J1' , ff/,其中 J1, W1, H1, J/ ,W/,为四字节整数,共 160 位(bit)。本实施例中压缩后的数据体长度为216位(bit),所以加上数据头总共需要474位(bit),约合60个字节(byte)就可以表示图I中的数据。而北斗一次传输数据可达210个字节,还剩余150个字节,除去需要传送的50个汉字(约100字节)的文字信息外,还剩余50个字节可供进行校验或者其它用途。而若采用四字节浮点数发送图I中的数据则需要360个字节,这远远超出了北斗 一次数据发送的最大限度,无法在发送经纬、高度数据的同时发送文字信息,更不用说进行校验了。这说明本发明具有良好的压缩效果和并具有较强的实用性。
权利要求
1.用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征在于,包括如下步骤 步骤一,根据实际情况确定经纬度和高度数据的精度,并根据确定的精度要求对数据进行截断处理; 步骤二,基于一个或一个以上的假设模型对步骤一中经过截断处理的数据分别进行预测编码; 步骤三,对步骤二中得到的多组预测编码数据分别进行霍夫曼编码; 步骤四,对步骤三中得到的多组霍夫曼编码分别生成压缩数据的数据头和压缩数据体,并比较每组数据头和数据体所占用的字节数,选择字节数最小的作为最终的压缩结果; 步骤五,数据的解压缩。
2.根据权利要求I所述的用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征是,步骤一中的截断操作是一个截尾操作。
3.根据权利要求I所述的用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征是,步骤二中的预测编码是基于离散信号间相关性,利用前面一个或多个信号预测下一个信号,然后对实际值和预测值的差进行编码。
4.根据权利要求3所述的用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征是,步骤二中的预测编码采用了不同的假设模型进行预测编码,所采用的假设模型为一阶差分模型和二阶差分模型。
5.根据权利要求I所述的用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征是,所述步骤四中的数据头为用于记录压缩编码关键信息的数据块。
6.根据权利要求5所述的用于北斗发送通用航空器经纬位置数据的多模型压缩方法,其特征是,所述数据块包含文字信息的起始位置、霍夫曼编码的码字、经度数据、纬度数据和高度数据所使用的模型、数据体。
全文摘要
本发明公开了一种用于北斗发送通用航空器经纬位置数据的多模型压缩方法,包含步骤一,根据实际情况确定经纬度和高度数据的精度并对数据进行截断处理;步骤二,基于一个或一个以上的假设模型对步骤一中经过截断处理的数据分别进行预测编码;步骤三,对步骤二中得到的多组预测编码数据分别进行霍夫曼编码;步骤四,对步骤三中得到的多组霍夫曼编码分别生成压缩数据的数据头和压缩数据体,选择字节数最小的作为最终的压缩结果;步骤五,数据的解压缩。本发明使用基于不同模型的预测编码,可以进一步提高压缩效率,以便实现对航空器的精确的监控。
文档编号H03M7/40GK102841356SQ201210358480
公开日2012年12月26日 申请日期2012年9月21日 优先权日2012年9月21日
发明者翟鸣, 施劲松, 刘经华, 张鹤 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1