基于线性拟合的WSN数据有损压缩算法的能效预测方法与流程

文档序号:12366019阅读:313来源:国知局
基于线性拟合的WSN数据有损压缩算法的能效预测方法与流程
本发明技术涉及一种数据压缩算法的能效在线预测方法,该方法适用于无线传感网中基于线性拟合的有损数据压缩算法,主要用于根据压缩精度要求对压缩算法进行在线选择,以更高效地节省电能。
背景技术
:随着片上系统(SoC)、微型电子机械系统(MEMS)、嵌入式系统低功耗技术和传感器技术等的快速发展,作为综合智能信息处理平台的无线传感网(WirelessSensorNetworks,WSN)受到广泛的关注,具有广阔的应用前景,是计算机信息领域研究中最为活跃的热点之一,也是改变未来生活的重大技术之一。WSN以传感节点作为基本单元,受使用成本的限制,这些节点体积小,其处理、存储和计算资源均有限,它们能够感知、测量和收集周围环境的相关信息,并根据本地指令进行处理,最后通过无线通信的方式发送给用户。由于节点体积非常小,节点的计算速度、存储空间和能量供给也非常有限,并且通常情况下采用电池供电,由于节点感知区域的特殊性和节点的数量大,更换电池难以做到或是不现实的。因此,如何最大化的利用节点有限的能量资源成为WSN研究的热点问题。传感节点的能量主要消耗在数据的感知、处理和传输上。其中,数据的无线传输环节所消耗的能量最多,因而节点的大部分能量被用在了数据的无线传输上。有研究表明:通过无线设备发送1bit数据所需的能量至少是一次加法指令执行过程所需能量的480倍。因此,通过采用适当的压缩算法,可以减少节点传输数据时所需的能量消耗,从而延长节点的寿命。传统的压缩算法仅以压缩率为目标,不需要考虑节能问题。有的压缩方法能实现的压缩率高,但其算法复杂度也高。由于算法的执行都要消耗能量且算法复杂度越高其耗能也越多,如果压缩算法自身运行所需消耗的能量大于通过压缩数据所节省的通信能量,那么使用数据压缩就达不到节能目的。因此,对WSN应用的压缩算法的要求不同于对传统应用算法的要求,节能效果或能量效率(简称能效)是评价数据压缩算法是否适用和优劣的主要因素,而且这种能效与传感节点的通信功率有关。对于WSN的数据压缩算法,要求其通过压缩数据所节省的能量必须大于实现压缩所消耗的能量,也即压缩算法必须具有正的能量效率或正能效。数据压缩方法分为无损压缩和有损压缩两类。无损压缩不会使被压缩的数据失真,也即经过无损压缩的数据可以完全恢复,但无损压缩算法的压缩率相对较低,只适用于那些要求压缩数据不失真的应用场合。有损数据压缩,顾名思义,在压缩数据时必然会使数据受损,使得由数据压缩后恢复出来的数据相对原始数据存在一定程度的误差,所重构出的数据有的只是原始数据的近似而非原始数据本身。但是,有损压缩算法的压缩率高。如果允许由压缩数据恢复得到的数据的误差越大,则可压缩掉的数据就越多,算法的压缩率就越高,算法的能效也就会相应提高。因此,基于有损数据压缩方法的节能效率还与允许有损压缩存在的误差大小有关,而无损压缩则不存在此问题。实现数据有损压缩的方法多种多样,其中基于时间序列线性拟合的压缩方法是一类常见的简单而适用于WSN的有损压缩算法,国内外对此有许多研究并获得了相应成果。在这类基于时间序列线性拟合的压缩算法中,典型算法有:基于一元线性回归模型的空时数据压缩算法、基于回归的分段线性拟合算法和基于置信间隔的回归模型调整算法组合算法、在DP算法上改进了压缩精度和算法复杂度的最优曲线数据压缩算法、利用分段常数逼近采样数据进行线性拟合的PMC-MR算法和PMC-MEAN、自顶向下分段线性逼近算法,等等。这些基本思路相同或相似的压缩算法,在具体实现方式上不尽相同,其性能也有差异、各有侧重。但是,这类压缩算法具有这样的共同特征,即:当对应一个原始数据的线性拟合表达式计算值与该原始数据的差值不超过允许误差时,该原始数据可以被线性拟合计算值替代,也即这个数据可以被压缩掉。因此,采用这类有损压缩算法,部分原始数据被压缩,部分原始数据被保留。保留的数据越少,则压缩率越高。显然,压缩算法的误差或精度和压缩率都与具体算法的压缩机制有关,而压缩率还与容许的压缩误差有关。一般,压缩率相对高的算法,其复杂度也相对高,但高压缩率并不代表高能效。在WSN中,压缩一比特数据所节能的能量与节点的硬件工作参数相关。如果用于无线通信的功率相对大,则压缩一比特数据所节省的能量也就相对大,在其他条件相同的情况下,算法的能效就会高;反之,若无线通信的功率小,在其他条件相同的情况下,压缩算法的能效就会低。另一方面,WSN节点的无线通信功率是由通信距离、环境条件以及通信质量要求决定的。所以,面向WSN的压缩算法的能效并不是由压缩率单一决定的,还涉及算法的复杂度和应用压缩算法的节点具体工作状态下的实际硬件参数。对于有损压缩算法,则影响算法能效的因素还包括实际应用所允许的压缩误差的大小。对于WSN而言,正是由于上述多方面的原因或因素,使得如何从多种适用的压缩算法中恰当选择一种既能满足当前对数据压缩误差的限定要求,又能起到最佳节能效果的有损压缩算法是非常值得研究的,并具有实用价值。目前判定某个数据压缩算法是否具有正能效的方法是在节点上执行该算法并测试其各部分的能耗,然后再根据能耗值判定。这种方法既费时又费力,不宜推广。鉴于基于时间序列线性拟合的这类数据有损压缩算法具有适用于WSN的特点,因此,研究一种能够预测WSN中有损压缩算法能效的方法,并根据该预测结果合理选用这些算法,对提高WSN节点的能量节省有着十分重要的意义。技术实现要素:本发明所解决的技术问题是,针对现有技术的不足,提供一种基于线性拟合的WSN数据有损压缩算法的能效预测方法,可以在线并准确判断出所使用的压缩算法是否具有正能效或者在线选择更高能效的压缩算法,从而使得节点能节省更多的能量。本发明的技术方案为:一种基于线性拟合的WSN数据有损压缩算法的能效预测方法,包含以下步骤:步骤1:选定传感节点和基于线性拟合的无线传感网数据有损压缩算法;步骤2:根据传感节点的实际硬件参数,按公式(1)计算其硬件系数k;k=URFIRFUmcuImcu×fmcuRbaud---(1)]]>其中,Umcu和Imcu分别为传感节点的MCU的工作电压和活动模式下的平均电流,URF和IRF分别为传感节点的无线通信模块的工作电压和活动模式下的平均电流,fmcu为MCU的工作频率,Rbaud为无线通信的波特率;步骤3:根据归一化的传感器样本数据,对误差容限ε与压缩率RC的关系进行多项式拟合,拟合多项式如公式(2)所示;计算拟合多项式中的系数α1,α2,…,αn,得到RC的预测表达式;RC=RC0+α1ε+α2ε2+α3ε3+…+αnεn(2)其中,n为拟合多项式的阶次,RC0为误差容限为零(即无压缩误差)时的压缩率;步骤4:根据当前给定或输入的(根据实际应用的精度要求确定)数据有损压缩的误差容限(即允许误差)ε,按拟合多项式计算压缩率RC的预测值;步骤5:按公式(3)计算所选压缩算法的软件系数s;s=aRC+b(3)其中,系数a和b满足公式(4):a=1m(Ncycle3-Ncycle4),b=1m(Ncycle2+Ncycle4)---(4)]]>式中,Ncycle2为对每个数据都需执行的算法步骤进行单位数据压缩所需的时钟周期数,Ncycle3是只有对被压缩掉的数据才执行的算法步骤进行单位数据压缩所需的时钟周期数,Ncycle4是只有对不被压缩掉而保留下来的数据才执行的算法步骤进行单位数据压缩所需的时钟周期数;m表示由数据类型决定的每个数据需要占用存储器的比特位数;步骤6:将上述步骤中计算出的传感节点的硬件系数k、压缩率RC的预测值和所选压缩算法的软件系数s,带入算法的能效计算公式(5),得到算法的能效预测值ηE:ηE=(RC-sk)×100%---(5)]]>即ηE=-b/k+(1-a/k)(RC0+α1ε+α2ε2+…+αnεn)(6)所述步骤3包括以下步骤:1)根据经验确定拟合多项式的阶次n的初值,n为正整数;2)设定拟合多项式如以下公式所示:RC=RC0+α1ε+α2ε2+α3ε3+…+αnεn;3)根据n和输入的或给定的误差容限的最大值εmax,按公式ε1=εmax/n确定作为自变量的误差容限即横坐标的缩尺ε1;4)根据公式εi=iε1确定误差容限的等分点εi(i=1,2…,n);对同分布特征、归一化的传感器样本数据,按对应等分点的误差容限(允许误差)值分别进行压缩,得到等分点εi(i=1,2…,n)对应的压缩率RCi(i=1,2…,n)的实际值和误差容限为零时的压缩率RC0的实际值;5)根据等分点及其对应的压缩率的实际值(ε1,RC1)、(ε2,RC2),…,(εn,RCn),采用规范化多项式拟合计算公式(7)计算规范化多项式的系数b1,b2,…,bn;b1b2...bn=12...1222...2n............nn2...nn-1RC1-RC0RC2-RC0...RCn-RC0---(7)]]>6)根据公式(7)得到的系数b1,b2,…,bn,按关系式计算出拟合多项式的系数α1,α2,…,αn;7)根据拟合多项式RC=RC0+α1ε+α2ε2+α3ε3+…+αnεn,计算等分点εi(i=1,2…,n)对应的压缩率RCi(i=1,2…,n)的预测值;8)由压缩率RCi(i=1,2…,n)的预测值和实际值,计算平均拟合误差;若平均拟合误差超过输入的或给定的误差容限,n加1,返回第2)步;直到平均拟合误差小于或等于输入的或给定的误差容限,结束拟合计算;将最新得到的阶次n和系数α1,α2,…,αn作为拟合多项式的阶次和系数,得到RC的预测表达式。所述步骤1)中,若是对误差容限ε与压缩率RC的关系进行整段拟合,则n的初值取4;若是对误差容限ε与压缩率RC的关系分两段进行拟合,则n的初值取2。所述步骤8)中,平均拟合误差计算步骤为:对于任一RCi(i=1,2…,n),计算其相对误差;相对误差等于RCi的预测值与实际值之差的绝对值除以该实际值;计算所有RCi(i=1,2…,n)的平均拟合误差;平均拟合误差等于所有RCi(i=1,2…,n)的相对误差的算术平均值。所述基于线性拟合的WSN数据有损压缩算法的能效预测方法,还包括以下对压缩率RC的预测表达式进行在线校正的步骤:ⅰ)观测所选算法在实际给定的或输入的误差容限下,进行传感数据压缩得到的压缩率的实际值;ⅱ)根据步骤8)得到的RC的预测表达式,计算得到实际给定或输入的误差容限下,压缩率的预测值;ⅲ)根据压缩率的实际值和预测值,计算压缩率预测值的相对误差;ⅳ)若该相对误差小于或等于设定阈值,则RC的预测表达式保持不变;否则,将该传感节点最近一次的传感数据、实际给定或输入的误差容限以及相应的压缩率的实际值作为样本数据,并对其中的传感数据先做归一化处理,然后重新对误差容限ε与压缩率RC的关系进行多项式拟合,更新RC的预测表达式;所述设定阈值小于给定或输入的误差容限;ⅴ)转入步骤4。所述步骤ⅳ)中所述设定阈值取给定或输入的误差容限的90%~95%。所述步骤4中,根据压缩算法程序代码,借助IAR仿真开发系统平台,进行以下计算:1)计算对每个数据都需要执行的算法步骤进行单位数据压缩所需的时钟周期数Ncycle2;2)计算只有对被压缩掉的数据才执行的算法步骤进行单位数据压缩所需的时钟周期数Ncycle3;3)计算只有对被保留下来的数据才需要执行的算法步骤进行单位数据压缩所需的时钟周期数Ncycle4;4)按公式(4)计算系数a和b的值,然后再按公式(3)计算得到软件系数s。本发明的技术构思为:针对具体的传感节点和适用于WSN数据压缩的基于线性拟合的有损数据压缩算法,根据算法能效的计算公式(5)所含的三个参量以及其中算法的软件系数s和压缩率Rc两者之间的关系,用显式表达式分别表示出具体压缩算法的s与Rc的关系和Rc与数据压缩误差ε的变化关系,再将这些表达式带入公式(5)中得到具体压缩算法能效ηE与变量ε的关系表达式,从而根据压缩误差的允许值和硬件参数实现对算法能效的在线预测,基于Rc的预测方法还可根据算法对传感数据的实际压缩率与压缩率预测值的相对误差情况,对压缩率预测式进行在线修正。选定传感器节点和基于线性拟合的WSN数据有损压缩算法根据应用场合的需要确定传感器节点的硬件参数:MCU的工作频率、电压、电流和无线通信设备的工作电压、电流和波特率。选择几种具体的基于线性拟合的WSN数据有损压缩算法。根据节点的硬件参数,按硬件系数k的计算公式(1)计算k值硬件系数,顾名思义是只与硬件有关的系数,与压缩算法以及压缩对象无关。由公式(1)可以看出,硬件系数涉及两个平台:MCU和无线通信平台。算法程序由MCU执行,不一样的MCU往往有不一样的功率消耗,不一样的MCU体系架构和指令集也会使得相同算法执行时的实际功耗也不一样,进而影响压缩算法运行的能耗。由于不同射频芯片的发射功率及相应的接收灵敏度等性能不同,实际中数据传输的波特率设置可能不同,节点间通信距离以及现场环境不同或变化,这些都使得传输单位数据所对应的功耗水平不同或者需要调整改变,因而无线通信环境作为一个方面的因素对节能效率也有着间接影响。通过硬件平台的数据手册便可获取MCU和无线通信设备的工作电压Umcu和URF,以及其活动模式的平均电流Imcu和IRF,MCU工作频率fmcu,还有无线通信波特率Rbaud。根据公式(1)便可计算出k值。根据RC的预测方法,计算RC预测表达式(2)中的系数α1,α2,…,αn;压缩率RC主要与压缩对象和算法所设定的误差容限ε有关,且经研究发现对于服从同一分布规律的压缩对象,RC与ε之间呈现出相似的非线性关系。对于这种非线性关系可以采用多项式拟合的方法通过曲线拟合确定,从而获得RC的预测表达式,在计算多项式系数时,选用规范化多项式拟合计算方法。由于该方法简单,易于编程实现并且便于在资源有限的传感器节点上进行拟合系数的在线计算,便于根据选定算法的实际压缩率在超设定阈值的情况下,对RC的预测表达式做在线修正。根据软件系数s的预测方法,根据公式(4)计算s预测表达式(3)中的系数a和b软件系数s的计算公式如式(7)。s=NcycleNuncmp×m---(8)]]>其中Ncycle和Nuncmp分别为算法程序运行所需时钟周期数和原始数据量,m代表原始数据类型所占的比特位数。压缩的原始数据量一定时,只要计算出Ncycle便可得到s的值。针对基于线性拟合的有损数据压缩算法,该类算法的结构流程如图1所示。根据图2所示流程图和前述这类算法的共同特征分析可知,可以将整个算法的执行过程分成如下四个部分,即:执行一次的部分、每次都要执行的部分、只有对被压缩掉的数据才会执行的部分、只对被保留的数据才会执行的部分。图1中的过程①②⑦⑧只执行了一次,过程①②⑦⑧所需要时钟周期数定义为Ncycle1;过程③被每个数据都执行一次,执行的次数则为时间序列数据的长度Nuncmp,过程③每次执行所需要的时钟周期数定义为Ncycle2,总的时钟周期数为Ncycle2×Nuncmp;过程④⑥只有在设定的误差容限内的数据才被执行,即只有存在可压缩掉的数据才会执行这两个过程,执行的次数为被压缩掉的数据的个数Ncmped,过程④⑥每次执行所需的时钟周期数定义为Ncycle3,那么总共所需的时钟周期数为Ncycle3×Ncmped;过程④⑤⑥只有不在误差容限内的数据才被执行,即只有存在需要保留下来的数据才会执行这三个过程,执行的次数为保留下来的数据的个数Nsaved,这三个过程每次执行所需的时钟周期数定义为Ncycle4,那么总共所需的时钟周期数为Ncycle4×Nsaved。通过上述分析可得,算法执行所需的时钟周期数Ncycle如式(9):Ncycle=Ncycle1+Ncycle2×Nuncmp+Ncycle3×Ncmped+Ncycle4×Nsaved(9)将公式(9)带入公式(8)整理可得公式(10)。s=1m(Ncycle1Nuncmp+Ncycle2+Ncycle4+(Ncycle3-Ncycle4)×NcmpedNuncmp)---(10)]]>当m×Nuncmp>>Ncycle1时,式(10)变为式(11)。s=1m(Ncycle3-Ncycle4)×RC+1m(Ncycle2+Ncycle4)---(11)]]>令则s=aRC+b(12)对于确定的压缩算法,a,b均为常数,使得软件系数s只与压缩率RC有关,且为RC的一次函数。由于Ncycle2、Ncycle3和Ncycle4表示算法各部分指令执行所需的时钟周期数,且当硬件平台和压缩对象选定后其值固定不变,只要求得Ncycle2、Ncycle3和Ncycle4并计算出a,b的值,便可根据压缩率RC的值计算软件系数s。将s、RC和k分别带入能效计算公式(5)即得算法能效ηE的预测表达式(6)。将上述求出的k值、RC预测表达式和s的预测表达式分别代入能效计算公式(5)即可得算法能效的预测表达式(6)。根据当前给定或输入的有损数据压缩误差容限值ε、节点的硬件系数k值,按公式(6)计算所选压缩算法的能效预测值。将按实际应用压缩算法的精度或允许误差要求所确定的误差容限值ε、以及根据节点当前工作模式计算得到的硬件系数k代入公式(6),计算可得采用该压缩算法进行数据压缩的能效预测值。有益效果:根据本发明的算法能效的在线预测方法可对基于线性拟合的WSN数据有损压缩算法的能效进行了在线预测,该方法计算简单、耗能低,且预测表达式系数可以实现在线计算,预测结果较为准确,能够作为在压缩数据之前进行在线选择高能效压缩算法的依据,从而最大限度的节省节点的能量,延长网络的寿命。附图说明图1为本发明流程图图2基于线性拟合的WSN有损压缩算法流程图图3PMC-MR算法压缩服从高斯分布数据的压缩率预测图图4PMC-MR算法的软件系数预测图图5PMC-MR算法能效的预测图具体实施方式以下结合附图和具体实施方式对本发明进行进一步具体说明。本发明公开了一种基于线性拟合的WSN数据有损压缩算法的能效预测方法,包括以下步骤:步骤1)选定传感节点和基于线性拟合的WSN数据有损压缩算法压缩算法选用基于线性拟合的无线传感网数据有损压缩算法中的PMC-MR算法,压缩对象选取服从高斯分布的样本数据,传感器节点的微控制器MCU为MSP430F2611,运行在3.0V、512μA、1MHz下;无线传输模块采用CC2420,运行在3.0V、17.4mA下,以150kpbs的波特率进行数据传输,以上述对象和工作参数为例,对本发明的实施应用做进一步详细说明。PMC-MR是一种典型的基于线性拟合的WSN有损数据压缩算法,其原理为:通过监测输入数据的输入范围,当数据的输入范围超出预定的阈值时,则将该数据的前一个位置和中列数(最大值和最小值的算术平均数)输出,从而达到压缩目的。PMC-MR算法伪代码如下。步骤2)根据节点的硬件参数,按硬件系数k的计算公式(1)计算k值由于该例节点MCU采用MSP430F2611,运行在工作电压3.0V、电流512μA和频率1MHz条件下;无线传输设备采用CC2420,运行在工作电压3.0V,电流17.4mA条件下,以150kpbs的波特率进行数据传输,根据公式(1)计算k值。k=URFIRFUmcuImcu×fmcuRbaud=3×17.4×10-33×512×10-6×106150≈227]]>步骤3)根据RC的预测方法,计算RC预测表达式(2)中的系数α1,α2,L,αn;1)针对整段数据拟合,取n=4,即一般情况下采用4阶多项式拟合,可满足平均相对误差不超过2%的要求;2)由n=4和εmax=4(为便于计算,此数据可放大或缩小),利用公式ε1=εmax/n确定横坐标的缩尺ε1=1;3)根据公式εi=iε1确定误差容限的等分点ε1=1,ε2=2,ε3=3,ε4=4;4)根据对应等分点的样本数据压缩测量结果(εi,Rci):(0,0.0137),(1,0.7246),(2,0.9590),(3,0.9980),(4,0.9980),采用规范化多项式拟合计算公式(7)计算出规范化多项式的系数b1,b2,b3,b4,即b1b2b3b4=1111222232433233344424344-10.71090.94530.98430.9843=1.0740-0.43600.0780-0.0052]]>5)根据预测表达式系数计算公式计算出系数α1=1.0740,α2=-0.4360,α3=0.0780,α4=-0.0052。拟合结果如图3所示,拟合的最大相对误差为5.7%,平均相对误差为1.32%。步骤4)根据软件系数s的预测计算方法,根据公式(4)计算表达式(3)中的系数a和b1)根据PMC-MR伪代码,算法步骤(5)和第二个(11)在算法的执行过程中,时间序列中的每个数据都需要执行一次,它们所需要的时钟周期数Ncycle2=6;2)算法步骤(6)、(11)和(12)只有存在可压缩掉的数据才会执行这三个步骤,这些步骤执行所需的时钟周期数定Ncycle3=634;3)算法步骤(6)、(7)、(8)和(9)只有存在需要保留下来的数据才会执行这四个步骤,这四个步骤执行所需的时钟周期数Ncycle4=1045。4)根据公式(4),先计算预测公式中的系数a和b,然后得到软件系数s的预测公式。a=132(634-1045)=-12.84,b=132(6+1046)=32.84]]>s=-12.84×RC+32.84如图4所示,从图中能够清晰的发现s的预测值与实测值十分相近,最大相对误差为0.7%,预测结果较为理想。步骤5)将s、RC和k分别带入能效计算公式(5)即得算法能效ηE的预测表达式(6)。在获得k值、RC表达式和s预测表达式后分别将其带入公式(5)得ηE的预测表达式为:ηE=(RC-sk)×100%=(RC-112.84×RC+32.84227)×100%=(1.0566RC-0.1447)×100%]]>整理得:ηE=(-0.1302+1.1348ε-0.4607ε2+0.0824ε3-0.0055ε4)×100%步骤6)按上一步所得能效ηE的具体预测表达式,将压缩算法的具体允许误差值代入计算,得出能效ηE预测值。对应压缩算法允许误差范围为0~4的PMC-MR算法的能效预测曲线如图5所示,所有预测值与实测值都十分相近,最大相对误差为5.18%,平均相对误差为0.49%,预测结果较为理想。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1