基于OMNeT++的无线传感器网络数据压缩仿真设计
2014-07-10叶大伟
叶大伟,沈 重
(海南大学 信息科学技术学院,海南 海口570228)
无线传感器网络(Wireless Sensor Networks,WSNs)能够实时的检测、感知、采集网络分布区域内的各种环境检测对象,并对这些数据进行处理,获得详细准确的信息,传送给需要这些信息的用户[1]. WSNs 具有能量有限、带宽有限、计算存储能力有限、传感器节点数量多且分布广、网络拓扑动态性强、感知数据流大等特点[2].
数量众多的传感器节点采集数据后,直接将原始数据传输到Sink 节点是不可行的. 文献[3]表明,在WSNs 中距离100 m 的节点传输1 bit 信息所消耗的能量约等于处理3 000 条指令所消耗的能量. 因此在传输数据之前对数据进行压缩是一种有效的减少传输能耗的方式. 利用小波变换对数据流具有良好的压缩性能[4],笔者通过采用Haar 小波数据压缩算法,基于OMNeT++设计出WSNs 系统的整体架构、网络协议,对采用的算法进行仿真实现,最后根据WSNs 的网络特点,对实验仿真过程中出现的因报文生成和传输问题进行分析解决,提出了簇头报文判别机制和改善的Sink 节点报文有限等待机制. 实验结果表明,OMNeT++能够有效的仿真出WSNs 的数据压缩特性,证明了该平台在WSNs 仿真中系统的可靠性和结果的有效性,并给出了基于OMNeT++进行性能参数仿真的思路和方法,为WSNs 的数据压缩研究及其分析提供了参考.
1 小波数据压缩
在无线传感器网络中,单个传感器节点收集到的数据在时间上可能是相关的,地理位置相邻的传感器节点采集的数据存在空间相关性. 利用小波变换具有多分辨分析的特性[5],去除数据中的冗余信息,达到数据压缩的目的. 无线传感器网络的部署在空间上是不规则的,因而不能直接应用传统的小波变换,通过Haar 小波的分解与重构,减少数据流中存在的时-空相关性来减少冗余数据[5-6].
本文利用Haar 小波结构简单和变换复杂度低的优点,进行无线传感器数据压缩算法的OMNeT++仿真,给出了具体的压缩实现过程.
1.1 Haar 小波变换 Haar 小波的本质是对相邻的数据求均值和差值,或者说分解为低频数据和高频数据. 设数据向量s,逐个计算相邻数据的均值,得到数据个数为原向量一半的低分辨率新向量,称为近似分量. 对于长度为2n的信号sk={sk,l≤l <2n}(k 表示变换级数,k =0 表示原始信号). Haar 小波分解公式如下
则多级Haar 小波变换的分解过程和重构过程如图1 所示.
图1 Haar 小波变换的分解过程和重构过程图
1.2 Haar 小波的数据压缩实现 仿真系统中在簇头节点进行小波变换,从而实现对大量数据的压缩处理. 簇头接收簇内节点的数据报文后放入缓存. 数据经过小波变换后生成的小波系数的数据总量与原信号的数据相等,即小波变换的本身并不具有压缩功能. 数据在经过小波变换后将被划分为2 个部分,一个是低频系数称为的近似分量,另一个是高频系数又称为细节分量,其中低频系数汇聚了原始数据的绝大部分能量. 根据小波变换的性质,将变换后的小波系数进行取阈值、量化和编码,即可达到压缩数据的目的. 一般而言,小波数据压缩步骤如下
步骤1 传感器节点采集数据sk;
步骤2 将数据发送给簇头节点;
步骤3 在簇头节点对原始采集数据进行Haar 小波分解,得到小波分解系数{ωi};
步骤4 根据采用硬阈值法,大于或等于该阈值λ 的小波系数则被保留,小于该阈值的小波系数则设置为得到小波估计系数
步骤6 设M=2n,则ω 的量化步长
步骤8 利用游程编码方法对量化值进行编码.
2 OMNeT++数据压缩仿真设计
基于WSNs 自身的特点,高效准确的仿真工具对推动WSNs 节能发展作用很大[7-8]. 尽管目前在各种成熟的网络仿真平台,如NS2,OPNET,GloMoSim 和QualNet,但WSNs 的特性使得这些仿真平台具有某些使用的局限性[9-10].
OMNeT++(Objective Modular Network TestBed in C++)是一款面向对象的离散时间网络模拟器,采用面向组件的设计模式,避免调用不必要的模块,降低系统的内存占用率[11]. OMNeT ++支持脚本配置,在不必修改源代码和不重新编译的情况下,通过参数设置对不同的环境的网络模型进行仿真[12]. 为了进一步提高仿真性能,本系统使用一个在OMNeT ++ 平台基础上开发的无线及移动框架组件(Mobility Framework,MF),并使用Cmd-env 提供的时间记录器对仿真过程中的时间进行跟踪记录.
无线传感器网络模拟系统(虚拟传感器网络,VWSN)的整体设计框架,主要包含协调模块、算法管理模块、部署模块、节点构造器和基础类库5 个基础模块.
2.1 基于数据压缩的VWSN 网络协议设计 无线及移动框架组件下无线传感器网络协议主要包括数据报文格式、报文生成和传输方法. 协议栈由上至下可以分为APP,NET 和NIC 层,其中NIC 层包括MAC层和PHY 层,总体架构如图2 所示.
图2 网络协议整体架构图
整体基于VWSN 数据压缩算法的网络协议实现介绍如下:Initialize()(初始化),handleLowerMsg()(处理下层信息),handleUpperMsg()(处理上层消息),sendDown()(向下发送),sendUp()(向上发送)函数由OMNeT++封装提供,为各层所共享. 其中APP 层包含上层小波压缩算法模块,压缩算法包括数据源模块、数据汇聚模块、小波变换和游程编码模块. generatePacket()用于产生、抽取样本数据. 在NET 中构建成簇网络拓扑结构. 路由表模块则采用基于Dijkstra 算法的跳数最小权重路由算法,主要包括router()和findNextHop()2 种方法,其中router 处理数据报文否需要转发,findNextHop()则负责为数据报文选择下一跳路由. MAC 层采用异步通信协议[13],包括时钟调度的handleSelfMsg()和Pop()(缓存数据发送)、sleep()(转为睡眠状态)、Queue()(数据存储)和bkQueue()(备份数据报文缓存)、ACK()(ACK 信息处理)等. 底层数据收发信息及数据校验功能,主要由Send()(数据发送)和Receive()(数据接收)模块实现.
2.1.1 网络协议中报文生成与传输 在VWSN 系统中,节点时钟调度不定期生成数据报文. 数据报文分为数据域和报头,其中报头包括数据报文的源地址、目的地址、包序列号和时间戳等相关信息. 由于数据报文传输由网络层负责,采用在文献[14]中的网络成簇协议. 对于成簇算法,簇内节点依据最小权重路由算法中转至簇头节点,簇头处理数据后再将数据报文采用相同的路由算法发往Sink 节点. 此时,为了防止簇头对数据报文进行二次压缩处理,在数据报文路由中添加判定.
数据报文经过节点单跳到簇头后,簇头根据数据报文源地址信息判断该包是否为簇内节点产生:
a)是,发送APP 层进行数据压缩.
b)否,该包是一个需多跳至Sink 点的中转路由包.
本文算法中节点至簇头采用平面路由协议,即系统初始化时为每一个节点确定一条静态路由至Sink节点. 虽然静态路由不能较好地适应网络,但可以从一定程度上降低网络非数据通信能耗. 数据报文生成如图3 所示.
图3 数据报文生成示意图
2.1.2 网络协议中Sink 节点报文等待机制 在设计WSNs 仿真时,无线传感器网络存在一定的报文丢失概率,Sink 节点不知道何时能接收到期待的数据报文,因此在具体实现仿真架构的模型时,笔者提出了一种等待机制. Sink 节点接收到数据报文后,根据数据报文的地址分类放入相应的缓存中,并将该数据报文的时间戳设定为当前的系统时间,同时Sink 节点维护一个周期性检测信号,如果满足以下条件,则立即调用解码函数
1)Sink 节点接收全一个系列报文;
2)来自一个系列报文的数据量超过该报文总数的一半.
通过采用等待机制,可以有效地避免因丢包引起的Sink 节点无限等待解码,提高了系统的稳定性和数据解码的准确性.
2.4 性能统计 模拟系统在执行任务过程中通过后台数据库对模拟结果进行记录,并依据该记录对小波压缩算法的性能进行评估. 本文将从能耗、压缩比和均方差3 个性能指标来叙述系统的性能统计与结果分析.
1)能耗 将节点发送数据报文、接收报文、数据处理看做一个个事件,并为每一个事件设置相应的能量损耗. 每一个节点初始化设置一个能量值,采用一阶无线模型[15]进行网络性能分析,此模型中传送距离D 的k 比特数据能耗方程表示如下.
传输能耗ETx可以表示为
接收能耗ERx可以表示为
数据处理能耗Ep可以表示成
其中,N 是完成计算花费的时钟周期的数目,Vdd是CPU 的工作电压,C 每个时钟周期所转换的数据量,C的大小与CPU 有关,本文采用StrongARM SA-1100 芯片,取C=0.67 nF.
2)压缩比 设簇头缓存内参与小波变换的数据报文总数是Stotal,编码后重新封装的序列数据报文数量为SC,则压缩比可以由以下公式得到
压缩比越高,网络内数据冗余度就越低,参与网络通信的数量就越少.
3)均方差 由于仿真系统直接涉及的传感器数据报文在传输过程中存在丢包因素,因此数据还原存在误差,即为均方差(Mean Square Error,MSE).
MSE 代表着数据还原的平均精度,可以表示为
其中,n 为数据总量,si为第i 个原始数据,sri 为相应的接收数据.
3 结果分析
首先导入Berkele-Intel 联合研究实验室采集的真实温度数据,基于OMNeT ++平台对WSNs 数据压缩算法进行实验仿真. 在实验中,无线传感器仿真网络参数设置如表1 所示. 此外为了更好的分析Haar小波算法在WSNs 中数据压缩的有效性,还增加了Huffman 编码来对比压缩中的参数性能.
随着采集数据的上升,处理和传输的数据报文会增加,同时节点平均能耗会相应增加,从图4 中可以得出,对比于未采用数据压缩方式,Huffman 算法对数据进行了压缩,能耗会较为减少. 而采用Haar 小波变换压缩数据后,节点平均能耗较Huffman 算法有更明显下降,平均下降了0.23 J 的能量值. 同时压缩比对比如图5 所示,Haar 小波变换比Huffman 算法平均高出10 个百分点,较好的降低了数据冗余度,更为有效的压缩数据.
在传输实验数据过程中,数据报文的丢失则可造成Sink 节点因为无法接受全部数据报文而陷入无限等待状态,以致解码函数调用停顿,额外增加MSE 的值,同时会影响获取数据的准确性,进而影响传感器网络的有效性. 采用了改进的有限等待机制,降低了数据报文的丢包率(如图6 所示),在有限的等待机制下,MSE 保持较低的值,平均降低了3.75 个百分点.
图4 Haar 小波变换与Huffman 能耗对比图
图5 Haar 小波变换与Huffman 压缩比图
图6 MSE 效果对比图
4 结束语
本文将Haar 小波变换的数据压缩算法应用于无线传感器网络,并设计出基于OMNeT++仿真软件的整体网络架构. 对于仿真设计中的一些存在的问题(如整个网络各层协议的设计、报文生成与传输方式、Sink 节点接收数据包等待机制等)提出了详细的解决方案及框架图. 通过仿真结果分析,Haar 小波变化的数据压缩算法能较好的减少系统能耗,且提出的Sink 节点报文等待机制,能更好的较低网络丢包率和均方差,延长网络整体的生存周期.
[1]李建中,高宏.无线传感器网络的研究进展[J].计算机研究与发展,2008,45(1):1 -15.
[2]范祥辉,李士宁,杜鹏雷,等. WSN 中一种自适应无损数据压缩机制[J].计算机测量与控制,2010,18(2):463 -465.
[3]POTTIE J,KAISER W J. Wireless integrated network sensors[J]. Communications of the ACM,2000,43(5):51 -58.
[4]周四望,林亚平,叶松涛. 传感器网络中一种存储有效的小波渐进数据压缩算法[J]. 计算机研究与发展2009,46(12):2055 -2092.
[5]WAGNER R,HYEOKHO C,BARANIUK R,et al Distributed wavelet transform for irregular sensor network girds:proceedings of the 13th Workshop on Statistical Signal Processing(SSP),Bordeaux,July 17 -20,2005[C].[S.l.]:IEEE,2005.
[6]张建明,林亚平,周四望,等. 传感器网络中误差有界的小波数据压缩算法[J].软件学报,2010,21(6):1364 -1377.
[7]SHEN Chong ,HARTE S,POPOVICI E,et al.Automated protocol selection for energy efficient WSN applications[J].IET Electronics Letters,2009,45(21):1098 -1099.
[8]SHEN Chong,HARTE S,O’FLYNN B,et al.Energy-aware dynamic route management for THAWS[J]. Springer Lecture Notes on ICST,2010,24:174 -188.
[9]王杉,魏急波,庄钊文. 基于GloMoSim 的移动自组网路由仿真[J].电讯技术,2006(5):105 -108.
[10]金伟,刘方爱,王晓洁. 基于NS 的AdHoc 网络路由协议仿真研究[J].计算机技术与发展,2010,20(1):63 -66.
[11]石为人,黄河,鲜晓东,等. OMNeT++与NS2 在无线传感器网络仿真中的比较研究[J].计算机科学,2008,35(10):53 -57.
[12]CHAMBERLAIN T.Learning OMNeT++ [EB/OL]. [2014 -01 -10].http:∥omnetpp.org.
[13]马涛,单洪,陈娟.异构无线传感器网络的基础层MAC 协议设计[J].计算机工程,2013,39(7):137 -141.
[14]高腾.能量高效的无线传感器网络分簇路由协议研究[D].大连:大连理工大学,2011.
[15]WANG A,CHANDRAKSAN A. Energy-efficient dsps forwireless sensor networks [J]. IEEE Signal Processing Magazine,2002,19(4):68 -78.