孫 偉,段順利,閆慧芳,丁 偉
(遼寧工程技術(shù)大學(xué)測繪與地理科學(xué)學(xué)院 遼寧 阜新 123000)
基于接收信號強度指示(RSSI)的室內(nèi)定位方法,因具備性價比高、定位范圍廣且精度高的優(yōu)勢在眾多領(lǐng)域存在應(yīng)用價值[1-4]。但受室內(nèi)障礙物遮擋、人員走動以及信號源功率不穩(wěn)定影響,使用移動終端采集的RSSI信號中包含波動數(shù)據(jù)(“噪點”),導(dǎo)致基于指紋庫的傳統(tǒng)定位方法在移動終端位置估計中出現(xiàn)不準(zhǔn)確現(xiàn)象[5-6]。由于現(xiàn)有指紋定位算法對于“噪點”處理較粗糙,而指紋庫的好壞又對定位精度產(chǎn)生影響。如何剔除指紋庫中信號“噪點”,通過優(yōu)化指紋庫來降低定位誤差是室內(nèi)定位技術(shù)中有待解決的關(guān)鍵問題。
本文基于現(xiàn)有無線接入點(access point, AP)個數(shù),提出一種基于卡爾曼平滑的改進自適應(yīng)加權(quán)K最近鄰(AWKNN)位置指紋定位算法。通過求取RSSI均方差代替歐氏距離,解決在一些錯誤匹配點上由于歐氏距離中的項數(shù)遠(yuǎn)小于匹配個數(shù)而導(dǎo)致歐氏距離變小,從而誤判為最佳匹配點的問題。
根據(jù)圖1所示的WIFI定位原理可看出,定位過程主要包括指紋數(shù)據(jù)庫建立(離線階段)和導(dǎo)航位置信息實時獲取(在線階段)兩個階段[7]。建立指紋數(shù)據(jù)庫的主要工作是進行數(shù)據(jù)采集[8]。在待定位區(qū)域按照一定的距離間隔部署若干個參考點(reference point,RP),在每個參考點處采集接收到的來自所有AP的MAC地址、RSSI值以及對應(yīng)的位置坐標(biāo)等信息構(gòu)建信號指紋庫。為提高定位精度,可根據(jù)實際情況適當(dāng)增加各RP處的采集時間,通過數(shù)據(jù)濾波方法將來自某一AP的RSSI值序列進行濾波處理,濾波結(jié)果作 為該參考點上對應(yīng)AP的RSSI值存入指紋數(shù)據(jù)庫。
圖1 基于WIFI的RSSI位置指紋定位原理
在導(dǎo)航位置信息實時獲取階段,首先在測試點實時采集N組WIFI的RSSI值,通過比較測試點AP的RSSI與RP中記錄的對應(yīng)AP的RSSI,利用測試點AP的RSSI相似程度最大,即信號強度最接近的參考點估計位置作為目標(biāo)定位結(jié)果[9-10]。
由于障礙物遮擋、人員走動、信號源功率不穩(wěn)定以及多路徑效應(yīng)影響,導(dǎo)致移動終端采集的信號存在波動較大的數(shù)據(jù),影響指紋庫精確度[11-12]。圍繞該問題,本文對比性分析均值濾波、高斯濾波和卡爾曼濾波對于改善RSSI精度的可行性。
均值濾波是將參考點中各AP接收到的RSSI值分別求算術(shù)平均值:
式中,n為AP中RSSI樣本數(shù)。均值濾波算法計算量小,無法對隨機性誤差進行有效處理。當(dāng)RSSI樣本數(shù)大、波動幅度低、突變次數(shù)少時,均值濾波對于信號的平滑度較高;當(dāng)RSSI數(shù)值波動較大時,均值濾波對于誤差的處理能力有限[13]。
高斯濾波是一種線性平滑濾波,通過假設(shè)數(shù)據(jù)的誤差特性符合高斯分布,保留高斯分布密度較大區(qū)域的數(shù)值,過濾掉因干擾產(chǎn)生的小概率數(shù)值[14]。
假設(shè)移動終端接收到的RSSI值服從N2(0,σ )的高斯分布,用變量x來表示RSSI,可得到:
式中,
如式(5)所示,當(dāng)RSSI范圍處于[μ-σ ,μ + σ ]之間時,保存濾波后結(jié)果,否則舍棄。
根據(jù)高斯濾波降噪特性,可有效過濾跳變大且遠(yuǎn)離真值的數(shù)據(jù),在一定程度上解決了RSSI數(shù)據(jù)穩(wěn)定性較差的問題。但對于隨機誤差的影響以及樣本數(shù)量較少時,其處理效果不理想。
卡爾曼濾波是以最小均方誤差為估計,利用觀測值對當(dāng)前預(yù)測值加以修正產(chǎn)生最佳估計值,不斷遞推得到優(yōu)化后的結(jié)果[15]。通過不斷優(yōu)化后設(shè)置卡爾曼濾波觀測誤差r=4、初始狀態(tài)誤差p0=10,得到估計值xk的推導(dǎo)過程為:
式中,y1為第一個觀測值;xk,k-1為狀態(tài)一步預(yù)測;kk為卡爾曼濾波增益;pk為狀態(tài)估計誤差。
卡爾曼濾波以預(yù)測值、實測值、修正值的順序遞推,極大地跟隨真值變動,是最貼近真值的適應(yīng)動態(tài)環(huán)境的跟隨算法。
在同一個參考點上選取一個AP的120組RSSI值,分別對其進行均值濾波、高斯濾波和卡爾曼濾波,得到解算之后對比效果如圖2所示。
圖2 濾波對比圖
通過對圖2分析可以看出,均值濾波信號平滑度相當(dāng)高,當(dāng)RSSI樣本數(shù)大,波動幅度低時,可信度較高;但當(dāng)樣本數(shù)量少,數(shù)據(jù)突變多時,誤差增大明顯。高斯濾波保留RSSI分布密度大的數(shù)值,過濾掉偏離較大的數(shù)據(jù),對于解決信號穩(wěn)定性差這一問題做出了貢獻,它對抑制服從正態(tài)分布的噪聲效果很好。表面上高斯濾波結(jié)果與原始數(shù)據(jù)跟隨性最好,但實際上對于對應(yīng)區(qū)間內(nèi)RSSI值高于粗差的波動,高斯濾波采用直接剔除法,沒有對這些具有較大偏差數(shù)據(jù)進行更恰當(dāng)?shù)奶幚?。?dāng)樣本量較少、RSSI值波動嚴(yán)重時,高斯濾波處理可能會剔除大量原始數(shù)據(jù),與實際所求相差甚遠(yuǎn)??柭鼮V波的核心思想是“預(yù)測+校正”,它可以對系統(tǒng)狀態(tài)進行最優(yōu)估計,跟隨原始數(shù)據(jù)變化,以預(yù)測值、實測值、修正值的順序遞推,極大地跟隨真值變動,是最貼近真值的適應(yīng)動態(tài)環(huán)境的跟隨算法。
綜上所述,卡爾曼濾波既能跟隨原始數(shù)據(jù)變動,又可明顯減緩波形抖動,減小誤差,是對原始RSSI值進行濾波處理的最佳選擇。本文將每個參考點中的每個AP的多個RSSI數(shù)據(jù)進行卡爾曼濾波后再求均值,最后將每個參考點中各個AP對應(yīng)的數(shù)據(jù)存入指紋數(shù)據(jù)庫中。
在線定位階段,主要進行移動用戶的位置解算。傳統(tǒng)WKNN是將測試點收到的RSSI與各個參考點的RSSI進行匹配。首先利用歐氏距離公式計算測試點與指紋庫中各個參考點之間的歐氏距離,然后找出歐氏距離最小的K個參考點,最后將這K個參考點的位置坐標(biāo)進行加權(quán)平均,估計出測試點的位置。由此得到測試點i接收來自n個AP的信號強度值為:
在現(xiàn)實環(huán)境中,由于信號遮擋、人員走動、其他設(shè)備干擾以及WIFI覆蓋范圍有限等因素,在定位區(qū)域較大的情況下,不同的位置點不可能接收到來自所有AP的無線信號。在一些錯誤匹配點上,測試點與參考點中相匹配的AP個數(shù)較其余測試點顯著減少,這可能導(dǎo)致計算的歐氏距離較小,容易把這些錯誤匹配位置判斷為最佳匹配點[16-17]。
為規(guī)避這種錯誤,提出一種以測試點與參考點RSSI值均方差為相似性度量的改進自適應(yīng)WKNN定位算法。
1) 選取測試點中1個AP與1個參考點中的各個AP進行匹配,當(dāng)MAC地址相同時,匹配項數(shù)加1。2) 選取該測試點中的其他AP依次與該參考點的各個AP進行匹配,當(dāng)MAC地址相同時,匹配項數(shù)加1。3) 對該測試點與該參考點接收到有相同的MAC地址的RSSI值計算均方差。4) 該測試點依次與指紋庫中所有的參考點遍歷前3步。5) 最后選取K個均方差最小的參考點,選其倒數(shù)為加權(quán)系數(shù),對這K個參考點坐標(biāo)進行加權(quán)處理,估計測試點坐標(biāo)。6) 對下一個測試點遍歷前5步。
均方差公式和估計的測試點坐標(biāo)(x,y)分別為:
式中,m為測試點i與參考點j匹配的AP個數(shù);ε是為了防止分母為零而選取的一個隨機接近于零的數(shù)。
測試環(huán)境如圖3所示,以地板磚(尺寸:0.6 m×0.6 m)為基準(zhǔn)進行劃分選取參考點,共選取2×80個方格點作為參考點。
圖3 測試環(huán)境
實驗所用AP均為學(xué)校統(tǒng)一布設(shè),但路由器位置不相同,定位時均用該點可測得的所有AP。實驗過程中,采集數(shù)據(jù)所用的軟件為利用Java語言編寫基于Android平臺的數(shù)據(jù)采集APP,采集各個點的MAC地址、RSSI值、位置坐標(biāo)等信息,如圖4所示。在離線階段每個參考點采集20次,RSSI檢測間隔為1 s。
圖4 手機數(shù)據(jù)采集軟件界面
在線階段在走廊上選取30個測試點,每個點上采集20次,基于信號強度跳變是一直存在的現(xiàn)象,在定位階段仍需對數(shù)據(jù)進行卡爾曼平滑處理。圖5為基于AWKNN定位算法的測試分析圖,圖中以平面圖所示方向建立坐標(biāo)系,x、y軸均為坐標(biāo)值,‘○’為參考點的位置,它是以0.6 m×0.6 m為間隔,圖中‘+’為測試點的真實位置,‘×’為測試點的解算位置。
為進一步驗證本文AWKNN定位算法的有效性和可行性,采用相同的經(jīng)過卡爾曼濾波的指紋數(shù)據(jù)庫,分別進行WKNN和AWKNN兩種算法的定位實驗,得到這兩種算法的誤差比較及誤差累計分布分別如圖6和圖7所示。
圖5 AWKNN定位結(jié)果
圖6 WKNN與AWKNN算法定位誤差比較
圖7 誤差累積分布概率圖
如圖6所示,AWKNN算法的收斂距離為3.8 m,優(yōu)于WKNN算法的4.5 m收斂距離,AWKNN算法相較傳統(tǒng)的WKNN算法而言,定位精度整體有所提升,整體平均誤差由原來的2.93 m降低到2.36 m,定位誤差在4 m內(nèi)的比例由原來的70%提高到86.7%,定位在3 m內(nèi)的比例由原來的60%提高到76.7%。
根據(jù)圖7,從定位精度穩(wěn)定性和收斂距離來分析,基于卡爾曼平滑的AWKNN算法優(yōu)于WKNN算法,這在無線路由眾多并要求精度達到可視距離的建筑內(nèi)可滿足使用要求。
移動端采集的RSSI受外界因素影響存在跳變數(shù)據(jù),導(dǎo)致定位誤差大。本文對比性地分析均值濾波、高斯濾波和卡爾曼濾波對于優(yōu)化RSSI值的可靠性,驗證了卡爾曼濾波具有良好的跟隨真值變動特性。提出的AWKNN算法,通過利用m個相匹配AP均方差代替歐氏距離進行解算。對比性實驗測試表明,基于卡爾曼濾波的AWKNN定位算法得到的收斂距離優(yōu)于WKNN算法得到的結(jié)果,定位誤差得到有效控制。本文的定位方法可為今后開展室內(nèi)WIFI定位方案的優(yōu)化提供參考。
本文的研究工作得到了遼寧工程技術(shù)大學(xué)研究生教育創(chuàng)新計劃(YS201608)的資助,在此表示感謝!