黨小超, 馬平川, 郝占軍
(1.西北師范大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,甘肅 蘭州 730070;2.甘肅省物聯(lián)網(wǎng)工程研究中心,甘肅 蘭州 730070)
無線局域網(wǎng)(wireless local area network,WLAN)指紋定位由于部署廣泛,成本低廉,操作簡便成為室內(nèi)定位方法的主流[1]。文獻(xiàn)[2]利用接收信號強(qiáng)度指示(received signal strength indication,RSSI)的指紋定位方法結(jié)合去噪技術(shù),文獻(xiàn)[3]利用主成分分析(principal component analysis,PCA)算法對RSSI信號進(jìn)行降維,提取RSSI中的主要特征,文獻(xiàn)[4]通過用移動端采集的來自各個AP的RSSI信號建立指紋庫,利用K最近鄰((K-nearest neighbor,KNN)算法,通過最小二乘法找到K個與測試指紋最接近的,通過加權(quán)平均得到位置。但是清華大學(xué)楊錚與劉云浩教授[5]指出由于RSSI信號的易受多徑效應(yīng)的影響,有時收到的信號是多徑信號的疊加,導(dǎo)致了定位的不可估量。
基于信道狀態(tài)信息(channel state information,CSI)的指紋定位進(jìn)入人們視線[6],CSI與RSSI相比具有更好的魯棒性,受到多徑效應(yīng)的干擾更少,所以具有更高的定位精度。
本文提出了一種改進(jìn)的基于CSI的室內(nèi)定位方法,經(jīng)過實驗證明:該方法精度高于其他算法。
在現(xiàn)有的通信系統(tǒng)中,正交頻分復(fù)用(orthogonal frequency division multiplexing,OFDM)技術(shù)是應(yīng)用最廣泛的一種多載波傳輸方案。通過對現(xiàn)有的普通商用Wi-Fi設(shè)備添加兼容IEEE 802.11n的無線網(wǎng)卡,可以獲取無線信號發(fā)射端和接收端之間的CSI,它提供了多個子載波上的信號幅度和相位兩方面的信息。作為RSSI的升級版本,CSI包含更為詳細(xì)和準(zhǔn)確的多徑傳播信息[9]。在OFDM傳輸系統(tǒng)中,每個信道狀態(tài)的頻域模型可以表示為Y=HX+N,其中,Y與X分別為接收和發(fā)送信號向量,H為信道信息矩陣,N為加性高斯白噪聲。各個子載波的CSI可以表示為CSI=Y/X。
假設(shè)在OFDM傳播過程中的子載波數(shù)為N,則CSI矩陣H可以表示為H=[H0,H1,…,Hi,…,HN-1]T,i∈[0,N-1]。定義第i個子載波的CSI為Hi=|Hi|ej(∠Hi)。其中,Hi和∠Hi分別表示第i個子載波的振幅和相位。
傳統(tǒng)KNN算法定位準(zhǔn)確率低,定位時間慢。為了解決這個問題本文采用基于高斯核函數(shù)的KNN算法來彌補(bǔ)這種不足。徑向基函數(shù)(radial basis function,RBF)-KNN定位算法主要分為2個階段[7]:離線訓(xùn)練階段和在線定位階段,如圖1所示。
圖1 定位流程
建立指紋庫和位置與指紋的匹配模型:離線階段將采集的測試點(diǎn)CSI信號進(jìn)行預(yù)處理并利用RBF-KNN算法在指紋庫進(jìn)行搜索,結(jié)合置信度水平得到定位的位置,下面將詳細(xì)介紹一下本算法。
收集測試點(diǎn)CSI信號,ξnew={csinew}卡爾曼濾波處理后,收集到的信號可以用矩陣表示
(1)
取其中的一維矩陣{csi11csi12…csi1p},并將其與數(shù)據(jù)庫中的每一個點(diǎn)的第一維向量進(jìn)行比較,常用的比較方法有歐氏距離法、余弦相似度法、皮爾遜系數(shù)法以及核函數(shù)法。為了比較的方便與準(zhǔn)確本文選用了核函數(shù)法,并定義了一個基于核函數(shù)的權(quán)重公式
(2)
式中φ()為測量指紋和指紋庫指紋相似程度的核函數(shù),在這里使用高斯核函數(shù)[7]定義相似度公式
(3)
式中σ為使用雙交叉驗證方法估計得到的融合權(quán)重參數(shù)。然后,通過混合核函數(shù)計算在線指紋測量和指紋數(shù)據(jù)之間的相似性,并且指紋參考點(diǎn)的指標(biāo)Q(p)與查詢指紋最相似。將測量CSI信號與指紋庫中的信號進(jìn)行比較,得到相似度,將相似度按照從大到小的順序排列,并選取其中的前K個(K的具體取值將在后續(xù)實驗討論)進(jìn)行加權(quán),估計目標(biāo)位置
x1=wn1·pn1(x)+wn2·pn2(x)+…+wnk·pnk(x)
(4)
y1=wn1·pn1(y)+wn2·pn2(y)+…+wnk·pnk(y)
(5)
這是一條線路的定位結(jié)果,按照相同的方法得出其他5條鏈路的定位結(jié)果以及每條鏈路的定位權(quán)重如式(2),并使用置信度比較進(jìn)行最后定位估計。
本實驗采用定制的安裝了Openwrt的TL-WDR4310路由器作為發(fā)射端,一臺安裝有Atheros 9380網(wǎng)卡的臺式電腦作為接收器,CPU型號為Intel Core i3—4150,操作系統(tǒng)為 Ubuntu10.04LTS,且內(nèi)核和無線網(wǎng)卡驅(qū)動經(jīng)過特殊配置。實驗場地選擇9 m×6 m 的辦公區(qū)域,部署了25個正方形區(qū)域,每個正方形區(qū)域為0.8 m×0.8 m,接收機(jī)與發(fā)射機(jī)相距4.5 m,天線高度為1.2 m,其平面圖及詳細(xì)區(qū)域劃分布局如圖2所示。
圖2 實驗室平面
Atheros網(wǎng)卡中有2個接收天線,TL-WDR4310有3個發(fā)射天線,這就相當(dāng)于有6條通信鏈路,每條鏈路上有56個子載波。在一個參考點(diǎn)測量200次CSI作為指紋庫原始數(shù)據(jù)進(jìn)行處理,在測量點(diǎn)取80個CSI進(jìn)行處理和匹配。
KNN中的K值是算法中的重要參數(shù),將K值從1~10依次取值,分別測試不同取值的定位誤差和定位時間,結(jié)果如圖3所示。
圖3 不同K值定位結(jié)果
由實驗結(jié)果分析k=5是一個臨界點(diǎn),當(dāng)k<5時,k近鄰算法的選擇范圍增大,更多的正確樣本進(jìn)入了選擇范圍,降低了誤差;當(dāng)k>5時,說明到達(dá)了一個臨界,不會因為樣本的增多而提高定位精度,反而因為樣本選擇過多,增加了計算時間,所以本文經(jīng)過實驗,將K值定為5,可以有效縮小查找范圍,而傳統(tǒng)的KNN定位算法需要比較每一個指紋信息,所以定位時間大大延長。
本文采用距離誤差作為性能指標(biāo),采用均方根誤差(root-mean-square error,RMSE)評估,并以此為依據(jù)進(jìn)行評估。假定未知移動設(shè)備的位置(Ai,Bi)和用戶的實際位置(Ai,Bi)為了比較,實施了三種現(xiàn)有的方法,包括DeepFi[8],Native Bayes和FIFS[9]。 在實驗中,這些方案使用相同的測量數(shù)據(jù)集,以保證結(jié)果的可靠性。 圖4為四個系統(tǒng)的定位累計分布誤差。
圖4 定位累積誤差比較
在誤差小于1 m時,本系統(tǒng)定位準(zhǔn)確率處于中等,但在大于1 m時,本文的定位精度遠(yuǎn)高于其他算法,這是由于本文的方法使用新的核函數(shù)作為相似度度量,并使用置信度綜合多條線路的定位結(jié)果。
本文使用了基于CSI的定位方法,使用卡爾曼濾波對原始信號就行了預(yù)處理,結(jié)合改進(jìn)的加權(quán)KNN算法與置信度方法進(jìn)行室內(nèi)定位.將常用算法與本算法進(jìn)行對比,實驗中證明:本算法在一定誤差內(nèi),精度優(yōu)于其他對比算法。下一步將對動態(tài)人員定位及軌跡追蹤進(jìn)行研究。