- 探討無線傳感器網(wǎng)絡(luò)中基于RSSI的節(jié)點(diǎn)距離
- 利用BP神經(jīng)網(wǎng)絡(luò)
- 通過對樣本的預(yù)處理
引言
隨著無線傳感器網(wǎng)絡(luò)研究的不斷深入,應(yīng)用已經(jīng)逐漸成為人們關(guān)注的焦點(diǎn)。各種在特定應(yīng)用背景下的研究層出不窮,如環(huán)境監(jiān)測、目標(biāo)跟蹤、安全監(jiān)控等領(lǐng)域。位置信息對傳感器網(wǎng)絡(luò)的監(jiān)測活動(dòng)至關(guān)重要,事件發(fā)生的位置或獲取信息的節(jié)點(diǎn)位置是傳感器網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)測消息中包含的重要信息,了解傳感器節(jié)點(diǎn)位置信息不僅可以獲取路由信息,而且可以進(jìn)行節(jié)點(diǎn)定位等。測距的誤差在很大程度上決定了目標(biāo)定位及跟蹤的誤差。常用的定位方法必須測量節(jié)點(diǎn)間的距離,一般測距方式有紅外線、GPS、超聲波和接收信號強(qiáng)度指示器(RSSI)等。
紅外線、GPS和超聲測距都需要額外的硬件,增加了節(jié)點(diǎn)的硬件成本和尺寸。GPS和紅外線測距誤差較大,而利用超聲方法測距很精確,測距誤差只有10 cm,但是受氣溫、濕度等的影響較大,不適合在室外使用?;赗SSI的定位無需額外硬件,利用對接收無線信號的強(qiáng)度判斷,推導(dǎo)收發(fā)節(jié)點(diǎn)間的距離,計(jì)算接收無線信號強(qiáng)度是商用無線收發(fā)芯片具備的功能。基于RSSI的測距提供了最廉價(jià)的定位方法,而且節(jié)點(diǎn)沒有添加任何部件?;诔暤臏y距雖然定位精度較高,但是需要添加硬件、增加節(jié)點(diǎn)成本和尺寸。所以,基于RSSI的測距是無線傳感器網(wǎng)絡(luò)定位較常采用的方法。首先對RSSI進(jìn)行預(yù)處理,再通過預(yù)測模型預(yù)測距離的值,不但提高了基于RSSI的測距精度,而且實(shí)現(xiàn)了低成本的測距。
1 BP網(wǎng)絡(luò)的模型結(jié)構(gòu)與算法
BP網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)中采用誤差反傳算法作為其學(xué)習(xí)算法的前饋網(wǎng)絡(luò),通常由輸入層、輸出層和隱含層(一層或多層)構(gòu)成。層與層之間的神經(jīng)元采用全互連的連接方式,通過相應(yīng)的網(wǎng)絡(luò)權(quán)系數(shù)w相互聯(lián)系,每層內(nèi)的神經(jīng)元之間沒有連接。圖1所示為具有一個(gè)隱含層的BP網(wǎng)絡(luò)模型。其中:LA為BP神經(jīng)網(wǎng)絡(luò)的輸入層,LB為隱層,LC為輸出層,Wir為隱層與輸入層的權(quán)值,Vrj為輸出層與隱層的權(quán)值。
2.1 RSSI值獲取
實(shí)驗(yàn)在空曠的無障礙物的廣場進(jìn)行。基于Tiny()S系統(tǒng),以克爾斯博的Iris節(jié)點(diǎn)為實(shí)驗(yàn)平臺(tái),0號節(jié)點(diǎn)為固定節(jié)點(diǎn),用于接收數(shù)據(jù)。發(fā)送和接收節(jié)點(diǎn)均使用短桿狀天線,節(jié)點(diǎn)放置高度為2 m左右。固定0號節(jié)點(diǎn),移動(dòng)發(fā)射節(jié)點(diǎn)。經(jīng)過大量的實(shí)驗(yàn)分析得出,RSSI在10 m的范圍內(nèi)隨著距離的增加變化比較明顯,而10 m以后,RSSI值隨距離變化不明顯。如果測量距離超過10 m,則測距的精度得不到保證,所以此實(shí)驗(yàn)的測試范圍限定在0~10 m。實(shí)驗(yàn)人員拿著移動(dòng)節(jié)點(diǎn),從固定節(jié)點(diǎn)處沿著直線均勻走動(dòng),當(dāng)走到10 m處停止接收數(shù)據(jù),記錄整個(gè)連續(xù)移動(dòng)過程的實(shí)驗(yàn)數(shù)據(jù)。
3個(gè)工作人員分別拿著移動(dòng)終端在0~10 m的范圍內(nèi)勻速前進(jìn),得到的RSSI值與距離的關(guān)系如圖2所示。
由圖2可以看出,不同的人員拿著移動(dòng)終端前進(jìn),RSSI與距離的關(guān)系曲線基本一致,說明RSSI值與距離的關(guān)系符合一定的衰減規(guī)律。
在相同的實(shí)驗(yàn)平臺(tái)下,在0~10 m的范圍內(nèi),每間隔0.2 m或者0.3 m記錄RSSI值,每個(gè)距離均接收100個(gè)左右的數(shù)據(jù)包,對RSSI先進(jìn)行均值處理,然后得出RSSI值與距離的關(guān)系曲線如圖3所示。
對比圖2和圖3得出,停頓走比連續(xù)走時(shí)的RSSI值與距離的關(guān)系曲線更平滑,衰減更慢。因?yàn)檫B續(xù)走的時(shí)候,信號會(huì)受到人身體走動(dòng)或者旁邊干擾物的影響,出現(xiàn)不同程度的突變。為了確保距離預(yù)測值的精度,因此以停頓測量的數(shù)據(jù)作為測試樣本。
2.2 RSSI值濾波處理
實(shí)驗(yàn)獲取的RSSI值與距離的關(guān)系曲線還不夠平滑,為了使樣本的質(zhì)量更高、訓(xùn)練效果更好,先對RSSI值進(jìn)行濾波處理,分別進(jìn)行限幅濾波處理、遞推平均濾波處理和限幅平均濾波處理。圖4為3種濾波方式的比較。
由圖4可以得出,限幅平均濾波的效果最好,因此以限幅濾波后的數(shù)據(jù)作為訓(xùn)練樣本。
3 BP網(wǎng)絡(luò)模型的建立
以限幅濾波后的數(shù)據(jù)作為訓(xùn)練樣本。以RSSI作為輸入,以距離作為輸出,一般的預(yù)測問題通過單隱層的BP網(wǎng)絡(luò)實(shí)現(xiàn),這里也是單隱層。
(1)數(shù)據(jù)歸一化處理
為了在Matlab中計(jì)算方便,需要對數(shù)據(jù)進(jìn)行歸一化處理。這里根據(jù)現(xiàn)有的數(shù)據(jù)情況,分別對輸入和輸出量進(jìn)行歸一化處理。歸一化的代碼如下:
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)
其中p為輸入變量,t為輸出變量。
(2)BP網(wǎng)絡(luò)訓(xùn)練
網(wǎng)絡(luò)中間層的神經(jīng)元傳遞函數(shù)采用S型的正切函數(shù)logsig,輸出層神經(jīng)元傳遞函數(shù)采用線性函數(shù)purelin,采用traingdx函數(shù)進(jìn)行訓(xùn)練,當(dāng)訓(xùn)練141次后達(dá)到0.01的誤差要求。
[page]
4 模型預(yù)測結(jié)果及與經(jīng)驗(yàn)公式值的比較
為了驗(yàn)證測試結(jié)果的可靠性,根據(jù)網(wǎng)絡(luò)訓(xùn)練的結(jié)果,把測試結(jié)果與真實(shí)值進(jìn)行對比。為了突出該方法的優(yōu)越性,與經(jīng)驗(yàn)公式計(jì)算出來的距離值進(jìn)行比較。表1為模型預(yù)測值、經(jīng)驗(yàn)公式值與真實(shí)值的比較。
由表1可以得出,由BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測的距離值與經(jīng)驗(yàn)公式計(jì)算出來的距離值相比,整體誤差較小。經(jīng)驗(yàn)公式計(jì)算的距離誤差最大為2.7351m,最小誤差為0.5338m,而由模型預(yù)測的距離誤差最大為0.7976m,最小誤差為0.0232m,測距的精度明顯提高了很多。
5 結(jié)論
BP神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的自學(xué)習(xí)、自組織及自適應(yīng)能力,具有高度非線性函數(shù)映射功能,通過對樣本的預(yù)處理,可以提高訓(xùn)練結(jié)果的精度。因此,樣本的好壞直接影響訓(xùn)練結(jié)果。節(jié)點(diǎn)RSSI值的隨機(jī)性較大,會(huì)隨著環(huán)境及其他干擾的影響發(fā)生突變。因此先對RSSI值進(jìn)行濾波處理,濾掉突變的數(shù)據(jù)再進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,預(yù)測結(jié)果就能達(dá)到較理想的水平。這適用于不同的場合,提高了測距精度,從而進(jìn)行精確定位。