基于卡尔曼滤波的无线传感网时空数据融合算法

2022-06-16 14:29包晓安胡逸飞陈迪荣
电子科技 2022年6期
关键词:卡尔曼滤波传感噪声

杜 鹏,包晓安,胡逸飞,陈迪荣

(浙江理工大学 信息学院,浙江 杭州 310018)

随着物联网技术研究的不断深入,信息的获取愈发便捷,数据传输量也不断增加。但现阶段通过无线传感网络获取到的原始信息因为信息形式和内容不统一、信息时空关系不一致、信息精度差异、网络传输不稳定等原因而具有显著的不确定性[1]。此外,由于无线传感网络节点布置相对密集,数据采集频率相对频繁,采集到的数据在时间上与空间上具有相似性,也会造成大量数据冗余[2],而将相似和异常数据进行剔除并进行融合处理可提高数据的精确度和稳定性,降低数据传输频率和数量。

目前已有一系列针对无线传感网络数据融合相关问题的研究。文献[3]利用归一化方法进行预处理,分析建模后通过最近邻点拓扑目标,选择最佳数据进行初始化,根据其它数据记录实现数据融合。该方法效果较好,但建模期间需要不断以大量数据进行调整,无法直接使用。文献[4]通过贝叶斯算法实现测量数据的数据融合,结合卡尔曼滤波器的贝叶斯融合算法有效解决了数据不确定性和不一致性的问题。文献[5]提出一种具有预处理的改进型分批估计自适应加权数据融合算法,根据格罗贝斯准则对单个传感器测量数据序列进行一致性检验,随后使用改进的分批估计算法对单个传感器计算最优监测值,最后使用自适应加权进行数据融合。该方法使用格罗贝斯准则进行判断虽然可以较好地实现异常数据剔除,但格罗贝斯准则判据是一个递归算法,每次只能剔除一个可疑值,效率不高。文献[6]提出采用自适应加权平均法及BP神经网络结合的技术实现环境监测数据融合。该方法使用BP神经网络,较好地提高了数据准确度,但是会造成网络内信息冗余,增加传输压力。文献[7]提出一种3层架构的数据融合系统,底层采集原始数据,中间层通过动态贝叶斯网络处理异构数据,上层自适应系统动态调整传感器采集。该方法融合结果较好,数据上传不会造成冗余,但网关层节点需要大量数据集进行训练,节点运算资源消耗较大,不适合长期使用。

考虑到无线传感网络节点功耗、运算能力的限制,以及数据采集时处理实时性的要求和数据融合的准确性需求,本文结合时空融合模型提出了一种基于卡尔曼滤波的时空数据融合方法。该方法将数据融合分为两次,第1次对原始采集到的数据进行预处理,在时间序列上进行卡尔曼滤波融合;第2次在网关层进行数据处理,将空间信息加权融合。基于时间序列的处理可以对数据未来的趋势进行预判和分析;基于空间的处理则增强了对数据的真实性与可靠性。时间信息融合中,本研究使用卡尔曼滤波算法处理了动态噪声,对无线传感器节点的环境噪声做到了实时动态计算和补偿。空间信息融合中,针对不同区域误差分布不均匀的特点,提出了依据时间数据融合结果对空间融合的权重进行自适应调整的策略。

1 数据融合算法

无线传感网节点采集到的数据具有时间和空间两种属性,每个独立的传感器节点在时间序列上进行数据采集,每个路由器节点或协调器节点在空间序列上进行数据汇总上传[8]。本研究针对无线传感网络节点分布特性,提出了分别在终端节点和网关层进行融合的双层数据融合架构。针对数据采集的特点,本文将数据融合分为基于时间序列的时间数据融合和依据空间分布特点的空间数据融合两个步骤。图1所示为基于时空数据融合和卡尔曼滤波的无线传感网络的数据算法结构。该算法的数据融合过程分为两个阶段:第1阶段在终端层进行处理基于时间的数据融合,采用卡尔曼滤波算法实现单个无线传感器数据采集,按时间序列进行融合估计,消除单个传感器节点测量中的不确定性,提高测量的准确性,降低数据的重复性,得到更准确的实时测量数据;第2阶段基于空间的数据融合由网关层节点进行处理,采用多传感器加权自适应估计融合算法,在总均方误差最小的情况下,以时间融合后的传感器数据为基础自适应寻找对应的最优加权因子,获得最优的估计融合值[9]。

现有的数据融合处理大多是对数据进行简单的剔除处理,对偏离的数据进行过滤后会影响数据的真实性。采用时空数据融合方法将剔除后的数据再次根据空间分布进行处理,由于多个传感器共同对目标进行检测,弥补了数据真实性的缺失。将目前的研究数据剔除后,并没有进行相应的补偿,虽然对数据影响不大,但考虑到无线传感网络数据实时性较高且数据采集量较大,每次融合后的数据都产生了一定的偏离,最终结果会产生较大的偏差。采用时空数据融合方法在剔除较大误差后,空间上多个传感器对数据进行补充,使得数据的真实性得以提高。

卡尔曼滤波算法相较于其他融合算法实时性较强,可及时处理大量数据,避免数据存储带来的资源消耗。在数据处理时,卡尔曼滤波融合算法分为3个步骤:首先,通过已有数据进行预测,根据上一轮的估计值预测下一刻的值,成为先验估计,同时预测出下一时刻的误差作为先验误差,在时间序列上数据实现了趋势预测和估计的目的;然后,计算出卡尔曼增益,用以权衡先验估计和测量值的权重。通过采集的真实数据对预测的数据进行修正,以此提高数据精确度和准确性;最后,将上一轮修正后的数据放入到下一个预测和更新方程中使算法不断迭代。相较于目前的研究,该方法实时性更好,对时间序列内数据的更新迭代提高了数据的精确度和准确度。

以空间数据为基础的自适应加权算法,虽然多个传感器处于同一区域检测同一目标,但是因为空间区域不同必然会有些许的不同。对此,自适应加权方法是一个较好的解决方案。但是实际使用过程中,复杂环境因素的影响是多变的,可能存在均方差偏大的检验数据,因此本文引入环境因子来克服该误差,选择性地去除一定比例的最大最小值来提高数据的准确性。相较于传统的加权方法,该方法结合了空间特性,考虑了空间数据的不稳定结果,降低了空间数据本身因干扰造成的影响。

图1 数据融合算法结构模型Figure 1. Structure model of data fusion algorithm

1.1 时间数据融合

无线数据的采集取决于布置的无线传感器节点。无线传感器节点间歇地进行数据采集,但无线传感器节点无论布置在室内还是室外,由于环境干扰和节点自身精度限制,采集到的数据会不可避免地产生误差。这些误差数据在数据融合过程中会使结果出现较大偏差甚至造成结果无效。为了减小异常数据的影响,本文采用卡尔曼滤波法进行误差数据的修正。卡尔曼滤波是基于状态变量线性最小方差的递归估计算法[10],也被称作最优自回归数据处理算法。系统如果具有线性动力学模型,且系统与传感器的误差符合高斯白噪声模型,则卡尔曼滤波将为融合数据提供唯一统计意义下的最优估计[11]。无线传感器在实际测量中由于外界环境的变化,噪声频率也会发生变化,卡尔曼滤波可以更好地控制噪声对真实数据的干扰,降低采集数据过程中因传感器节点自身的精度及使用后期部件老化产生的随机测量误差,降低传感器受其他环境因素例如温湿度、大气压、风速、光照变化等的影响[12]。

卡尔曼滤波操作主要包括两个步骤:首先在预估阶段,算法根据上一时刻的估计结果预测下一时刻的值,成为先验估计;然后是校正阶段,这时首先计算卡尔曼增益,利用前一时刻的先验估计计算后验估计并更新先验误差到后验误差。

卡尔曼滤波算法预测值的状态估计式为

X(k|k-1)=A×X(k-1|k-1)+B×U(k)

(1)

式中,X(k|k-1)为利用上一状态预测得到的结果;X(k-1|k-1)为上一状态最优结果;B为输入控制项矩阵;U(k)为现在状态的控制量。

更新预测结果与实际值误差的协方差,预测值的协方差矩阵估计式为

P(k|k-1)=A×P(k-1|k-1)×AT+Q

(2)

式中,P(k|k-1)为X(k|k-1)对应的协方差;P(k-1|k-1)为X(k-1|k-1)对应的协方差;Q为系统噪声的协方差。

卡尔曼滤波器更新值的状态估计式为

X(k|k)=
X(k|k-1)+G(k)×[Z(k)-H×X(k|k-1)]

(3)

式中,X(k|k)为当前最优估计值;Z(k)为当前传感器的观测值;H为测量矩阵;G为卡尔曼增益,其计算为

(4)

其中,R是测量噪声协方差。

协方差更新值的状态估计式为

P(k|k)=[I-G(k)×H]P(k|k-1)

(5)

式中,P(k|k)为当前最优估计值的协方差;I为单位矩阵。

1.2 空间数据融合

在检测区域内,数量众多的无线传感网节点分布相对均匀。区域内的无线传感网节点被分为多组,每组传感网络内会分配一个节点作为协调器进行数据收集和上传,因此空间融合主要在路由器、协调器节点为主的网关层进行。加权数据融合方法仅依靠传感器采集的测量数据即可完成较高精度的融合,无需系统先验知识,且计算方法简便。考虑到传感器网络的运算能力及数据融合的需求,本文选择使用加权融合估计方法进行空间数据融合[13]。

每个传感器采集的数据经过卡尔曼滤波处理后,得到单个传感器测量值的最优融合估计[14]。假设监测区域分布着n个某一种传感器节点进行独立测量,某一时刻时间信息融合后得到了n个最优融合估计数据x1,x2,…,xn。

根据加权融合估计计算式可得空间信息融合结果为

(6)

式中,Wi为加权因子,根据每轮空间汇聚数据自适应加权运算得出。

1.3 自适应加权运算

(7)

因为x1,x2,…,xn相互独立互不影响,并且为真值x的无偏估计,所以有

E(x-xi)(x-xj)=0,
i=1,2,...,n;j=1,2,...,n;i≠j

(8)

故总均方误差σ2可写作

(9)

当均方差最小时总方差最小,此时第i个节点的权值为

(10)

将式(10)代入式(6),依据式(1)~式(6)可得到最终数据融合结果。单一的自适应加权融合对于原始采集的数据中偏离较大的值无法较好地处理,影响精确度。仅靠卡尔曼滤波算法也无法对区域内汇聚的数据进行处理,易产生冗余情况。将两者结合,依据无线传感网络时间和空间的特性,可以有效地处理无线传感节点数据。

2 仿真与分析

为了验证该时空融合算法的有效性,选用对无线传感网仿真的方式进行测试[17]。实验以Windows10下MATLAB R2018b环境进行仿真。这里以温度传感器举例,共仿真室外分布100个节点进行数据采集。本文取某一时间节点分别对比算数平均法和基础的自适应加权算法,并对结果进行分析。

2.1 基于时间的融合仿真

时间信息融合是单个传感器节点在某一段时间内采集到的数据依据时间序列进行的融合。现实生活中的噪声属于加性噪声,由传感器内部噪声和环境干扰等多种相对独立因素产生的测量噪声为相互独立的白噪声。利用概率知识,多个相互独立的随机变量相加的和接近正态分布,因此测量噪声的分布规律也是正态分布的。添加均值大于真实值的正态分布作为噪声波动,Q为噪声方差设为4×10-4,该数据可根据环境情况进行调整。

在数据采集时间内温度被认为是不变的,因此A=1。系统不存在控制量,因此U(k)=0。假设选用温湿度度测量传感器DHT11进行测量,其开发文档对应方差为0.25,即R=0.25。

卡尔曼滤波是先验估计,需要初始值,因为随着卡尔曼滤波算法运行,X会逐渐收敛,不影响结果,因此在零时刻X(0|0)和P(0|0)分别为20.5和1。

利用k-1时刻温度预计第k时刻的温度,预计偏差为P(k|k-1)=P(k-1)+Q=0.2,计算卡尔曼增益G为0.800 063,据此可得卡尔曼估计值X(k)=20.833。更新k时刻的偏侧,对下一时刻数据更新处理。迭代运行100 min后卡尔曼滤波数据如图2所示。

图2 温度传感器测量值与卡尔曼滤波值Figure 2. Temperature sensor measurement values and Kalman filter values

图2中通过测量结果与卡尔曼滤波后的结果进行对比,可发现卡尔曼滤波器较好地抑制了噪声误差,并且随着采样时间的积累,卡尔曼滤波算法处理的数据会逐渐趋于稳定和精确,误差值也较小,这表明卡尔曼滤波融合可以满足时间信息融合的需求。

2.2 基于空间的融合仿真

基于空间的数据融合是在时间数据融合的基础上进行的。综合考虑能耗及采集精度,设置每个节点定时唤醒采集传感数据60 min,每个独立的传感器节点在完成采集并进行卡尔曼滤波融合后便得到了最优融合估计数据。将这些数据汇聚在网关,由协调器进行空间上的数据融合。真实值为15.5 ℃、17.2 ℃、20.8 ℃、25.5 ℃、30.5 ℃ 的温度数据加入高斯噪声后,由卡尔曼滤波仿真。将10组、20组、50组、100组数据进行自适应加权融合后,得到结果如表1和图3所示。把实验数据值转化为相对偏差可以更直观地看到,在经过基于时间的数据融合后,节点较少时即可得到相对偏差较小的数据融合结果。随着节点的增多,结果逐渐趋于真值。

表1 空间数据融合结果

图3 各温度仿真相对偏差折线图Figure 3. Line graph of relative deviation of each temperature simulation

2.3 对比与分析

分别对比本研究算法、算数平均法和改进的分批估计自适应加权数据融合方法对实验数据的处理结果,如表2和图4所示。通过图表可以看出,相对于算术平均法和改进的分批估计自适应加权融合算法,本文提出的数据融合算法的融合结果更接近数据真值,算法误差明显小于算术平均法。这是由于算术平均法中具有无法避免的外界干扰以及传感器误差。分批估计自适应加权融合算法相对于算术平均算法数据稳定性好,但融合误差仍然比本文提出的算法大,这是数据处理实时性不高造成的。虽然对原始数据进行了预处理,但格罗贝斯判断准则判据需要阶段运行,且每次只剔除一个可疑值。当数据不严格服从正态分布时,该方法的准确性易受到干扰。通过计算,算数平均法均方差约为1.85,分批估计自适应加权算法均方差为1.32,基于卡尔曼滤波的时空数据融合方法均方差为1.21,本文算法对比分批估计自适应加权算法的均方根误差减少约7.9%,精度提高了2.1%。综上所述,本文的基于卡尔曼滤波的无线传感网时空数据融合算法在不同节点数量、不同环境的情况下都有较低的融合误差。

表2 3种算法数据融合值与真值比较

图4 3种算法融合值与真值相对偏差折线图Figure 4. Line graph of the relative deviation between the fusion value of the three algorithms and the true value

3 结束语

基于物联网思想,结合当前无线传感网络的架构及现阶段应用中信息存在的不确定性、冗余等问题,本文提出了基于卡尔曼滤波的无线传感网时空数据融合算法。首先对每个传感器节点在时间上进行基于卡尔曼滤波的数据融合,再对全部部署的无线传感网中的节点在空间上进行基于自适应加权法的数据融合。仿真结果表明,卡尔曼滤波融合可以较好地处理无线传感器节点工作过程中的动态噪声问题,动态补偿测量误差,实现时间序列下的数据融合。相较于其他的数据融合方法,本文方法融合后数据更接近真值,随着传感器数量增加,融合结果越接近真值且对比图中折线更平缓。实验证明本方法可以降低环境和传感器自身灵敏度等带来的误差,有效提高无线传感网络测量的精确度和准确度。后续将重点研究该方法对传感器网络数据传输频率、数量及数据传输压力的影响,以期降低无线传感网整体能耗。

猜你喜欢
卡尔曼滤波传感噪声
舰船通信中的噪声消除研究
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
脉冲星方位误差估计的两步卡尔曼滤波算法
汽车制造企业噪声综合治理实践
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
IPv6与ZigBee无线传感网互联网关的研究
硅硼掺杂碳点的制备及其在血红蛋白传感中的应用
基于递推更新卡尔曼滤波的磁偶极子目标跟踪