周向
摘要:室內(nèi)定位技術(shù)在現(xiàn)代生活中的作用越來越明顯,而室內(nèi)定位技術(shù)的關(guān)鍵在于室內(nèi)定位算法, 通過比較RSSI(Received Signal Strength Indication, RSSI)測距算法,和BP神經(jīng)網(wǎng)絡(luò)指紋定位法,結(jié)果表明BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)指紋定位算法在定位精度上高于傳統(tǒng)的RSSI測距算法,但是指紋法卻不具備RSSI測距算法的易移植性。
關(guān)鍵詞:室內(nèi)定位;RSSI測距算法;BP神經(jīng)網(wǎng)絡(luò)指紋定位
中圖分類號:TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)28-0231-03
1 引言
已知的定位技術(shù),如全球定位系統(tǒng)(Global Positioning System, GPS)[1]和北斗衛(wèi)星導(dǎo)航系統(tǒng)(Bei Dou Navigation Satellite System, BDS)[2]都是適用范圍很廣的室外定位技術(shù),但是基本不適用于室內(nèi)定位。由于科技的發(fā)展,人們對室內(nèi)定位技術(shù)的迫切需求,于是大量學(xué)者開展了關(guān)于室內(nèi)無線定位技術(shù)的研究。主要分為兩大類:傳統(tǒng)定位算法和指紋法。
傳統(tǒng)定位方法有:到達(dá)時(shí)間(Time of Arrival, TOA)[3]、到達(dá)時(shí)間差(Time Difference of Arrival, TDOA)[4]、質(zhì)心法[5],信號接收強(qiáng)度 [6]等。目前使用RSSI值測距定位的算法較多,該技術(shù)主要使用RF(Radio Frequency)信號,根據(jù)接收信號強(qiáng)度值計(jì)算信號的傳播損耗,按照相應(yīng)傳播損耗模型將傳播損耗值轉(zhuǎn)化為距離。然后根據(jù)三邊測量法,估算對應(yīng)坐標(biāo)。
指紋法:BP神經(jīng)網(wǎng)絡(luò)指紋定位法[7],卷積神經(jīng)網(wǎng)絡(luò)指紋法[8]等。指紋法具有較好的定位精度,但是需要較強(qiáng)的計(jì)算能力。但不便于移植,一旦環(huán)境的改變,則需要重新匹配指紋。
2 RSSI測距
2.1基本原理
基于RSSI值測距是獲取無線網(wǎng)絡(luò)節(jié)點(diǎn)位置信息的重要手段,常用的無線信號傳播損耗模型為[6]:
[PLd=PT-PLd0-10ηlgdd0+xσdB,xσ~N0,σ2](1)
其中,d表示發(fā)射結(jié)點(diǎn)與接收節(jié)點(diǎn)之間的距離,[PLd]表示閱讀器收到距離為d(m)時(shí)標(biāo)簽的RSSI值,d0為基準(zhǔn)距離通常為1(m),[PT]為信號發(fā)射功率,[PLd0]為基準(zhǔn)距離RSSI值,[η]為路徑損耗指數(shù),一般取[2~4]。[xσ]表示均值為0,方差為[σ2]的高斯噪聲,單位是dB,[σ2]通常取值[4≤σ2≤10]。
2.2 RSSI測距過程為:
1)信標(biāo)節(jié)點(diǎn)發(fā)射信號;
2)未知節(jié)點(diǎn)接收信標(biāo)節(jié)點(diǎn)發(fā)射的信號;
3)通過發(fā)射信號強(qiáng)度與接收信號強(qiáng)度的對比估算出信標(biāo)節(jié)點(diǎn)到未知節(jié)點(diǎn)之間的距離;
4)當(dāng)一個(gè)未知節(jié)點(diǎn)得到至少三個(gè)到未知節(jié)點(diǎn)之間的距離信息時(shí),使用三邊測量法求出該未知節(jié)點(diǎn)的估計(jì)坐標(biāo)。
2.3三邊測量定位[9]
如圖1所示,通過RSSI測距的式(1)可求出未知節(jié)點(diǎn)q到3個(gè)信標(biāo)節(jié)點(diǎn)[Ax1,y1,Bx2,y2,C(x3,y3)]之間的距離[d1,d2…dn],用三邊測量法求出未知節(jié)點(diǎn)q的坐標(biāo)[xq,yq]。
分別以A,B,C為圓心,以未知節(jié)點(diǎn)到該三點(diǎn)的距離為半徑做圓,如圖1所示,圖中陰影部分即為位置節(jié)點(diǎn)的坐標(biāo)區(qū)域,為使誤差較小,一般取陰影部分質(zhì)心作為未知節(jié)點(diǎn)的估算坐標(biāo)。
3 指紋法-BP神經(jīng)網(wǎng)絡(luò)定位基本原理
3.1指紋法基本原理
指紋法是用信號強(qiáng)度RSS(Received Signal Strength)作為特診的,通過匹配相應(yīng)坐標(biāo)處的RSS信息來確定未知節(jié)點(diǎn)坐標(biāo)的一種方法。一般分為離線訓(xùn)練和在線測試兩個(gè)階段。
其中離線階段主要是構(gòu)建指紋數(shù)據(jù)庫,將實(shí)驗(yàn)區(qū)域坐標(biāo)化,將實(shí)驗(yàn)區(qū)域及周圍均勻布置天線。然后根據(jù)精度要求,在測量區(qū)域內(nèi)各個(gè)坐標(biāo)處的信號強(qiáng)度并記錄,既指紋信息由各個(gè)測量點(diǎn)的實(shí)際坐標(biāo)信息和該位置處的RSS信息做成。
在線定位階段:用戶在實(shí)驗(yàn)區(qū)域內(nèi)任意位置,提交該位置的RSS信息,然后神經(jīng)網(wǎng)絡(luò)算法通過匹配指紋數(shù)據(jù)庫得到該用戶最有可能的位置信息。
3.2 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)即誤差反向傳播網(wǎng)絡(luò),它采用前饋神經(jīng)網(wǎng)絡(luò)模型[10],使得多層感知機(jī)有了強(qiáng)大的計(jì)算能力,是自出現(xiàn)以來使用最為廣泛的一種神經(jīng)網(wǎng)絡(luò)模型。因此本文結(jié)合BP神經(jīng)網(wǎng)絡(luò)模型與RSS進(jìn)行定位。
BP網(wǎng)絡(luò)訓(xùn)練步驟為:
1) 各層權(quán)值和閾值的初始化,設(shè)置循環(huán)次數(shù)和誤差代價(jià)函數(shù);
2) 提供輸入矩陣和教師信號,將得到的輸出矩陣與教師信號比較;
3) 計(jì)算輸出層誤差和隱藏層誤差值;
4) 根據(jù)誤差修正輸出層和隱藏層權(quán)值;
5) 每次訓(xùn)練后判斷指標(biāo)是否達(dá)到精度要求。如果滿足轉(zhuǎn)到第6)步,不滿足回到第2)步;
6) 停止。
4實(shí)驗(yàn)數(shù)據(jù)分析
仿真實(shí)驗(yàn)區(qū)域面積為100米*100米,選取空曠地區(qū)的路徑損耗指數(shù)[η] =2.0, 信噪比為20dB,取RSSI噪聲為[xσ~N0,4]。節(jié)點(diǎn)通信半徑為20米。實(shí)驗(yàn)次數(shù)50次,結(jié)果取其平均值。平均誤差定義為:
[E=i=1NEiN]? ? ? ? ? ? ? ? ? ? ? ? ? (2)
其中,N為實(shí)驗(yàn)次數(shù),節(jié)點(diǎn)i的位置估計(jì)絕對誤差為:
[Ei=xi-xi2+yi-yi2]。
本文使用的BP神經(jīng)網(wǎng)絡(luò),只包含三層,即輸入層,隱藏層,輸出層。其中,輸入層神經(jīng)元個(gè)數(shù)由信號發(fā)射天線個(gè)數(shù)確定;隱藏層神經(jīng)元個(gè)數(shù)由Kolmogorov定理求出,隱層結(jié)點(diǎn)數(shù)s=2n+1(n為輸入層結(jié)點(diǎn)數(shù));輸出層為2個(gè)神經(jīng)元,即輸出坐標(biāo)(X,Y)的值。選取sigmoid函數(shù)作為激活函數(shù)。
1)RSSI測距算法
①RSSI測距算法,節(jié)點(diǎn)總數(shù)為200個(gè),未知節(jié)點(diǎn)總數(shù)和節(jié)點(diǎn)總數(shù)之比在20%~80%之間變化。
從圖2中可以看出當(dāng)信標(biāo)節(jié)點(diǎn)比例在[20%~80%]之間變化時(shí),RSSI測距定位算法的平均定位誤差在逐步下降,從信標(biāo)節(jié)點(diǎn)比例為20%時(shí)3.47的平均定位誤差下降到信標(biāo)節(jié)點(diǎn)比例為80%時(shí)的2.95。從圖2中還可以得出,隨著信標(biāo)節(jié)點(diǎn)比例的增加,平均低昂為誤差逐漸降低,且下降趨勢逐漸減小。
②保持信標(biāo)節(jié)點(diǎn)與未知節(jié)點(diǎn)例為2:8,節(jié)點(diǎn)總數(shù)在[60~200]范圍內(nèi)變化。
從圖3中可以看出,隨著節(jié)點(diǎn)總數(shù)在60~200之間逐漸增加,平均定位誤差逐漸降低,且在節(jié)點(diǎn)總數(shù)達(dá)到200時(shí),具有最低的平均定位誤差2.60。而且在節(jié)點(diǎn)總數(shù)增加的過程中誤差減小的趨勢逐漸減小,趨于穩(wěn)定,表明,通過增加節(jié)點(diǎn)總數(shù)不能無限制的提高定位精度。
2)BP神經(jīng)網(wǎng)絡(luò)指紋法
①信號發(fā)射天線為4個(gè),提高指紋庫精度。
從圖4中可以清晰地看出,隨著采樣精度的變小(如:采樣精度為0.2,則每0.2米進(jìn)行一次數(shù)據(jù)采集),定位誤差減小,說明采樣精度的提高有利于定位精度的提高。從圖中可以清晰地看出,在采樣精度為0.2時(shí),具有最高的定位精度,平均誤差只有0.68m。
②指紋庫精度保持為1米/組,增加信號發(fā)射天線數(shù)量
從圖5中可以看出,隨著天線個(gè)數(shù)的增加,未知節(jié)點(diǎn)的定位精度逐漸身高,但是由于采樣精度的限制,使得定位精度智能靠近采樣精度,不能達(dá)到更搞得定位精度。這說明,同時(shí)提高采樣精度和天線個(gè)數(shù),可以讓定位精度進(jìn)一步提高。
3)兩種算法對比
由于兩種方法的原理不同,導(dǎo)致實(shí)驗(yàn)環(huán)境不能完全一致,但是我們可以從以下幾個(gè)方面進(jìn)行對比:
從表1中,我們可以清晰地看出,BP神經(jīng)網(wǎng)絡(luò)指紋法,在定位精度上遠(yuǎn)優(yōu)于RSSI測距算法。但不利于程序的移植,而RSSI測距算法具有良好的算法移植性。
5 結(jié)論
傳統(tǒng)的RSSI測距算法在增加節(jié)點(diǎn)總數(shù)或者提高信標(biāo)節(jié)點(diǎn)比例情況下,都可以提高RSSI測距的定位精度。而基于BP的指紋定位法,也能在提高采樣精度,或者增加天線個(gè)數(shù)的情況下減小定位誤差。就兩種算法的定位精度而言,指紋法優(yōu)于RSSI測距算法,但是,RSSI測距算法,受環(huán)境改變影響較大,不利于算法移植,而RSSI測距算法,受環(huán)境影響較小。
參考文獻(xiàn):
[1] 魏二虎,劉學(xué)習(xí),劉經(jīng)南.北斗+GPS組合單點(diǎn)定位精度評價(jià)與分析[J].測繪通報(bào),2017(5):1-5.
[2] 譚述森,張?zhí)鞓?北斗多業(yè)務(wù)衛(wèi)星系統(tǒng)與應(yīng)用——論北斗Bs導(dǎo)航[J].國防科技大學(xué)學(xué)報(bào),2017,39(5):1-5.
[3] 浦佳祺,陳德旺.基于最小二乘法和BP神經(jīng)網(wǎng)絡(luò)的TOA定位算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2018,28(5):5-8.
[4] 張會新,陳德沅,彭晴晴,等.一種改進(jìn)的TDOA無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法[J].傳感技術(shù)學(xué)報(bào),2015,28(3):412-415.
[5] 胡斌斌,倪曉軍.基于RSSI測距室內(nèi)定位改進(jìn)質(zhì)心算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(9):133-136+140.
[6] Yun FengLeng,Hai Ping Zhu,TalalAlshaNIri,F(xiàn)ei He. An Improved RSSI Positioning Algorithm Based on Reference Distances[J]. Advanced Materials Research,2014,3255(971).
[7] 李航. 基于位置指紋方法的WIFI室內(nèi)定位技術(shù)研究[D].長春工業(yè)大學(xué),2018
[8] 趙銀龍. 基于WiFi室內(nèi)位置指紋定位關(guān)鍵技術(shù)研究[D].河北科技大學(xué),2018.
[9] 劉琛,倪雪莉.基于三邊測量法的移動(dòng)錨節(jié)點(diǎn)定位方案[J].信息技術(shù),2019(3):29-32,36.
[10] 盧瀅宇.競爭算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)性能研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2019,28(5):173-177.
【通聯(lián)編輯:唐一東】