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