一种无线传感器阵列数据压缩方法及系统转让专利

申请号 : CN201610930928.9

文献号 : CN106572093B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 隆克平李丹阳皇甫伟

申请人 : 北京科技大学

摘要 :

本发明提供一种无线传感器阵列数据压缩方法及系统,能够在较高精度下有效减少发送的数据量,以降低传输成本,同时能够保证数据的可靠性。所述方法包括:在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。本发明适用于数据压缩技术领域。

权利要求 :

1.一种无线传感器阵列数据压缩方法,其特征在于,包括:在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;

根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;

计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;

对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。

2.根据权利要求1所述的无线传感器阵列数据压缩方法,其特征在于,所述最优控制矢量表示为:其中,表示最优控制矢量,A+表示A的广义逆矩阵,A表示样条曲线的插值系数矩阵,Y表示所述原始传感器阵列数据。

3.根据权利要求1所述的无线传感器阵列数据压缩方法,其特征在于,所述根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值包括:对得到的所述最优控制矢量进行量化;

根据量化后的最优控制矢量重构样条曲线;

根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值;

其中,所述原始传感器阵列数据的拟合值表示为: 表示原始传感器阵列数据的拟合值,A表示样条曲线的插值系数矩阵,表示最优控制矢量。

4.根据权利要求1所述的无线传感器阵列数据压缩方法,其特征在于,所述对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端包括:对量化后的误差进行哈夫曼编码;

将编码结果和所述最优控制矢量构成数据包;

将构成的数据包发送至接收端。

5.根据权利要求1所述的无线传感器阵列数据压缩方法,其特征在于,所述方法还包括:在接收端,接收由编码结果和所述最优控制矢量构成的数据包;

根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;

对接收到的所述数据包中的编码结果进行哈夫曼解码;

将所述原始传感器阵列数据的拟合值与解码结果相加,得到所述原始传感器阵列数据。

6.一种无线传感器阵列数据压缩系统,其特征在于,包括:第一确定模块,用于在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;

第二确定模块,用于根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;

第三确定模块,用于计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;

编码发送模块,用于对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。

7.根据权利要求6所述的无线传感器阵列数据压缩系统,其特征在于,所述最优控制矢量表示为:其中,表示最优控制矢量,A+表示A的广义逆矩阵,A表示样条曲线的插值系数矩阵,Y表示所述原始传感器阵列数据。

8.根据权利要求6所述的无线传感器阵列数据压缩系统,其特征在于,所述第二确定模块包括:量化单元,用于对得到的所述最优控制矢量进行量化;

重构单元,用于根据量化后的最优控制矢量重构样条曲线;

确定单元,用于根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值;

其中,所述原始传感器阵列数据的拟合值表示为: 表示原始传感器阵列数据的拟合值,A表示样条曲线的插值系数矩阵,表示最优控制矢量。

9.根据权利要求6所述的无线传感器阵列数据压缩系统,其特征在于,所述编码发送模块包括:编码单元,用于对量化后的误差进行哈夫曼编码;

构成单元,用于将编码结果和所述最优控制矢量构成数据包;

发送单元,用于将构成的数据包发送至接收端。

10.根据权利要求6所述的无线传感器阵列数据压缩系统,其特征在于,所述系统还包括:接收模块,用于在接收端,接收由编码结果和所述最优控制矢量构成的数据包;

第四确定模块,用于根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;

解码模块,用于对接收到的所述数据包中的编码结果进行哈夫曼解码;

第五确定模块,用于将所述原始传感器阵列数据的拟合值与解码结果相加,得到所述原始传感器阵列数据。

说明书 :

一种无线传感器阵列数据压缩方法及系统

技术领域

[0001] 本发明涉及数据压缩技术领域,特别是指一种无线传感器阵列数据压缩方法及系统。

背景技术

[0002] 随着微电子技术和微机电系统(MEMS,Micro-Electro-Mechanical System)技术的不断进展,作为信息获取最基本和最重要的传感器,也得到了长足发展。传感器阵列就是由部署在特殊地理环境内大量的微型传感器节点(例如,无线传感器节点)组成的,如用以收集水文数据部署在水下的传感器阵列。由于地理环境受到限制,无线传感器节点一般通过无线通信方式进行信息传输,达到感知、采集监测区域中被感知对象的信息的目的。
[0003] 以无线传感网环境监测系统为例,无线传感网环境监测系统通过在一定区域内部署大量无线传感器节点对该区域环境进行长期监测。无线传感器节点的传感单元对感知的环境信息进行采集,其处理单元存储和处理自身采集的数据,最后由通信单元进行信息传输。如果进行三维空间地理环境的监测,如对水域、土壤的监测,这样的传感器节点就不能全面、完整地收集信息。一般将无线传感器节点上的单个传感器拓展为传感器阵列。传感器阵列就是由一组呈特殊几何分布的部署在特殊地理环境的传感器组成。例如,将传感器阵列线性部署在水下区域,即可采集到不同深度的流速、方向、盐度等水文数据,如图1所示的无线传感网水文监测系统。传感器阵列在每一个采样时刻都会采集一组新的传感器阵列数据,大量的传感器阵列数据需要在保证一定精度的条件下及时传输到数据中心以服务于相关应用。由于无线传感器节点往往距离基站较远,多使用卫星向数据中心传输数据,因此大量频繁的长距离无线数据传输带来了巨大的能量开销和通信花费。
[0004] 数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。无损压缩利用数据的统计冗余进行压缩,可以完整的恢复原始数据,压缩率一般比较低。有损压缩方法允许压缩的过程中损失一定的信息,虽然不能完全恢复原始数据,但是所损失的部分对理解原始数据的影响较小,却换来了比较高的压缩率。
[0005] 哈夫曼(Huffman)编码是一种典型的无损压缩方法,通过将出现概率较大的符号用字长较短的码字表示,出现概率较小的符号用字长较长的码字表示来实现压缩。在编码与解码的时候都需要依据记录了符号与码字对应关系的码本。当符号真实出现的概率与生成的码本使用的符号出现概率一致时,Huffman编码的压缩效果非常好。如果传感器阵列数据整体看作一个矢量,码本会非常大而不易存储在无线传感器节点的存储器中;如果传感器阵列数据看作由单个传感器数据标量构成的集合又会忽略相邻传感器之间的关联。
[0006] 自适应分段常数近似(APCA,adaptive piecewise constant approximation)是一种针对时间序列的有损压缩方法,也可以应用到传感器阵列产生的空间序列数据上。APCA方法忽略了一定范围内的数据波动。当标记位置值与当前位置值的误差达到了设定的门限时即可分为独立的一段,这段就用标记位置值这个常数表示。但是该方法压缩率较高时,误差会非常大,精度受到极大影响,其压缩率与精度之间总是难以权衡。

发明内容

[0007] 本发明要解决的技术问题是提供一种无线传感器阵列数据压缩方法及系统,以解决现有技术所存在的Huffman编码不适用于传感器阵列数据的应用场景,自适应分段常数近似方法无法保证数据的可靠性的问题。
[0008] 为解决上述技术问题,本发明实施例提供一种无线传感器阵列数据压缩方法,包括:
[0009] 在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;
[0010] 根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0011] 计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;
[0012] 对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。
[0013] 进一步地,所述最优控制矢量表示为:
[0014] 其中,表示最优控制矢量,A+表示A的广义逆矩阵,A表示样条曲线的插值系数矩阵,Y表示所述原始传感器阵列数据。
[0015] 进一步地,所述根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值包括:
[0016] 对得到的所述最优控制矢量进行量化;
[0017] 根据量化后的最优控制矢量重构样条曲线;
[0018] 根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值;
[0019] 其中,所述原始传感器阵列数据的拟合值表示为: 表示原始传感器阵列数据的拟合值,A表示样条曲线的插值系数矩阵,表示最优控制矢量。
[0020] 进一步地,所述对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端包括:
[0021] 对量化后的误差进行哈夫曼编码;
[0022] 将编码结果和所述最优控制矢量构成数据包;
[0023] 将构成的数据包发送至接收端。
[0024] 进一步地,所述方法还包括:
[0025] 在接收端,接收由编码结果和所述最优控制矢量构成的数据包;
[0026] 根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0027] 对接收到的所述数据包中的编码结果进行哈夫曼解码;
[0028] 将所述原始传感器阵列数据的拟合值与解码结果相加,得到解压缩出的传感器阵列数据。
[0029] 本发明实施例还提供一种无线传感器阵列数据压缩系统,包括:
[0030] 第一确定模块,用于在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;
[0031] 第二确定模块,用于根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0032] 第三确定模块,用于计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;
[0033] 编码发送模块,用于对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。
[0034] 进一步地,所述最优控制矢量表示为:
[0035] 其中,表示最优控制矢量,A+表示A的广义逆矩阵,A表示样条曲线的插值系数矩阵,Y表示所述原始传感器阵列数据。
[0036] 进一步地,所述第二确定模块包括:
[0037] 量化单元,用于对得到的所述最优控制矢量进行量化;
[0038] 重构单元,用于根据量化后的最优控制矢量重构样条曲线;
[0039] 确定单元,用于根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值;
[0040] 其中,所述原始传感器阵列数据的拟合值表示为: 表示原始传感器阵列数据的拟合值,A表示样条曲线的插值系数矩阵,表示最优控制矢量。
[0041] 进一步地,所述编码发送模块包括:
[0042] 编码单元,用于对量化后的误差进行哈夫曼编码;
[0043] 构成单元,用于将编码结果和所述最优控制矢量构成数据包;
[0044] 发送单元,用于将构成的数据包发送至接收端。
[0045] 进一步地,所述系统还包括:
[0046] 接收模块,用于在接收端,接收由编码结果和所述最优控制矢量构成的数据包;
[0047] 第四确定模块,用于根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0048] 解码模块,用于对接收到的所述数据包中的编码结果进行哈夫曼解码;
[0049] 第五确定模块,用于将所述原始传感器阵列数据的拟合值与解码结果相加,得到解压缩出的传感器阵列数据。
[0050] 本发明的上述技术方案的有益效果如下:
[0051] 上述方案中,在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。这样,通过采用具有高压缩率的样条曲线拟合原始传感器阵列数据和具有高编码精度的Huffman编码的混合压缩算法,能够在较高精度下有效减少发送的数据量,以降低传输成本,同时能够保证数据的可靠性。

附图说明

[0052] 图1为本发明实施例提供的无线传感网水文监测系统的结构示意图;
[0053] 图2为本发明实施例提供的无线传感器阵列数据压缩方法的流程示意图;
[0054] 图3为本发明实施例提供的利用Catmull-Rom样条曲线表示原始传感器阵列数据的示意图;
[0055] 图4为本发明实施例提供的控制点pi-1,pi,pi+1和pi+2的位置示意图;
[0056] 图5为本发明实施例提供的虚置控制点示意图;
[0057] 图6为本发明实施例提供的无线传感器阵列数据压缩方法的具体流程示意图;
[0058] 图7为本发明实施例提供的直接量化、APCA、CSA三种压缩算法的包结构的示意图;
[0059] 图8为本发明实施例提供的误差的分布示意图;
[0060] 图9为本发明实施例提供的Emax=8时,压缩后数据大小示意图;
[0061] 图10为本发明实施例提供的Emax=32时,压缩后数据大小的示意图;
[0062] 图11为本发明实施例提供的无线传感器阵列数据压缩系统的结构示意图。

具体实施方式

[0063] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0064] 本发明针对现有的Huffman编码不适用于传感器阵列数据的应用场景,自适应分段常数近似方法无法保证数据的可靠性的问题,提供一种无线传感器阵列数据压缩方法及系统。
[0065] 实施例一
[0066] 参看图2所示,本发明实施例提供的无线传感器阵列数据压缩方法,包括:
[0067] S101,在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;
[0068] S102,根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0069] S103,计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;
[0070] S104,对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。
[0071] 本发明实施例所述的无线传感器阵列数据压缩方法,在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。这样,通过采用具有高压缩率的样条曲线拟合原始传感器阵列数据和具有高编码精度的Huffman编码的混合压缩算法,能够在较高精度下有效减少发送的数据量,以降低传输成本,同时能够保证数据的可靠性。
[0072] 本实施例中,采用具有高压缩率的样条曲线拟合原始传感器阵列数据和具有高编码精度的Huffman编码的混合压缩算法,能够有效避免单独使用样条曲线拟合方法压缩率高而精度不够的缺点及单独使用Huffman编码的码本过大不适用于传感器阵列数据的应用场景的问题。
[0073] 本实施例中,假设在传感器阵列上有N个传感器,N个传感器记为S1,S2,...,SN,N个传感器被等间隔部署在从x1至xN的深度范围内,那么传感器之间的间隔为(xN-x1)/(N-1)。在某个特定的采样时刻,传感器Si采集到的数据为yi,为了表示整个传感器阵列数据,定义N维列矢量Y,Y表示为式(1):
[0074] Y=[y1,y2,...,yN]T   (1)
[0075] 式(1)中,Y表示传感器阵列S1,S2,...,SN在某一采样时刻采集到的传感器阵列数据,Y也可以称为原始的传感器阵列数据,T表示转置。
[0076] 本实施例中,可以利用Catmull-Rom样条曲线使用少量数值尽可能精确地将原始传感器阵列数据Y表达出来,如图3所示,其中,p1,p2,...,pM代表控制点,样条曲线控制点的数目共有M个,将第i个控制点记为pi,控制点记pi可以用一个二维列向量表示 其中,1≤i≤M,曲线上的第i段,即位于控制点pi和pi+1之间的一段,可由四个控制点计算出来,即pi-1,pi,pi+1和pi+2,如图4所示。本实施例所述的基于Catmull-Rom样条曲线的无线传感器阵列数据压缩方法也可称为基于Catmull-Rom样条逼近(CSA,Catmull-Rom spline approximation)的无线传感器阵列数据的压缩方法。
[0077] 本实施例中,若控制点位置等间隔分布在x轴上,那么控制点pi在x轴上的位置pix可以表示为式(2):
[0078]
[0079] 由此可知,Catmull-Rom样条曲线被控制点分为了M-1段,第i个分段上点在x轴上的位置满足 由于Catmull-Rom样条曲线具有连续性,所以分段点划分到左段还是右段没有影响。
[0080] 将控制点的值 构成的M维列向量记为B,则B可以表示为式(3):
[0081]
[0082] 换而言之,B为Catmull-Rom样条曲线的控制矢量。
[0083] 对于Catmull-Rom样条的首段和尾段,由于没有前置控制点和后续控制点不能进行数据插值,为其虚置两个额外的控制点,如图5所示,虚置控制点满足式(4):
[0084]
[0085]
[0086] 若第j个传感器属于Catmull-Rom样条曲线的第kj段,可得kj满足式(5):
[0087]
[0088] 本实施例中,可以根据Catmull-Rom样条曲线的可变系数参数{bi}重构样条曲线。若传感器Sj属于样条曲线的第kj段,那么Catmull-Rom样条插值表达式的插值参数可以表示为式(6):
[0089]
[0090] 式(6)中,tj表示第j个传感器的插值参数,也表示xj在第kj段上的相对位置;xj表示第j个传感器的位置; 表示第kj个控制点在x轴上的位置, 表示第kj+1个控制点在x轴上的位置,第kj段的两端是控制点 和控制点
[0091] 本实施例中,所述Catmull-Rom样条曲线是一种C1连续的三次样条曲线,因此,Catmull-Rom样条插值公式可以表示为多项式p(t)=c0+c1+c2t2+c3t3,其中,c0、c1、c2、c3表示多项式的系数、t表示多项式的插值参数,将t归一化到0-1之间。
[0092] 如图4所示,多项式p(t)=c0+c1+c2t2+c3t3的约束条件为:
[0093] p(0)=pi
[0094] p(1)=pi+1
[0095]
[0096]
[0097] 根据多项式p(t)=c0+c1+c2t2+c3t3和多项式p(t)=c0+c1+c2t2+c3t3的约束条件,可得到Catmull-Rom样条插值公式:
[0098]
[0099] 式(7)中,pi-1,pi,pi+1和pi+2表示控制点。
[0100] 根据式(7),可得到在xj处的拟合值 为:
[0101]
[0102] 式(8)中,tj表示第j个传感器的插值参数,也表示xj在第kj段上的相对位置,如图4所示,每段需要四个控制点计算出来,每段需要4个控制参数, 表示第kj段对应的控制参数。
[0103] 根据式(8),若定义aj,i为
[0104]
[0105] 式(9)中,aj,i表示位于插值系数矩阵第j行第i列的值;式(9)用通式表示了Catmull-Rom样条曲线任意一段的插值系数。
[0106] 根据式(8)和式(9),可以得到
[0107]
[0108] 进一步,式(10)可以等价为:
[0109]
[0110] 式(11)中,B表示Catmull-Rom样条曲线的控制矢量,B中的元素是控制参数,即控制点的值,A表示Catmull-Rom样条曲线的插值系数矩阵, 表示原始传感器阵列数据的拟合值。
[0111] 式(11)还可以表示为:
[0112]
[0113] 式(11)中,A可以表示为:
[0114] A=[aj,i]N×M   (13)
[0115] 欲求表示Catmull-Rom样条曲线的最优控制矢量使得所述原始传感器阵列数据Y与拟合值 误差最小,即:
[0116]
[0117] 若矩阵A的广义逆矩阵为A+,那么最优控制矢量 即为:
[0118]
[0119] 由于矩阵A与矩阵Y相互独立,矩阵A+可以提前计算并存储,为后续计算赢得方便。
[0120] 本实施例中,对得到的所述最优控制矢量 进行量化,根据量化后的最优控制矢量重构样条曲线;根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值,其中,所述原始传感器阵列数据的拟合值为:
[0121]
[0122] 本实施例中,基于Catmull-Rom样条曲线的拟合值保留了原始传感器阵列数据的主要趋势,尤其是当控制点减少时,误差就更不能忽略了。于是还需要对误差进行编码,因此本实施例所述的无线传感器阵列数据压缩方法是一种混合的压缩算法。记所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差为:
[0123]
[0124] 对误差Δ进行量化,记为Δ'。使用Huffman编码对量化后的结果Δ'进行Huffman编码,记为E,将编码结果E和所述最优控制矢量构成数据包;将构成的数据包发送至接收端;其中,Huffman编码的码本可根据历史数据提前计算出来。
[0125] 本实施例中,通过本实施例所述的无线传感器阵列数据压缩方法压缩后的最终结果可以表示为:
[0126]
[0127] 如图6所示,本实施例中,基于CSA的无线传感器阵列数据的压缩方法,在发送端需要经过以下6个步骤:
[0128] Step1:利用Catmall-Rom样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与拟合值误差最小时的样条插值表达式的最优控制矢量
[0129] Step2:对得到的最优控制矢量 进行量化;
[0130] Step3:利用最优控制矢量 重构Catmall-Rom样条曲线,得到所述原始传感器阵列数据的拟合值
[0131] Step4:计算原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的的误差并量化;
[0132] Step5:对Step4的量化结果进行Huffman编码得到E,将 和E构成数据包;
[0133] Step6:发送由 和E构成的数据包至接收端。
[0134] 在前述无线传感器阵列数据压缩系统的具体实施方式中,进一步地,所述方法还包括:
[0135] 在接收端,接收由编码结果和所述最优控制矢量构成的数据包;
[0136] 根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0137] 对接收到的所述数据包中的编码结果进行哈夫曼解码;
[0138] 将所述原始传感器阵列数据的拟合值与解码结果相加,得到解压缩出的传感器阵列数据。
[0139] 如图6所示,本实施例中,基于CSA的无线传感器阵列数据的压缩方法,在接收端需要经过以下4个步骤:
[0140] Step1:接收由 和E构成的数据包;
[0141] Step2:根据接收到的数据包中的最优控制矢量 重构Catmall-Rom样条曲线,得到所述原始传感器阵列数据的拟合值
[0142] Step3:对接收到的数据包中的E进行Huffman解码;
[0143] Step4:将所述原始传感器阵列数据的拟合值 与Step4的Huffman解码结果相加,得到解压缩出的传感器阵列数据Y'。
[0144] 为了验证本实施例所述的基于CSA的无线传感器阵列数据的压缩方法的有效性,将本实施例所述的基于CSA的无线传感器阵列数据的压缩方法(简称CSA压缩算法)与直接量化、APCA两种有损压缩算法进行对比,三种算法对应的包结构如图7所示。
[0145] 三种压缩算法均以秦皇岛海港采集到的真实传感器阵列数据为压缩对象。给定一个具有15个传感器的传感器阵列,即N=15。传感器用以收集不同深度水的流速,其数据稀疏地分布在-4096至4096mm/s之间,即需要13bits才能表示。那么每个采样时刻一个传感器阵列产生的数据量为13×15=195bits。经过CSA压缩算法仿真还发现,误差范围在-600至600mm/s之间,其中有70%局限在-128至128mm/s之间,其分布如图8所示。根据误差的分布可知,CSA压缩算法中的Huffman编码将十分有效的,编码码本也很小。
[0146] 直接量化是一种基本的有损压缩方法。假设最大误差门限Emax=8,记为Q-8,即量化步长为16,那么表示一个传感器的数据需要9bits。因此一个采样时刻一个传感器阵列产生的数据量为9×15=135bits。同理,最大误差门限Emax=16,记为Q-16,数据量为120bits。
[0147] APCA算法一种误差有限的有损压缩算法。该算法中压缩后的数据可以用(x,y)这样成对出现的数组表示,即传感器的位置和传感器的值(传感器采集到的数据)。传感器的位置需要4bits来表示,传感器的值需要13bits来表示。数据对的个数K需要4bits。记APCA-8为APCA算法的最大误差门限取8,即Emax=8。同理可得,APCA-16为Emax=16。
[0148] CSA压缩算法压缩后的数据主要有两个部分,一部分为表示Catmull-Rom样条的定长参数,另一部分为表示误差的变长数据。设定控制点的个数为4,量化定长参数的步长为64,那么量化后定长参数部分的总数据量为28bits。CSA压缩算法的最大误差门限取决于表示误差的变长数据的量化步长,量化变长参数的步长为16,那么最大误差门限为Emax=8,记为CSA-8。同理可得,CSA-16为Emax=16。
[0149] 使用不同压缩算法对100个采样时刻采集的数据进行压缩,最大误差门限分别为8和32,结果如图9、图10所示。统计压缩率如下表所示。
[0150] 表1不同压缩算法的压缩率
[0151]压缩算法 数据大小(bit) 相对大小
原始数据 195 100
APCA-8 238.2 122.2
Q-8 135 69.2
CSA-8 114.4 58.7
APCA-32 192.6 98.8
Q-32 105 53.9
CSA-32 77.4 39.7
[0152] 实验结果可知,CSA压缩算法相对其他算法具有一定优势,在Emax=8时被压缩为原来的58.7%,在Emax=32时被压缩为原来的39.7%。CSA压缩算法的压缩效果比直接量化的方法好至少10%,比APCA压缩算法至少好60%。
[0153] 实施例二
[0154] 本发明还提供一种无线传感器阵列数据压缩系统的具体实施方式,由于本发明提供的无线传感器阵列数据压缩系统与前述无线传感器阵列数据压缩方法的具体实施方式相对应,该无线传感器阵列数据压缩系统可以通过执行上述方法具体实施方式中的流程步骤来实现本发明的目的,因此上述无线传感器阵列数据压缩方法具体实施方式中的解释说明,也适用于本发明提供的无线传感器阵列数据压缩系统的具体实施方式,在本发明以下的具体实施方式中将不再赘述。
[0155] 参看图11所示,本发明实施例还提供一种无线传感器阵列数据压缩系统,包括:
[0156] 第一确定模块11,用于在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;
[0157] 第二确定模块12,用于根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0158] 第三确定模块13,用于计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;
[0159] 编码发送模块14,用于对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。
[0160] 本发明实施例所述的无线传感器阵列数据压缩系统,在发送端,利用样条曲线拟合原始传感器阵列数据,得到使所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值误差最小时的样条插值表达式的最优控制矢量;根据得到的所述最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;计算所述原始传感器阵列数据与所述原始传感器阵列数据的拟合值之间的误差并量化;对量化后的误差进行哈夫曼编码,将编码结果和所述最优控制矢量发送至接收端。这样,通过采用具有高压缩率的样条曲线拟合原始传感器阵列数据和具有高编码精度的Huffman编码的混合压缩算法,能够在较高精度下有效减少发送的数据量,以降低传输成本,同时能够保证数据的可靠性。
[0161] 在前述无线传感器阵列数据压缩系统的具体实施方式中,进一步地,所述最优控制矢量表示为:
[0162] 其中,表示最优控制矢量,A+表示A的广义逆矩阵,A表示样条曲线的插值系数矩阵,Y表示所述原始传感器阵列数据。
[0163] 在前述无线传感器阵列数据压缩系统的具体实施方式中,进一步地,所述第二确定模块包括:
[0164] 量化单元,用于对得到的所述最优控制矢量进行量化;
[0165] 重构单元,用于根据量化后的最优控制矢量重构样条曲线;
[0166] 确定单元,用于根据重构的样条曲线,得到所述原始传感器阵列数据的拟合值;
[0167] 其中,所述原始传感器阵列数据的拟合值表示为: 表示原始传感器阵列数据的拟合值,A表示样条曲线的插值系数矩阵,表示最优控制矢量。
[0168] 在前述无线传感器阵列数据压缩系统的具体实施方式中,进一步地,所述编码发送模块包括:
[0169] 编码单元,用于对量化后的误差进行哈夫曼编码;
[0170] 构成单元,用于将编码结果和所述最优控制矢量构成数据包;
[0171] 发送单元,用于将构成的数据包发送至接收端。
[0172] 在前述无线传感器阵列数据压缩系统的具体实施方式中,进一步地,所述系统还包括:
[0173] 接收模块,用于在接收端,接收由编码结果和所述最优控制矢量构成的数据包;
[0174] 第四确定模块,用于根据接收到的所述数据包中的最优控制矢量重构样条曲线,得到所述原始传感器阵列数据的拟合值;
[0175] 解码模块,用于对接收到的所述数据包中的编码结果进行哈夫曼解码;
[0176] 第五确定模块,用于将所述原始传感器阵列数据的拟合值与解码结果相加,得到解压缩出的传感器阵列数据。
[0177] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。