文春武, 宋 杰, 姚家振
(安徽大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230601)
基于RSSI校正的無(wú)線傳感器網(wǎng)絡(luò)定位算法*
文春武, 宋 杰, 姚家振
(安徽大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230601)
為了使接收信號(hào)強(qiáng)度指示(RSSI)的測(cè)量誤差對(duì)節(jié)點(diǎn)定位精度的影響程度達(dá)到最小化,提出一種基于RSSI高斯加權(quán)校正的質(zhì)心定位算法。首先通過(guò)高斯函數(shù)濾去偏差較大的RSSI值,然后再對(duì)余下的RSSI值加權(quán)計(jì)算得到優(yōu)化的RSSI測(cè)量值,并利用測(cè)量到的RSSI值計(jì)算出錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離,然后根據(jù)計(jì)算出的距離對(duì)錨節(jié)點(diǎn)坐標(biāo)加權(quán),并通過(guò)質(zhì)心定位算法求出未知節(jié)點(diǎn)的位置坐標(biāo)。仿真實(shí)驗(yàn)表明:該算法相比基于RSSI的質(zhì)心定位算法,定位覆蓋率提升3 %~6 %,平均定位誤差至少減少4 %,是一種定位精度更高的算法。
無(wú)線傳感器網(wǎng)絡(luò); 接收信號(hào)強(qiáng)度指示; 高斯加權(quán); 質(zhì)心定位
在無(wú)線傳感器網(wǎng)絡(luò)(WSNs)中,如何精確地獲取事件發(fā)生位置和監(jiān)測(cè)消息節(jié)點(diǎn)的位置對(duì)于監(jiān)控整個(gè)網(wǎng)絡(luò)至關(guān)重要[1],因此,定位技術(shù)對(duì)于無(wú)線傳感器網(wǎng)絡(luò)不可或缺。在無(wú)線傳感器網(wǎng)絡(luò)定位算法中,根據(jù)節(jié)點(diǎn)的位置信息是否可知可以將節(jié)點(diǎn)分為錨節(jié)點(diǎn)和未知節(jié)點(diǎn)。錨節(jié)點(diǎn)是表示已經(jīng)精確定位的節(jié)點(diǎn),而未知節(jié)點(diǎn)表示自身位置未知的節(jié)點(diǎn)。根據(jù)未知節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的距離是否需要測(cè)量可以分為兩大類(lèi),分別為測(cè)距算法和非測(cè)距算法[2]?;跍y(cè)距技術(shù)的定位算法通過(guò)測(cè)量未知節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的角度信息和距離信息,然后通過(guò)定位算法計(jì)算出未知節(jié)點(diǎn)的位置。常使用的測(cè)距算法主要包括接收信號(hào)強(qiáng)度指示(RSSI),到達(dá)角度(AOA),到達(dá)時(shí)間(TOA)等定位算法。基于非測(cè)距技術(shù)的定位算法不需要測(cè)量節(jié)點(diǎn)之間的角度信息和距離信息,而是通過(guò)利用整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的連通性來(lái)得到未知節(jié)點(diǎn)的位置信息。常使用的非測(cè)距算法主要有質(zhì)心法、凸規(guī)劃法、DV-Hop等定位算法[3]。
針對(duì)當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)定位精度不足的問(wèn)題,本文提出一種基于RSSI高斯加權(quán)校正的無(wú)線傳感器網(wǎng)絡(luò)質(zhì)心定位算法。仿真實(shí)驗(yàn)表明:該算法對(duì)于節(jié)點(diǎn)定位的精度有一定的提高,誤差也得到減小,本算法是一種有效地處理節(jié)點(diǎn)定位的算法。
1.1 基于RSSI的測(cè)距模型
RSSI表示無(wú)線信號(hào)從一個(gè)節(jié)點(diǎn)發(fā)送到達(dá)另外一個(gè)節(jié)點(diǎn)處的信號(hào)強(qiáng)度,所以,RSSI與信號(hào)的傳播距離呈反比關(guān)系,即通信距離越小,RSSI值越大[4]。
無(wú)線信號(hào)常用的傳播路徑損耗模型主要有三種,分別為自由空間傳輸模型、兩路徑地面反射模型和Shadowing模型[5]。前兩個(gè)模型是以理想為前提的,而在實(shí)際環(huán)境中,無(wú)線信號(hào)是受到多路徑的影響,故本文采用Shadowing模型作為無(wú)線信號(hào)傳播路徑損耗模型,它主要由路徑損耗模型和高斯分布模型組成。
在路徑損耗模型中,兩錨節(jié)點(diǎn)間的距離已知,用d0表示,其相應(yīng)的接收到平均功率也已知,用p(d0)表示,所以,當(dāng)錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離為d時(shí),接收到的平均功率p(d)通過(guò)Shadowing模型得到
(1)
其中,n為路徑損耗指數(shù),它的大小與環(huán)境相關(guān)。
一般情況下,路徑損耗模型以dB作為表示單位,因此,公式(1)可變?yōu)?/p>
(2)
高斯分布模型反映的是當(dāng)節(jié)點(diǎn)間距離一定時(shí),接收到的信號(hào)能量的變化情況,當(dāng)以dB為計(jì)量單位時(shí)符合高斯分布。完整模型如公式(3)所示
(3)
其中,XdB為均值為0的高斯隨機(jī)變量。
1.2 傳統(tǒng)質(zhì)心定位算法
質(zhì)心定位算法是一種基于網(wǎng)絡(luò)連通性的簡(jiǎn)單定位算法,該算法的核心思想是:錨節(jié)點(diǎn)定期向鄰居節(jié)點(diǎn)廣播包含自身ID和位置信息的數(shù)據(jù)包,在一定時(shí)間內(nèi),當(dāng)未知節(jié)點(diǎn)接收到錨節(jié)點(diǎn)的信息次數(shù)超過(guò)預(yù)先設(shè)定的閾值,此時(shí)表示未知節(jié)點(diǎn)與該錨節(jié)點(diǎn)連通,此時(shí),所有和未知節(jié)點(diǎn)連通的錨節(jié)點(diǎn)構(gòu)成的多邊形的質(zhì)心即為未知節(jié)點(diǎn)的坐標(biāo)[6],其算法原理如圖1所示。
圖1 質(zhì)心算法原理圖Fig 1 Principle diagram of centroid algorithm
未知節(jié)點(diǎn)的估計(jì)位置坐標(biāo)
(4)
其中,(x1,y1),(x2,y2),…, (xn,yn)為未知節(jié)點(diǎn)接收到的錨節(jié)點(diǎn)的坐標(biāo)。
根據(jù)上面分析可知,單純使用質(zhì)心定位算法,由于不同位置的錨節(jié)點(diǎn)對(duì)于未知節(jié)點(diǎn)的影響權(quán)重不同,所以,質(zhì)心算法只能粗略地對(duì)未知節(jié)點(diǎn)進(jìn)行定位,相應(yīng)的定位精度比較低。由無(wú)線信號(hào)傳播路徑損耗模型可知,RSSI值可以直接反映錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離,又傳感器節(jié)點(diǎn)上一般都帶有測(cè)量RSSI值的指示器,可以直接測(cè)得RSSI值。因此,將RSSI信息引入質(zhì)心算法定位中,通過(guò)高斯函數(shù)設(shè)定閾值K,剔除測(cè)量數(shù)據(jù)中誤差較大的RSSI值,將剩下的RSSI值加權(quán)計(jì)算后作為質(zhì)心的權(quán)重,繼而采用質(zhì)心算法進(jìn)行定位,綜合考慮兩者的優(yōu)點(diǎn)并引入高斯函數(shù)對(duì)測(cè)得RSSI值進(jìn)行濾化并加權(quán)處理,提高未知節(jié)點(diǎn)定位的精度。
在對(duì)RSSI值進(jìn)行測(cè)量時(shí),往往采用相同條件下多次測(cè)量的方法,從而使得出現(xiàn)誤差數(shù)據(jù)的比例盡量達(dá)到最小化[7]。如果通過(guò)設(shè)定一個(gè)閾值,把偏差比較大的值篩選出來(lái),這樣就可以避免這些偏差比較大的數(shù)據(jù)所帶來(lái)的誤差。高斯函數(shù)測(cè)距算法就是用來(lái)篩選出偏差比較大的數(shù)據(jù),其函數(shù)為
(5)
其中,μ和σ2計(jì)算公式分別為
(6)
(7)
由高斯分布函數(shù)性質(zhì)可知位于區(qū)間(μ-σ,μ+σ)內(nèi)的取值面積占總面積的68 %,而一般只需要選擇概率大于0.6即可[8]。所以,選擇分布在(μ-σ,μ+σ)來(lái)處理測(cè)得的RSSI值,并將無(wú)線信號(hào)在該區(qū)間兩端的取值作為高斯分布函數(shù)設(shè)定的閾值K。至于K的確定,首先根據(jù)式(6)、式(7)分別計(jì)算出μ和σ的值,然后根據(jù)高斯分布函數(shù)公式(5)計(jì)算出f(x),最后通過(guò)判定條件abs(f(x)-σ)≤0.01,若判定條件成立,則將此時(shí)的x的值定為閾值K。
閾值K確定之后,如果測(cè)得的RSSI值中發(fā)現(xiàn)有小于K的,則表示誤差值超出接受范圍需要剔除,并置其權(quán)值w為0;否則,為1,如式(8)
(8)
剔除偏差較大的值后,RSSI值均值如式(9)所示
(9)
其中,m為剔除偏差較大的RSSI后余下的個(gè)數(shù)。
由于受環(huán)境不同影響,未知節(jié)點(diǎn)接收來(lái)自同一錨節(jié)點(diǎn)的RSSI值有一定的波動(dòng),可以通過(guò)設(shè)置權(quán)值進(jìn)一步優(yōu)化,優(yōu)化后RSSI值為
(10)
通過(guò)高斯分布函數(shù)將偏差較大的RSSI值剔除之后,收集余下的RSSI信息,并通過(guò)無(wú)線信號(hào)傳播路徑損耗模型將其轉(zhuǎn)換為距離信息。在傳統(tǒng)質(zhì)心定位算法的基礎(chǔ)上,由于不同距離的錨節(jié)點(diǎn)對(duì)于未知節(jié)點(diǎn)的影響不一,錨節(jié)點(diǎn)離未知節(jié)點(diǎn)距離越近,那么,該錨節(jié)點(diǎn)對(duì)于未知節(jié)點(diǎn)位置估計(jì)的貢獻(xiàn)就越大,所以,根據(jù)錨節(jié)點(diǎn)位置的遠(yuǎn)近為各個(gè)錨節(jié)點(diǎn)坐標(biāo)附上權(quán)值,最后基于質(zhì)心算法可得到未知節(jié)點(diǎn)的坐標(biāo)公式
(11)
其中,1/di表示權(quán)值,而di表示RSSI信息通過(guò)無(wú)線信號(hào)傳播路徑損耗模型計(jì)算轉(zhuǎn)換的距離信息。
在質(zhì)心定位算法的基礎(chǔ)上,改進(jìn)算法充分利用RSSI信息使定位精度得到提升。具體實(shí)現(xiàn)步驟如下:
1)錨節(jié)點(diǎn)周期性地向周?chē)従庸?jié)點(diǎn)廣播包含自身標(biāo)示和位置信息的數(shù)據(jù)包。
3)當(dāng)未知節(jié)點(diǎn)接收到錨節(jié)點(diǎn)的數(shù)量超過(guò)預(yù)定值時(shí),則不再接收新的信息。
5)將1/di定為錨節(jié)點(diǎn)坐標(biāo)的權(quán)值,通過(guò)質(zhì)心定位算法根據(jù)式(11)計(jì)算出未知節(jié)點(diǎn)的坐標(biāo)(x,y)。最后通過(guò)兩點(diǎn)之間的距離公式計(jì)算出未知節(jié)點(diǎn)的真實(shí)位置和測(cè)量位置之間的偏移誤差。
3.1 仿真環(huán)境
傳感器節(jié)點(diǎn)隨機(jī)分布在100 m×100 m的監(jiān)測(cè)區(qū)域內(nèi),50個(gè)錨節(jié)點(diǎn)和100個(gè)未知節(jié)點(diǎn)隨機(jī)分布在平面內(nèi),通信半徑設(shè)為20 m,路徑損耗因子n設(shè)為3,高斯分布均方差設(shè)為2,通過(guò)Matlab對(duì)實(shí)驗(yàn)環(huán)境進(jìn)行模擬并對(duì)數(shù)據(jù)進(jìn)行分析,其節(jié)點(diǎn)分布圖如圖2所示。
圖2 節(jié)點(diǎn)分布圖Fig 2 Deployment diagram of nodes
3.2 實(shí)驗(yàn)結(jié)果與分析
圖3表示的是基于RSSI質(zhì)心定位算法和基于RSSI高斯加權(quán)校正質(zhì)心定位算法在不同錨節(jié)點(diǎn)數(shù)目下的定位覆蓋率的變化情況。該圖分別統(tǒng)計(jì)了錨節(jié)點(diǎn)個(gè)數(shù)在5~50之間兩種算法的定位覆蓋率變化情況,可以看出:隨著錨節(jié)點(diǎn)數(shù)目的增加,雖然兩種算法的定位覆蓋率都在增大,但是后者的覆蓋率增長(zhǎng)速率更快,在錨節(jié)點(diǎn)數(shù)目為40時(shí)已到達(dá)100 %,而前者僅達(dá)到95 %。整體上來(lái)看,在相同錨節(jié)點(diǎn)數(shù)目下,改進(jìn)算法的覆蓋率提升3 %~6 %。
圖4表示的是兩種算法在不同錨節(jié)點(diǎn)數(shù)目下平均定位誤差的變化情況。從圖4可以看出:隨著錨節(jié)點(diǎn)數(shù)目的增加,定位誤差均快速下降。當(dāng)錨節(jié)點(diǎn)個(gè)數(shù)為5時(shí),原有算法平均誤差為42 %,改進(jìn)算法的平均誤差為38 %,優(yōu)化4 %。但隨著錨節(jié)點(diǎn)數(shù)目的增加,改進(jìn)算法定位誤差下降的更快,當(dāng)錨節(jié)點(diǎn)數(shù)目為50時(shí),原算法平均定位誤差為14 %,改進(jìn)算法平均定位誤差為5 %,優(yōu)化9 %??傊倪M(jìn)算法是一種定位精度更高的算法。
圖3 覆蓋率對(duì)比圖Fig 3 Comparison diagram of coverage rate
圖4 平均誤差對(duì)比圖Fig 4 Comparison diagram of mean error
本文在研究各種定位和優(yōu)化算法的基礎(chǔ)上,提出一種基于RSSI的高斯加權(quán)校正質(zhì)心定位算法。仿真實(shí)驗(yàn)表明:基于RSSI的高斯加權(quán)校正質(zhì)心算法在一定程度上避免了較大誤差的情況出現(xiàn),也降低單次誤差偏大的RSSI對(duì)RSSI值的影響,相比基于RSSI的質(zhì)心算法,改進(jìn)算法覆蓋率提升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] 張蟬愛(ài),馬艷艷,白鳳娥,等.基于RSSI的加權(quán)質(zhì)心定位算法的實(shí)現(xiàn)[J].太原理工大學(xué)學(xué)報(bào),2009,40(2):146-147.
[4] 何艷麗.無(wú)線傳感器網(wǎng)絡(luò)質(zhì)心定位算法研究[J].計(jì)算機(jī)仿真,2011,28(5):163-166.
[5] 馬祖長(zhǎng),孫怡寧.WSNs節(jié)點(diǎn)的定位算法[J].計(jì)算機(jī)工程,2011,30(4):13-14.
[6] 茍勝難.基于改進(jìn)的RSSI無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法研究[J].計(jì)算機(jī)應(yīng)用研究,2012,29(5):1867-1869.
[7] 張中華.基于RSSI校正的無(wú)線傳感器網(wǎng)絡(luò)質(zhì)心定位算法[D].濟(jì)南:山東大學(xué),2011.
[8] 程海軍.基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)定位算法改進(jìn)研究[D].重慶:重慶理工大學(xué),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
安徽大學(xué)研究生學(xué)術(shù)創(chuàng)新研究項(xiàng)目
TP 393
A
1000—9787(2014)12—0134—03
文春武(1990-),男,安徽蕪湖人,碩士研究生,主要研究方向?yàn)闊o(wú)線傳感器網(wǎng)絡(luò)。