基于RSSI的室內(nèi)無線網(wǎng)絡(luò)定位技術(shù)研究
引言
近年來,隨著無線技術(shù)的發(fā)展,對室內(nèi)外環(huán)境中人員和物體的追蹤定位引起了研究者的廣泛研究,基于位置服務(wù)(LBS)越來越受到人們的關(guān)注。位置服務(wù)即根據(jù)服務(wù)消費(fèi)者所在地理位置的不同提供對應(yīng)的信息服務(wù),作為LBS的核心技術(shù)之一,室內(nèi)定位是其重要的組成部分。因?yàn)榭梢詮V泛用于室內(nèi)路由、治安、消防等方面,因此定位算法的研究具有重要意義。在室內(nèi)定位系統(tǒng)開發(fā)研究方面,常用的方法是在室內(nèi)環(huán)境下建立小范圍定位網(wǎng)絡(luò)。目前,越來越多的定位直接利用現(xiàn)成的無線通訊模塊來估計對象節(jié)點(diǎn)(盲節(jié)點(diǎn))的位置,應(yīng)運(yùn)而生的ZigBee技術(shù)以低成本、低功耗成為室內(nèi)定位的首選。本文以ZigBee組建基本的網(wǎng)絡(luò),通過節(jié)點(diǎn)接收RSSI值的大小來進(jìn)行距離計算,最終通過距離以及參考節(jié)點(diǎn)的位置來計算定位節(jié)點(diǎn)(盲節(jié)點(diǎn))位置。
1 無線網(wǎng)絡(luò)定位技術(shù)
在無線定位中,有基于測距和非測距兩種方式。前者需要測量相鄰節(jié)點(diǎn)間的絕對距離或方位,并利用節(jié)點(diǎn)間的實(shí)際距離來計算未知節(jié)點(diǎn)的位置;后者無需測量節(jié)點(diǎn)的絕對距離或方位,而是利用節(jié)點(diǎn)間的估計距離計算節(jié)點(diǎn)位置?;跍y距的算法主要包含以下幾種:三邊測量、三角測量、極大似然估計等;基于非測距的算法主要有質(zhì)心算法、DV-Hop算法、D_distance算法、凸規(guī)劃算法等。對定位算法的性能評價指標(biāo)主要有定位精度、節(jié)點(diǎn)密度、容錯和自適應(yīng)性、功耗和代價、網(wǎng)絡(luò)規(guī)模等幾個部分。綜合以上因素以及結(jié)合現(xiàn)有的設(shè)備,本文選用基于RSSI測距的定位方式。其流程圖如圖1所示。
從圖1可以看出定位由兩部分組成:一是通過RSSI測距;二是根據(jù)距離以及參考節(jié)點(diǎn)位置計算盲節(jié)點(diǎn)位置。
2 RSSI測距模型
2.1 模型確立
無線信號傳輸中普遍采用的理論模型為Shadowing模型。該模型為:
式中:do是參考距離;po是距離為do時接收到的信號強(qiáng)度,其中還包含了遮蔽外衰減或環(huán)境造成的損耗參考(中值);d是真實(shí)距離;ζ是以dB為單位的遮蔽因子,其均值為O,均方差為σdb(dB)正態(tài)隨機(jī)變量;p是接收信號強(qiáng)度;n是路徑損耗指數(shù),它的值依賴于環(huán)境和建筑物的類型。在實(shí)際測量中,選用以下的模型:
即不統(tǒng)計遮擋因子對RSSI的影響,在實(shí)際環(huán)境下對RSSI影響最大的是非視距的影響。其中,射頻參數(shù)A被定義為用dBm表示的距離發(fā)射器1 m接收到的平均能量絕對值,也就是距發(fā)射節(jié)點(diǎn)1 m處的接收信號強(qiáng)度;n為信號傳輸常數(shù),與信號傳輸環(huán)境有關(guān);d為距發(fā)射節(jié)點(diǎn)的距離。
2.2 參數(shù)優(yōu)化
在使用A和n進(jìn)行距離計算時,首先要面臨的一個問題是A和n的取值問題。A和n的取值不同,對測距的誤差影響很大。為了使模型能夠盡量真實(shí)地反映出當(dāng)前室內(nèi)環(huán)境中的傳播特性,保證RSSI測距的精度,需要對A和n進(jìn)行優(yōu)化,得到最適合該室內(nèi)環(huán)境情況的參數(shù)值。
通過線性回歸分析來估計參數(shù)A和n的值,假設(shè)從室內(nèi)環(huán)境得到的實(shí)驗(yàn)測量數(shù)據(jù)為(RSSIi,di),i=1,2,…,n,RSSIi表示在距離di上所對應(yīng)的RSSI測量值。
以實(shí)驗(yàn)室走廊為例,測得100組數(shù)據(jù),代入上述公式得出A=4l,n=2.3。圖2是參數(shù)優(yōu)化后的RSSI測距模型曲線。在圖中可以看出,根據(jù)線性回歸分析可以很好地擬合出適應(yīng)當(dāng)前環(huán)境的模型曲線。
2.3 RSSI濾波處理
信號強(qiáng)度的定位算法中信號強(qiáng)度值隨環(huán)境的改變有很高的靈敏度,這會限制測量的準(zhǔn)確度。事實(shí)上信號強(qiáng)度與距離之間的關(guān)系很不讓人滿意,在環(huán)境中存在很大的波動性。在室內(nèi)環(huán)境下實(shí)測得到的RSSI與節(jié)點(diǎn)間距離的關(guān)系曲線如圖2所示。當(dāng)傳輸距離較近的時候,RSSI值衰減得較快;當(dāng)傳輸距離越遠(yuǎn),衰減得越慢,接收強(qiáng)度對傳輸距離的變化表現(xiàn)不明顯。在實(shí)際中,某一時間段內(nèi)接收節(jié)點(diǎn)可以收到n個RSSI值,由于非視距和多徑的影響,導(dǎo)致這些RSSI值具有很大的波動性,在代入公式進(jìn)行計算之前,先進(jìn)行濾波處理,得到一個比較準(zhǔn)確的值,然后再進(jìn)行計算。
本文采用高斯濾波模型進(jìn)行RSSI濾波。引入高斯模型進(jìn)行處理的原則是:在自然現(xiàn)象和社會現(xiàn)象中,大量隨機(jī)變量都服從或近似正態(tài)分布,如材料性能、零件尺寸、化學(xué)成分、測量誤差、人體高度等。
高概率發(fā)生區(qū),選擇概率大于O.6(O.6的取值是根據(jù)工程中的經(jīng)驗(yàn)值)的范圍。經(jīng)過高斯濾波后,RSSI的取值范圍為[0.15σ+μ,3.09 σ+μ]。其中:
把該范圍內(nèi)的RSSI值全部取出,再求幾何平均值,即可得到最終的RSSI值。
在d=1 m處,采集50組RSSI值,進(jìn)行高斯濾波處理。
如圖3所示,濾波前RSSI波動比較大,濾波后比較平滑。濾波前|RSSI|的平均值為38.9,計算距離d=O.71 m;濾波后|RSSI|的平均值為39.42,計算距離d=O.81 m。顯然,高斯濾波能很好地提高測距精度。
3 定位算法
假設(shè)無線定位網(wǎng)絡(luò)中有N個已知位置的參考節(jié)點(diǎn),坐標(biāo)為(x1,y1),(x2,y2),…,(xN,yN),RSSI測量值為(RSSI1,RSSI2,…,RSSIN)。通過利用無線信號傳播衰落模型計算得到待定位節(jié)點(diǎn)到四個已知位置的參考節(jié)點(diǎn)的距離為R1,R2,…,RN,則可以得到以下方程:
最終定位算法的研究就是求解該方程。在求解(x,y)過程中,選用基于泰勒級數(shù)展開迭代法進(jìn)行計算。選用泰勒級數(shù)的原因基于以下幾個方面:
(1)無需提供測距差測量值誤差的先驗(yàn)信息。
(2)可以應(yīng)用于兩個以上數(shù)目距離差測量的定位估計。
(3)對距離差統(tǒng)計沒有特殊要求。
(4)在適當(dāng)?shù)木嚯x差噪聲水平上提供較準(zhǔn)確的定位估計。
使用泰勒級數(shù)進(jìn)行定位計算,首先面臨的一個問題即泰勒級數(shù)展開需要一個與實(shí)際位置差距不大的初始值,初始值的選擇越接近真實(shí)值,越可以保證算法的收斂性以及實(shí)時性。本文采用極大似然估計法來獲取初始值,求得初始值公式為:
式中:
根據(jù)取得的值作為Taylor級數(shù)展開的循環(huán)初值,然后用Taylor級數(shù)展開,進(jìn)行矩陣計算,并反復(fù)迭代求精,直到誤差滿足預(yù)先設(shè)定的門限,得出最終的位置坐標(biāo)。
式中:
在每一次遞歸中,令,重復(fù)以上過程,直到△x,△y足夠小,滿足一預(yù)先設(shè)定的門限ε,即(△x+△y)<ε,此時的(x,y)即為定位節(jié)點(diǎn)的估計位置。
4 實(shí)驗(yàn)驗(yàn)證
實(shí)驗(yàn)是在實(shí)驗(yàn)室走廊(4 m×30 m)進(jìn)行的,實(shí)驗(yàn)環(huán)境如圖4所示。選用的是ZigBee硬件平臺作為通信平臺,該平臺CC2431自帶定位引擎,可以實(shí)現(xiàn)位置估計,并通過實(shí)驗(yàn)比較兩種算法的差異。
CC2431使用的三邊測量法進(jìn)行位置計算,采用均值濾波對RSSI進(jìn)行濾波處理。ZigBee開發(fā)平臺如圖5所示。
在實(shí)驗(yàn)環(huán)境中布置4個節(jié)點(diǎn)作為參考節(jié)點(diǎn),位置分別定義為(O,0),(0,4),(30,O),(30,4)。確定A和n的值,實(shí)驗(yàn)環(huán)境與圖2的實(shí)驗(yàn)一樣。可以得知,A=41,n=2.3。在環(huán)境中任取31個點(diǎn),分別測得該點(diǎn)的實(shí)際位置(x,y);使用CC2431得到的位置(x’,y’),使用本文提
出的算法得到位置(x",y")。比較兩個位置的誤差大小d'與d",如圖6所示。
其中:
由圖6可以看出,經(jīng)過線性回歸分析和高斯濾波,然后用泰勒級數(shù)展開,最終求得位置誤差大約在1 m左右,而CC2431的定位誤差在2~3 m左右。本文提出的定位算法較好地改善了定位效果,使定位誤差主要集中在1 m左右,基本能夠滿足室內(nèi)定位對誤差的要求,提高了定位精度。
5 結(jié)語
對基于RSSI的室內(nèi)定位算法以及RSSI測距進(jìn)行了全面分析。通過線性回歸分析對參數(shù)進(jìn)行優(yōu)化,高斯模型對RSSI進(jìn)行濾波,提高了測距的精度。最后采用泰勒級數(shù)展開法進(jìn)行位置計算,比較了CC2431的定位算法,減小了定位誤差,達(dá)到了提高定位精度的目的,證實(shí)了定位算法的優(yōu)越性。