引言
北斗卫星导航系统是我国自主建设、独立运行、集导航定位、授时、用户监测、短报文通信于一体的导航系统[1]。短报文通信是北斗系统特有的一个功能,其不受地形条件和环境气候等影响,可用于解决偏远地区数据实时通信问题,特别适用于常规通信手段存在盲区多、基建投入大的场合使用,例如野外的石油、天然气的阀站和门站,以及远离移动网络覆盖地区或者通信不稳定地区工厂的数据传输。
北斗卫星的主要任务是定位导航,通信的信道资源少,民用北斗短报文通信存在单次报文长度和通信频度受限的问题。对于工业远程监测控制和数据采集(Supervisory Control and Data Acquisition,SCADA)项目中的数据而言,数据采集频率高,数据量大。若对数据作分包处理,可实现大量数据传输。但谷军霞[2]等在2015年进行的北斗短报文丢包测试中表明,随着报文分包数的增加,报文的传输成功率逐步降低。若减少对原始工业数据的采样频率,则可降低数据量。但对于企业来说,历史数据是工业现场宝贵的财富,是为后续工程技术人员提供分析和故障处理的基础资料,是不能因为传输的限制就随意减少和丢弃的。因此就需要有一种方法,既可完成实时数据的传输,又不会产生太大的数据量。
目前已发表的关于北斗短报文通信的论文中,于龙海提出先建立运动目标的数学模型,通过参数简化和差分编码实现北斗定位数据的压缩[3]。陈海生提出的固定长度的索引码表用于渔获数据的传输,可以解决数据无损压缩传输,但是不具有通用性[4]。彭浩提出了中文智能分词和无损压缩编码的联合压缩算法,进而实现通信数据扩容[5],但是工业过程数据中,主要传输的是实数信息。目前,对于北斗短报文通信的工业过程数据的传输,还没有较实用的数据压缩和传输的解决办法。因此本文提出了一种分别从有损和无损压缩两个方面,对数据分步进行压缩处理的解决方案。实验证明,该方法可有效对短报文数据进行压缩处理,从而提高工业过程数据传输的效率和可靠性。
1 北斗通信压缩第一步:有损压缩
有损压缩是在压缩工程中损失一定的信息以获得较高的压缩比[6]。为后文评价有损压缩过程,本文采用曲奕霖[7]在其论文中提出的评价标准,如下:
CR用于衡量算法对一组数据的压缩能力,而δ用于衡量一组数据的平均失真度。
旋转门算法是一种常见的过程数据压缩算法。本文提出的北斗通信压缩算法中的有损压缩阶段就基于旋转门算法。下面先介绍旋转门算法,再介绍本文提出的基于改进BP神经网络PID的自控精度SDT有损压缩算法(后文简称为自控精度有损压缩算法)。
1.1 标准旋转门算法(SDT)分析
旋转门压缩算法由美国OSI软件公司研发,此算法主要针对的是浮点型的数据。SDT作为线性拟合的一种简便算法,具有效率高、压缩比高、实现简单、误差可控制的优点。基本算法原理如图1所示。
设ΔE为SDT算法的压缩精度参数,图1中A点为起始点,以距离A点为ΔE的上下两点为支点(类似两扇门的门轴,故得名旋转门)。压缩开始时,两扇门是关闭的,且在算法执行过程中,门只能往外开启,不能往内关闭。随着数据点的增加,门就会旋转打