基于RSSI校正的无线传感器网络定位算法*
2014-07-18文春武姚家振
文春武, 宋 杰, 姚家振
(安徽大学 计算机科学与技术学院,安徽 合肥 230601)
基于RSSI校正的无线传感器网络定位算法*
文春武, 宋 杰, 姚家振
(安徽大学 计算机科学与技术学院,安徽 合肥 230601)
为了使接收信号强度指示(RSSI)的测量误差对节点定位精度的影响程度达到最小化,提出一种基于RSSI高斯加权校正的质心定位算法。首先通过高斯函数滤去偏差较大的RSSI值,然后再对余下的RSSI值加权计算得到优化的RSSI测量值,并利用测量到的RSSI值计算出锚节点与未知节点之间的距离,然后根据计算出的距离对锚节点坐标加权,并通过质心定位算法求出未知节点的位置坐标。仿真实验表明:该算法相比基于RSSI的质心定位算法,定位覆盖率提升3 %~6 %,平均定位误差至少减少4 %,是一种定位精度更高的算法。
无线传感器网络; 接收信号强度指示; 高斯加权; 质心定位
0 引 言
在无线传感器网络(WSNs)中,如何精确地获取事件发生位置和监测消息节点的位置对于监控整个网络至关重要[1],因此,定位技术对于无线传感器网络不可或缺。在无线传感器网络定位算法中,根据节点的位置信息是否可知可以将节点分为锚节点和未知节点。锚节点是表示已经精确定位的节点,而未知节点表示自身位置未知的节点。根据未知节点与锚节点之间的距离是否需要测量可以分为两大类,分别为测距算法和非测距算法[2]。基于测距技术的定位算法通过测量未知节点与锚节点之间的角度信息和距离信息,然后通过定位算法计算出未知节点的位置。常使用的测距算法主要包括接收信号强度指示(RSSI),到达角度(AOA),到达时间(TOA)等定位算法。基于非测距技术的定位算法不需要测量节点之间的角度信息和距离信息,而是通过利用整个无线传感器网络的连通性来得到未知节点的位置信息。常使用的非测距算法主要有质心法、凸规划法、DV-Hop等定位算法[3]。
针对当前无线传感器网络定位精度不足的问题,本文提出一种基于RSSI高斯加权校正的无线传感器网络质心定位算法。仿真实验表明:该算法对于节点定位的精度有一定的提高,误差也得到减小,本算法是一种有效地处理节点定位的算法。
1 算法模型
1.1 基于RSSI的测距模型
RSSI表示无线信号从一个节点发送到达另外一个节点处的信号强度,所以,RSSI与信号的传播距离呈反比关系,即通信距离越小,RSSI值越大[4]。
无线信号常用的传播路径损耗模型主要有三种,分别为自由空间传输模型、两路径地面反射模型和Shadowing模型[5]。前两个模型是以理想为前提的,而在实际环境中,无线信号是受到多路径的影响,故本文采用Shadowing模型作为无线信号传播路径损耗模型,它主要由路径损耗模型和高斯分布模型组成。
在路径损耗模型中,两锚节点间的距离已知,用d0表示,其相应的接收到平均功率也已知,用p(d0)表示,所以,当锚节点与未知节点之间的距离为d时,接收到的平均功率p(d)通过Shadowing模型得到
(1)
其中,n为路径损耗指数,它的大小与环境相关。
一般情况下,路径损耗模型以dB作为表示单位,因此,公式(1)可变为
(2)
高斯分布模型反映的是当节点间距离一定时,接收到的信号能量的变化情况,当以dB为计量单位时符合高斯分布。完整模型如公式(3)所示
(3)
其中,XdB为均值为0的高斯随机变量。
1.2 传统质心定位算法
质心定位算法是一种基于网络连通性的简单定位算法,该算法的核心思想是:锚节点定期向邻居节点广播包含自身ID和位置信息的数据包,在一定时间内,当未知节点接收到锚节点的信息次数超过预先设定的阈值,此时表示未知节点与该锚节点连通,此时,所有和未知节点连通的锚节点构成的多边形的质心即为未知节点的坐标[6],其算法原理如图1所示。
图1 质心算法原理图Fig 1 Principle diagram of centroid algorithm
未知节点的估计位置坐标
(4)
其中,(x1,y1),(x2,y2),…, (xn,yn)为未知节点接收到的锚节点的坐标。
根据上面分析可知,单纯使用质心定位算法,由于不同位置的锚节点对于未知节点的影响权重不同,所以,质心算法只能粗略地对未知节点进行定位,相应的定位精度比较低。由无线信号传播路径损耗模型可知,RSSI值可以直接反映锚节点与未知节点之间的距离,又传感器节点上一般都带有测量RSSI值的指示器,可以直接测得RSSI值。因此,将RSSI信息引入质心算法定位中,通过高斯函数设定阈值K,剔除测量数据中误差较大的RSSI值,将剩下的RSSI值加权计算后作为质心的权重,继而采用质心算法进行定位,综合考虑两者的优点并引入高斯函数对测得RSSI值进行滤化并加权处理,提高未知节点定位的精度。
2 基于RSSI高斯加权校正的质心定位算法
在对RSSI值进行测量时,往往采用相同条件下多次测量的方法,从而使得出现误差数据的比例尽量达到最小化[7]。如果通过设定一个阈值,把偏差比较大的值筛选出来,这样就可以避免这些偏差比较大的数据所带来的误差。高斯函数测距算法就是用来筛选出偏差比较大的数据,其函数为
(5)
其中,μ和σ2计算公式分别为
(6)
(7)
由高斯分布函数性质可知位于区间(μ-σ,μ+σ)内的取值面积占总面积的68 %,而一般只需要选择概率大于0.6即可[8]。所以,选择分布在(μ-σ,μ+σ)来处理测得的RSSI值,并将无线信号在该区间两端的取值作为高斯分布函数设定的阈值K。至于K的确定,首先根据式(6)、式(7)分别计算出μ和σ的值,然后根据高斯分布函数公式(5)计算出f(x),最后通过判定条件abs(f(x)-σ)≤0.01,若判定条件成立,则将此时的x的值定为阈值K。
阈值K确定之后,如果测得的RSSI值中发现有小于K的,则表示误差值超出接受范围需要剔除,并置其权值w为0;否则,为1,如式(8)
(8)
剔除偏差较大的值后,RSSI值均值如式(9)所示
(9)
其中,m为剔除偏差较大的RSSI后余下的个数。
由于受环境不同影响,未知节点接收来自同一锚节点的RSSI值有一定的波动,可以通过设置权值进一步优化,优化后RSSI值为
(10)
通过高斯分布函数将偏差较大的RSSI值剔除之后,收集余下的RSSI信息,并通过无线信号传播路径损耗模型将其转换为距离信息。在传统质心定位算法的基础上,由于不同距离的锚节点对于未知节点的影响不一,锚节点离未知节点距离越近,那么,该锚节点对于未知节点位置估计的贡献就越大,所以,根据锚节点位置的远近为各个锚节点坐标附上权值,最后基于质心算法可得到未知节点的坐标公式
(11)
其中,1/di表示权值,而di表示RSSI信息通过无线信号传播路径损耗模型计算转换的距离信息。
在质心定位算法的基础上,改进算法充分利用RSSI信息使定位精度得到提升。具体实现步骤如下:
1)锚节点周期性地向周围邻居节点广播包含自身标示和位置信息的数据包。
3)当未知节点接收到锚节点的数量超过预定值时,则不再接收新的信息。
5)将1/di定为锚节点坐标的权值,通过质心定位算法根据式(11)计算出未知节点的坐标(x,y)。最后通过两点之间的距离公式计算出未知节点的真实位置和测量位置之间的偏移误差。
3 仿真实验与分析
3.1 仿真环境
传感器节点随机分布在100 m×100 m的监测区域内,50个锚节点和100个未知节点随机分布在平面内,通信半径设为20 m,路径损耗因子n设为3,高斯分布均方差设为2,通过Matlab对实验环境进行模拟并对数据进行分析,其节点分布图如图2所示。
图2 节点分布图Fig 2 Deployment diagram of nodes
3.2 实验结果与分析
图3表示的是基于RSSI质心定位算法和基于RSSI高斯加权校正质心定位算法在不同锚节点数目下的定位覆盖率的变化情况。该图分别统计了锚节点个数在5~50之间两种算法的定位覆盖率变化情况,可以看出:随着锚节点数目的增加,虽然两种算法的定位覆盖率都在增大,但是后者的覆盖率增长速率更快,在锚节点数目为40时已到达100 %,而前者仅达到95 %。整体上来看,在相同锚节点数目下,改进算法的覆盖率提升3 %~6 %。
图4表示的是两种算法在不同锚节点数目下平均定位误差的变化情况。从图4可以看出:随着锚节点数目的增加,定位误差均快速下降。当锚节点个数为5时,原有算法平均误差为42 %,改进算法的平均误差为38 %,优化4 %。但随着锚节点数目的增加,改进算法定位误差下降的更快,当锚节点数目为50时,原算法平均定位误差为14 %,改进算法平均定位误差为5 %,优化9 %。总之,改进算法是一种定位精度更高的算法。
图3 覆盖率对比图Fig 3 Comparison diagram of coverage rate
图4 平均误差对比图Fig 4 Comparison diagram of mean error
4 结 论
本文在研究各种定位和优化算法的基础上,提出一种基于RSSI的高斯加权校正质心定位算法。仿真实验表明:基于RSSI的高斯加权校正质心算法在一定程度上避免了较大误差的情况出现,也降低单次误差偏大的RSSI对RSSI值的影响,相比基于RSSI的质心算法,改进算法覆盖率提升3 %~6 %,平均定位误差至少减少4 %,在一定程度提高定位的精度。
[1] Akyildiz L F,Su Wenlian,Sankarasvbramaniam Y.A survey on sensor networks[J].IEEE Communications Magazine,2011,40(8):102-114.
[2] Errarnilli V,Bestavros A.On the interaction between data aggregation and topology control in wireless sensor networks[C]∥Proc of the 1st Annual IEEE Communications Society Conference,2004:557-565.
[3] 张蝉爱,马艳艳,白凤娥,等.基于RSSI的加权质心定位算法的实现[J].太原理工大学学报,2009,40(2):146-147.
[4] 何艳丽.无线传感器网络质心定位算法研究[J].计算机仿真,2011,28(5):163-166.
[5] 马祖长,孙怡宁.WSNs节点的定位算法[J].计算机工程,2011,30(4):13-14.
[6] 苟胜难.基于改进的RSSI无线传感器网络节点定位算法研究[J].计算机应用研究,2012,29(5):1867-1869.
[7] 张中华.基于RSSI校正的无线传感器网络质心定位算法[D].济南:山东大学,2011.
[8] 程海军.基于RSSI的无线传感器网络定位算法改进研究[D].重庆:重庆理工大学,2013.
WSNs localization algorithm based on RSSI correction*
WEN Chun-wu, SONG Jie, YAO Jia-zhen
(School of Computer Science and Technology,Anhui University,Hefei 230601,China)
In order to minimize influence of measurement error of RSSI on localization precision of node,propose a centroid localization algorithm based on Gaussian weighting correction.Firstly, large bias value of RSSI is filtered by Gaussian function,then,remained RSSI value is weighted calculation to obtain optimized RSSI measurement value,and use measured RSSI value to calculate distance between anchor nodes and unknown nodes,then coordinates of anchor node is weighting by using centroid localization algorithm to calculate unknown node location coordinate.Simulation experiments show that the algorithm improves 3 %~6 % on the issue of localization localization coverage rate and reduces at least 4 % in average localization error compared with centroid localization algorithm based on RSSI,and it is a higher positioning precision algorithm.
wireless sensor networks(WSNs); RSSI; Gaussian weighting; centroid localization
10.13873/J.1000—9787(2014)12—0134—03
2014—08—25
安徽大学研究生学术创新研究项目
TP 393
A
1000—9787(2014)12—0134—03
文春武(1990-),男,安徽芜湖人,硕士研究生,主要研究方向为无线传感器网络。