路繼軍,馬松齡,賈昭
(西安建筑科技大學機電工程學院,陜西西安710055)
基于RSSI(Radio Signal Strength Indicator)的測距技術是一項低成本和低復雜度的距離測量技術,被廣泛應用于基于測距的無線傳感器網絡的定位技術中。RSSI 是接收信號的強度指示,由于無線通信的信號隨著距離的增大而衰減,因此RSSI 可以指示節點之間的距離。當通信距離遠大于天線體積的時候,理想的RSSI 同通信距離的平方成反比。假設Pr(d)表示距離為d 的情況下接收信號的強度,則Pr(d)服從Friis 方程:

其中:Pt表示發送功率,Gt和Gr分別表示發送和接受的天線增益,λ 表示波長。
在基于測距的定位系統中,測距的準確性是定位的基礎,但在實際系統中,測距的信息由于環境的影響跳動較大,此時不能夠滿足Friis 方程,若繼續用其進行測量計算將存在較大誤差,因此文中提出了采用RBF 神經網絡的方法消減由于外部環境引起測距誤差的方法,來提高測距的精度。
每一個RSSI(文中的RSSI 是通過ZigBee 獲取的)對應一個距離D(該距離實測),這些信息都是在一個復雜的室內環境中獲得,將RSSI 和距離D 作為一組樣本,獲得該環境下足夠多的此類樣本放入RBF 徑向基函數神經網絡,訓練該網絡使其自適應該環境,這樣的話該網絡就具備了映射該環境下的距離和強度的信息關系了。
文中用的硬件設施是ZigBee 模塊,在一個實驗室內布置若干個發送模塊和接收模塊,獲取接收模塊和發送模塊之間的RSSI 值并測量它們之間的距離,然后隨機移動它們之間的距離重復上一個動作,盡量使測量范圍覆蓋整個測量區域,獲得的數據見表1。

表1 實際距離對應的RSSI(部分)
1.2.1 RBF 神經網絡
徑向基函數(Radial Basis Function,RBF)神經網絡是由J MOODY 和C DARKEN 在20世紀80年代末提出的一種神經網絡,它是具有單隱層的三層前饋網絡。由于它模擬了人腦中局部調整、相互覆蓋接收域(或稱感受野,Receptive Field)的神經網絡結構,因此,RBF 網絡是一種局部逼近網絡,它能夠以任意精度逼近任意連續函數,特別適合于曲線擬合和解決分類問題。
1.2.2 RBF 網絡結構
RBF 網絡的結構與多層前向網絡類似,它是一種三層前向網絡。第一層即輸入層由信號源節點組成;第二層為隱含層,隱單元數視所描述的問題的需要而定,隱單元的變換函數是RBF,它是對稱中心徑向對稱且衰減的非線性函數;第三層為輸出層,它對輸入模式的作用做出響應。由于輸入到輸出的映射是非線性的,而隱含層空間到輸出空間的映射是線性的,從而可以大大加快學習速度并避免局部極小問題。
1.2.3 RBF 網絡的逼近
采用RBF 網絡逼近一對象的結構如圖1所示,網絡具有n 個輸入節點,p 個隱節點,i 個輸出節點。其中p 為訓練樣本集的樣本數量。

圖1 徑向基網絡結構
輸入層的任一節點用i 表示,隱層的任一節點用k 表示。對各層的數學描述如下:X = [x1,x2,…,xn]T,為網絡輸入向量;G(Xj)(j =1,2,…,p)為任一隱節點的激活函數,成為“基函數”,一般選用格林函數;W 為輸出全矩陣,其中wjk(j =1,2,…,p;k=1,2,…,l)為隱層第j 個節點與輸出層第k 個節點之間的突觸權值;Y =(y1,y2,…,yl)T為網絡輸出;圖中輸出層節點中的∑表示輸出層神經元采用線性激活函數。
MATLAB 是一款強大的工程計算和仿真軟件,具有強大的科學計算與可視化功能,簡單易用。實驗采用的MATLAB2009,其神經網絡工具箱中包含了許多用于RBF 網絡分析與設計的函數,主要包括RBF 網絡的創建函數、神經元上的傳遞函數、RBF 網絡的學習函數和網絡訓練函數,以及性能函數、顯示函數。建立網絡模型的步驟是:(1)建立輸入輸出矩陣;(2)設置訓練參數;(3)訓練網絡;(4)對輸入矩陣進行仿真;(5)繪制仿真曲線;(6)輸出數據。
神經網絡里的模型都是運用相關函數建立的,主要有newrb()、newrbe()、newgrnn()函數。
樣本的輸入以10 m 范圍內的RSSI 值與距離的對應關系表為準,做10 m 內0.1 m 為刻度共100 個數據的輸入矩陣,對newgrnn()函數進行訓練。
應用newgrnn()函數構建一個廣義回歸神經網絡,對于離散數據點的情況,散布常數spread 的選取比輸入向量之間的距離1 稍小一些(這里取0.75),散布常數越小,數據擬合越好,但是曲線光滑度要差些,因此后面擬合出的曲線看起來不是很光滑。
網絡格式:
Spread=0.75;
Net=newgrnn(P,T,spread);
其中:P 為RSSI 值矩陣,T 為對應距離的矩陣。
樣本進行訓練并繪制仿真曲線。訓練函數的部分程序:
A=sim(net,P);
outputline=plot(P,A,'linewidth',
4,'color',[0 0 0]);
將采集到的數據放入到設置好的網絡里面對其進行有導師指導的訓練,訓練結果如圖2所示。

圖2 函數逼近曲線
2.3.1 輸入RSSI 預測距離
給訓練好的網絡中輸入一組RSSI 值使其預測出對應的距離并與實際距離作比較,分析其預測能力。
部分程序如下:
P=[45 50 55 60 65 70];
a=sim(net,P);
Plot(P,a,'o','markersize',10,'color',[1 0 0]);其中:P 為輸入的RSSI 值,a 為預測的距離。預測結果如圖3所示,表2 為預測值與實際值的對比。

圖3 預測結果圖

表2 預測值與實測值對比
2.3.2 預測分析
從上圖3 及表2 中可以看出:在10 m 范圍內,網絡預測過程中絕對誤差最大僅為0.1 662 m,相對誤差最大為5.4%。與傳統的通過Friis 方程直接求出的最大絕對誤差為3 m、相對誤差超過30%的測距能力有了明顯的提升。
以RSSI 測距優化思想為指導,在不增加定位硬件成本的基礎上,以提高測距精度和測距穩定性為主要目標,首先通過實驗分析了環境干擾對RSSI 測距的影響,通過RBF 神經網絡對某一具體環境進行學習,學習后的網絡蘊含了該環境下的RSSI 和距離之間的映射關系,該網絡就具備了通過RSSI 預測該環境下的距離的能力。通過仿真和實驗可以看出:該網絡具有很高的預測精度及較好的穩定性。文中的方法在一定程度上解決了因室內環境復雜多變導致距離-損耗模型失真而給定位帶來較大誤差的問題。
【1】任維政,徐連明,鄧中亮,等.基于RSSI 的測距差分修正定位算法[J].傳感技術學報,2008,21(7):1247-1250.
【2】周艷.基于RSSI 測距的傳感器周絡定位算法研究[J].計算機科學,2009,36(4):119-121.
【3】張德豐.MATLAB 神經網絡應用設計[M].北京:機械工業出版社,2009:168-180.
【4】王秀悔,劉乃安.利用2AGHz 射頻芯片CC2420 實現Zigbee 無線通信設計[J].國外電子元器件,2005(3):59-62.
【5】楊鳳,史浩山,朱靈波,等.一種基于測距的無線傳感網絡職能定位算法[J].傳感技術學報,2008,27(1):35-144.
【6】王福豹,史龍,住豐原.無線傳感器網絡中的自身定位系統和算法[J].軟件學報,2005,16(5):857 一868.