周二林,王冠凌
(安徽工程大學(xué) 電氣工程學(xué)院,安徽 蕪湖 241000)
隨著物聯(lián)網(wǎng)相關(guān)技術(shù)的興起,基于無(wú)線傳感網(wǎng)絡(luò)(wireless ensing networks,WSN)和無(wú)線局域網(wǎng)(wireless local area networks,WLAN)等面向區(qū)域的定位技術(shù)越來(lái)越受到各行業(yè)研究者的關(guān)注。面向區(qū)域的定位技術(shù)是一個(gè)前景廣闊的研究方向,而室內(nèi)定位技術(shù)是其中的典型代表。在眾多定位測(cè)距技術(shù)中,基于RSSI的測(cè)距定位技術(shù)通過(guò)發(fā)射點(diǎn)和接收點(diǎn)之間的信號(hào)強(qiáng)度值來(lái)估計(jì)兩點(diǎn)之間的傳播損耗,再根據(jù)經(jīng)驗(yàn)?zāi)P秃拖嚓P(guān)理論知識(shí)將發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)之間的傳輸損耗轉(zhuǎn)換為兩點(diǎn)之間的距離,最后根據(jù)相應(yīng)的算法推算出未知節(jié)點(diǎn)的位置。相比其他幾種常見(jiàn)的測(cè)距定位技術(shù)(如到達(dá)時(shí)間 TOA、到達(dá)時(shí)間差 TDOA、到達(dá)角 AOA等),接收信號(hào)強(qiáng)度指示RSSI的測(cè)距定位技術(shù)對(duì)硬件的要求低、功耗小,且沒(méi)有時(shí)間同步,具有容易實(shí)現(xiàn)等優(yōu)點(diǎn),得到了廣泛的應(yīng)用。但是復(fù)雜的室內(nèi)環(huán)境使得定位精度較低,無(wú)法滿足正常的室內(nèi)定位要求。另外,室內(nèi)環(huán)境中人員走動(dòng)帶來(lái)的突發(fā)性的干擾更使得室內(nèi)定位的效果很難達(dá)到理想的程度,因此尋找一個(gè)比較理想的室內(nèi)環(huán)境定位系統(tǒng)已經(jīng)成為室內(nèi)定位研究的熱點(diǎn)。
在定位理論中,接收信號(hào)強(qiáng)度指示值RSSI測(cè)距定位技術(shù)是通過(guò)發(fā)射點(diǎn)和接收點(diǎn)之間的信號(hào)強(qiáng)度值來(lái)估計(jì)兩點(diǎn)之間的傳播損耗,再根據(jù)經(jīng)驗(yàn)?zāi)P秃拖嚓P(guān)理論知識(shí)將發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)之間的傳輸損耗轉(zhuǎn)換為兩點(diǎn)之間的距離,最后根據(jù)相應(yīng)的算法推算出未知節(jié)點(diǎn)的位置。由于室內(nèi)環(huán)境的復(fù)雜性,經(jīng)驗(yàn)?zāi)P痛嬖谝欢ǖ恼`差,以至接收信號(hào)強(qiáng)度值RSSI和未知節(jié)點(diǎn)的定位也先后存在不同程度的誤差。針對(duì)如何更精確的定位,本文提出的基于RSSI測(cè)距定位算法的流程如圖1所示。
圖1 定位系統(tǒng)流程
本文首先利用高斯濾波對(duì)采集的RSSI值進(jìn)行預(yù)處理,然后根據(jù)數(shù)值越大的RSSI值對(duì)未知節(jié)點(diǎn)位置的參考價(jià)值就越大的思想,對(duì)高斯預(yù)處理后的RSSI值進(jìn)行加權(quán)處理,并對(duì)轉(zhuǎn)換后的距離值進(jìn)行最小二乘法修正。最后,通過(guò)判斷是否滿足判定要求決定是否重新定位。重新定位的次數(shù)人為設(shè)定,定位通過(guò)三邊測(cè)量算法來(lái)實(shí)現(xiàn)。
引用高斯濾波處理數(shù)據(jù):首先,在同一個(gè)未知信標(biāo)節(jié)點(diǎn)處采集n個(gè)RSSI值。由于室內(nèi)環(huán)境的復(fù)雜性,往往存在一些小概率事件,通過(guò)高斯模型[1-3]濾除一些小概率、大干擾事件,以提高定位的準(zhǔn)確性。其次,根據(jù)文獻(xiàn)[4]室內(nèi)外環(huán)境下RSSI值與距離的衰減關(guān)系,當(dāng)較近距離傳輸時(shí),RSSI值衰減較快;當(dāng)較遠(yuǎn)距離傳輸時(shí),衰減較慢,接收強(qiáng)度RSSI值相對(duì)傳輸距離的變化表現(xiàn)不明顯,即可以觀察到RSSI取值在10 m以內(nèi)的衰減波動(dòng)較大,在10~15 m衰減比較穩(wěn)定,距離在15 m以外時(shí),衰減變化很緩慢,因此參考價(jià)值比較小。因此,本實(shí)驗(yàn)只取前15 m的實(shí)驗(yàn)數(shù)據(jù)以滿足更為精確的定位要求。
信標(biāo)節(jié)點(diǎn)可以通過(guò)RSSI值計(jì)算出未知節(jié)點(diǎn)與它的距離,電磁波能量P與路徑r的關(guān)系模型為其中:a為待定系數(shù);P為能量值;r為距離。
在實(shí)際測(cè)量過(guò)程中,RSSI有一個(gè)隨機(jī)分量x0,即實(shí)際測(cè)量的數(shù)值在一個(gè)穩(wěn)定值附近上下波動(dòng),引入高斯模型:
其中:p0服從高斯分布,即 p0~N[ u,σ2],密度函數(shù)為:
其中:xi為第i個(gè)信號(hào)強(qiáng)度值;n為信號(hào)數(shù)。
通過(guò)在同一個(gè)信標(biāo)節(jié)點(diǎn)即同一個(gè)位置采集到n個(gè)RSSI值,根據(jù)采集到的RSSI值與均值u的偏離程度來(lái)判別RSSI值的準(zhǔn)確性。同時(shí),設(shè)定一閾值,當(dāng)發(fā)生小概率的事件或干擾時(shí),若RSSI值偏離均值大于設(shè)定的閾值,則排除該RSSI值;若RSSI值偏離均值小于設(shè)定的閾值,則保留所測(cè)得的RSSI值。
本算法的思路:在每個(gè)未知節(jié)點(diǎn)取n組RSSI值,數(shù)值越大的RSSI值對(duì)未知節(jié)點(diǎn)位置的參考價(jià)值越大。在每個(gè)測(cè)試點(diǎn)取n為100,經(jīng)過(guò)高斯濾波后,對(duì)100個(gè)數(shù)據(jù)由大到小排序。取最大的前80個(gè)數(shù)據(jù),然后將這80個(gè)數(shù)據(jù)分為4組,每組20個(gè)數(shù)據(jù),分別記為A組、B組、C組、D組。對(duì)各組的數(shù)據(jù)求平均值,分別記各組 RSSIA,RSSIB,RSSIC,RSSID。
將上面4組數(shù)據(jù)分別乘以一個(gè)權(quán)重系數(shù),權(quán)重系數(shù)值的大小與4組數(shù)據(jù)平均值的大小有關(guān)。假設(shè)RSSIA>RSSIB>RSSIC>RSSID,則該參考節(jié)點(diǎn)的接收信號(hào)強(qiáng)度的平均值為
其中:α,β,χ,δ值的大小分別設(shè)為0.5,0.3,0.1,0.1。作為未知信標(biāo)節(jié)點(diǎn)在該位置的信號(hào)強(qiáng)度。
在復(fù)雜的室內(nèi)環(huán)境中,根據(jù)未知節(jié)點(diǎn)與信標(biāo)節(jié)點(diǎn)之間的RSSI值估算距離必然存在一定的誤差,本文利用傳統(tǒng)的最小二乘法對(duì)由信號(hào)強(qiáng)度轉(zhuǎn)換后的距離值進(jìn)行修正[5-6]。修正思想是在指定室內(nèi)區(qū)域定位之前,先對(duì)特定區(qū)域環(huán)境進(jìn)行大量實(shí)驗(yàn)定位論證,以獲得該環(huán)境區(qū)域的定位結(jié)果的修正公式。方法步驟如下:
①根據(jù)具體的實(shí)際室內(nèi)情況布置好參考節(jié)點(diǎn)和未知盲節(jié)點(diǎn)。假設(shè)參考節(jié)點(diǎn)坐標(biāo)為(xi,yi),盲節(jié)點(diǎn)坐標(biāo)為(xj,yj),盲節(jié)點(diǎn)和參考節(jié)點(diǎn)的坐標(biāo)是人為設(shè)定的已知值,可根據(jù)兩點(diǎn)之間距離公式得到兩節(jié)點(diǎn)間的實(shí)際布置的距離值。
②根據(jù)接收信號(hào)的信號(hào)強(qiáng)度,通過(guò)與具體的室內(nèi)環(huán)境相對(duì)應(yīng)的距離損耗模型(式(1))來(lái)估算未知節(jié)點(diǎn)到各參考信標(biāo)節(jié)點(diǎn)的距離Yi。
③通過(guò)最小二乘法來(lái)修正實(shí)際距離Xi與估測(cè)距離Yi的關(guān)系。設(shè)測(cè)距誤差值Y與實(shí)際距離值X之間存在線性關(guān)系,則Y=aX+b。根據(jù)最小二乘法原理,偏差平方和最小,則 G(a,b)=最小。通過(guò) G(a,b)分別對(duì)a和b求導(dǎo),令其等于0。則有:
根據(jù)真實(shí)值和誤差值,可求出a和b。那么修正后的距離為
其中:X為修正后的值,Y為距離估計(jì)值。通過(guò)最小二乘法的修正方法對(duì)由RSSI值轉(zhuǎn)換后所對(duì)應(yīng)的距離值進(jìn)行修正,可得到更加精確的距離值。
針對(duì)未知節(jié)點(diǎn)的坐標(biāo)估計(jì)采用最典型的三邊測(cè)量算法,其基本思想是:將這些節(jié)點(diǎn)按RSSI值從大到小的順序排序,選取最大的前3個(gè)參考節(jié)點(diǎn)作為本次定位的參考節(jié)點(diǎn)。通過(guò)最大的3個(gè)RSSI值得出未知節(jié)點(diǎn)到3個(gè)信標(biāo)節(jié)點(diǎn)的距離值。已知固定節(jié)點(diǎn)(即參考節(jié)點(diǎn))的坐標(biāo)(x1,y1),(x2,y2),(x3,y3),設(shè)未知節(jié)點(diǎn)的坐標(biāo)為(x,y)。通過(guò)數(shù)學(xué)兩點(diǎn)之間距離知識(shí)可求導(dǎo)出各參考節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離公式,通過(guò)兩兩相減可求出任意兩圓的交點(diǎn)所在直線。考慮到兩點(diǎn)確定一條直線,3個(gè)圓兩兩相交可確定3條直線,當(dāng)3條直線有共同交點(diǎn)時(shí),方程組有解,即為未知節(jié)點(diǎn)的位置;否則,方程組無(wú)解,放棄本次操作,重新獲取參數(shù)進(jìn)行定位。通過(guò)這3個(gè)距離值計(jì)算出未知節(jié)點(diǎn)的位置[7-8]。
參考節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離公式分別為:
具體步驟:當(dāng)信標(biāo)節(jié)點(diǎn) p1,p2,p3收到未知節(jié)點(diǎn)p發(fā)出的定位信號(hào)強(qiáng)度最大時(shí),根據(jù)RSSI值,可以得到 p1到 p,p2到 p,p3到 p 的距離 d1,d2,d3;經(jīng)過(guò)修正,分別以 p1,p2,p3為圓心,d'1,d'2,d'3為半徑作圓,通過(guò)這3個(gè)圓可確定未知節(jié)點(diǎn)[9]。
1)理想情況下:3圓有共同的交點(diǎn),相交于P點(diǎn),則P點(diǎn)坐標(biāo)就是未知節(jié)點(diǎn)的坐標(biāo)。由于算法操作存在一定的誤差,所以實(shí)際上3個(gè)圓不會(huì)相交于一點(diǎn),而是一小區(qū)域面積。
2)實(shí)際情況下:由于環(huán)境復(fù)雜,存在誤差,所以一般情況下由3圓組成的區(qū)域交點(diǎn)分別為p1(x1,y1),p2(x2,y2),p3(x3,y3)。3 個(gè)圓兩兩相交可確定3條直線,判斷3條直線是否有共同交點(diǎn)。當(dāng)有共同交點(diǎn)時(shí),取Δp1p2p3的質(zhì)心作為未知節(jié)點(diǎn)的估計(jì)位置。即
3)特殊情況:3個(gè)圓兩兩相交可確定3條直線,這3條直線沒(méi)有共同交點(diǎn),即它們沒(méi)有兩兩相交,或者3個(gè)圓沒(méi)有任何交點(diǎn),此時(shí)定位誤差較大,故放棄本次定位,重新獲取RSSI值,重復(fù)以上步驟重新定位,最大定位次數(shù)通過(guò)設(shè)定閾值來(lái)確定。通過(guò)重復(fù)定位可以克服一些突發(fā)和暫時(shí)性的干擾,比如人員的走動(dòng)等。
實(shí)際的實(shí)驗(yàn)環(huán)境比較空曠,沒(méi)有固定或移動(dòng)的障礙物。選擇的場(chǎng)地為長(zhǎng)18 m,寬6 m的實(shí)驗(yàn)室,實(shí)驗(yàn)中偶爾有人員走動(dòng)。最后采用基于 Zigbee協(xié)議的CC2430/CC2431芯片為硬件平臺(tái),利用RSSI信息來(lái)定位待測(cè)點(diǎn)的信息。
實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù)如表1所示。RSSI均值為經(jīng)高斯濾波處理后的RSSI值,然后直接求取RSSI均值。RSSI加權(quán)值為經(jīng)高斯濾波處理后的RSSI值,再通過(guò)本文的加權(quán)算法進(jìn)行處理后所獲得的RSSI值。均值誤差為RSSI均值經(jīng)三邊算法定位所產(chǎn)生的誤差,加權(quán)誤差為RSSI加權(quán)值再經(jīng)過(guò)最小二乘法修正和三邊算法所產(chǎn)生的誤差。
首先利用高斯濾波對(duì)采集的RSSI值進(jìn)行預(yù)處理,然后根據(jù)數(shù)值越大的RSSI值對(duì)未知節(jié)點(diǎn)位置的參考價(jià)值就越大的思想,對(duì)所獲得的RSSI值進(jìn)行加權(quán)處理,再對(duì)轉(zhuǎn)換后的測(cè)距值進(jìn)行最小二乘法修正,最后,根據(jù)圓之間的交點(diǎn)個(gè)數(shù),決定是否重新定位,定位的方法通過(guò)三邊測(cè)量算法來(lái)實(shí)現(xiàn)。在圖2中,實(shí)色曲線為本文的處理方法,虛色曲線為以往對(duì)RSSI取均值的方法。從圖2和表1可看出,本文所采用的測(cè)距室內(nèi)定位算法的誤差范圍控制較理想,基本可以控制在-0.5~0.7 m,RSSI測(cè)距的精度較好。
表1 定位數(shù)據(jù)表
圖2 定位數(shù)據(jù)對(duì)比
本文對(duì)高斯預(yù)處理后所獲得的RSSI值進(jìn)行加權(quán)處理和對(duì)轉(zhuǎn)換后的距離值進(jìn)行最小二乘法修正以提高定位的準(zhǔn)確性。通過(guò)實(shí)驗(yàn)驗(yàn)證了本文方法可提高室內(nèi)定位精度的有效性和可行性,可基本滿足實(shí)際生活中的要求。由于本算法不需要增添額外的硬件開(kāi)銷,所以具有較廣的實(shí)際應(yīng)用范圍和較高的應(yīng)用價(jià)值。
[1]劉文娟.基于RSSI測(cè)距的WSN定位系統(tǒng)設(shè)計(jì)[D].大連:大連理工大學(xué),2010.
[2]徐世武,王平.ZigBee技術(shù)中基于RSSI測(cè)距的定位算法研究[J].福州:福建師范大學(xué),2012.
[3],Yaghmaee M H,Chiti zadeh J.Three dimension QoS deviation based scheduling in adaptive wireless networks[C]//MProceedings of the 21st International ConferenceAdvanced Networking and Applications.Washington DC:IEEE Computer Society,2007:588-595.
[4]徐久強(qiáng),劉偉.基于RSSI的WSN抗干擾定位算法[D].沈陽(yáng):東北大學(xué),2010:647-648.
[5]章堅(jiān)武,張璐.基于 ZigBee的RSSI測(cè)距研究[D].浙江:杭州電子科技大學(xué),2009(2):286-287.
[6]石為人,熊志廣,許磊.一種用于室內(nèi)人員定位的RSSI定位算法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(17):232-235.
[7]趙昭,陳小惠.無(wú)線傳感器網(wǎng)絡(luò)中基于RSSI的改進(jìn)定位算法[J].傳感技術(shù)學(xué)報(bào),2009:391-393.
[8]徐日明,莊長(zhǎng)遠(yuǎn),俞斌.基于 RSSI的動(dòng)態(tài)修正室內(nèi)無(wú)線定位算法[D].南京:南京航空航天大學(xué),2010:686-688.
[9]臧建魁,卿粼波.基于RSSI和LQI分段距離估計(jì)改進(jìn)算法[J].通信技術(shù),2011,11(44):100-102.