劉顏星,郝占軍,田 冉
(1.西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,甘肅 蘭州 730070;2.甘肅省物聯(lián)網(wǎng)工程研究中心,甘肅 蘭州 730070)
隨著位置服務(wù)的精準(zhǔn)需求,室內(nèi)定位系統(tǒng)成為當(dāng)今倍受熱捧的技術(shù)領(lǐng)域,而基于WiFi信號的室內(nèi)定位方法因其開放性和易用性吸引了很多科研人員的關(guān)注。WiFi作為一種基于IEEE 802.11協(xié)議的無線網(wǎng)絡(luò),已經(jīng)普及到大多數(shù)家庭和辦公環(huán)境?,F(xiàn)今大部分移動設(shè)備都內(nèi)置了符合IEEE 802.11標(biāo)準(zhǔn)的無線網(wǎng)卡,使得用戶能很容易地接入無線局域網(wǎng)絡(luò)(WLAN)中,其覆蓋廣的特點(diǎn)大大降低了室內(nèi)定位技術(shù)的成本。
目前,大部分定位方法通過采集接收信號強(qiáng)度指示RSSI(Received Signal Strength Indication)值與指紋庫匹配獲取目標(biāo)的位置信息,但由于RSSI是粗粒度信息,受到室內(nèi)環(huán)境對信號的折射、反射和衍射等影響,導(dǎo)致其定位性能不穩(wěn)定。近年來,一些商用無線網(wǎng)卡設(shè)備能夠支持物理層信道狀態(tài)信息CSI(Channel State Information)信號采集,如Intel5300、Atheros9380無線網(wǎng)卡。由于通過CSI不同子信道可以提取到比RSSI更細(xì)粒度特征信號進(jìn)行分析,同時CSI還可以盡可能避免多徑效應(yīng)與噪聲的影響,因此,通過信道狀態(tài)信息CSI的室內(nèi)定位[1]研究被關(guān)注。
基于CSI和RSSI的室內(nèi)定位算法相比較,CSI隨時間變化小,靈敏度更高,利用不同子載波的信號傳輸過程,能夠更好地抵制噪聲與多徑效應(yīng)問題,通過細(xì)粒度的CSI指紋方法可以在不增加數(shù)據(jù)采集成本的前提下,改善室內(nèi)定位精度,有效提高室內(nèi)定位的精度[2]。
目前的室內(nèi)定位方法大致分為測距和無需測距2種?;跍y距的定位方法是通過設(shè)置錨點(diǎn),根據(jù)角度信息計(jì)算空間距離,估計(jì)定位點(diǎn)位置;無需測距是依據(jù)網(wǎng)絡(luò)特性采集指紋庫的方法,通過空間匹配算法實(shí)現(xiàn)節(jié)點(diǎn)定位。由于基于測距的定位方法的定位精度與AP無線訪問接入點(diǎn)(Access Point)的數(shù)量有密切關(guān)系,且計(jì)算復(fù)雜度高,因此,本文基于指紋庫匹配的被動式方法研究室內(nèi)定位,被定位對象無需攜帶任何具有信號發(fā)射功能的設(shè)備,不但能夠解決穿戴設(shè)備的不便,還能更好地保護(hù)被定位對象的個人隱私,如老人防護(hù)、動作識別和入侵檢測等。
由于室內(nèi)環(huán)境存在實(shí)物多、人員流動性強(qiáng)等特點(diǎn),信號傳播存在多徑效應(yīng),而信道狀態(tài)信息CSI能更好地反映這些特點(diǎn),因此CSI在室內(nèi)定位領(lǐng)域適用性更高[3]。文獻(xiàn)[4]將CSI和RSSI數(shù)據(jù)相結(jié)合作為指紋特征,引入空間聚類劃分的思想對采集數(shù)據(jù)進(jìn)行處理,有效降低了信號的時變性,實(shí)現(xiàn)了整體平均定位距離誤差在1.5 m以下。文獻(xiàn)[5]將CSI信號在頻域上通過稀疏表示,有效降低了信號噪聲,一定程度上解決了信號多徑效應(yīng)對定位精度的影響。文獻(xiàn)[6]提出利用多傳感器位置信息對指紋庫參考節(jié)點(diǎn)進(jìn)行篩選,保留有效參考節(jié)點(diǎn)提高定位精度;文獻(xiàn)[7]提出通過深度學(xué)習(xí)訓(xùn)練CSI數(shù)據(jù)作為指紋庫,定位精度有很大提高,但該方法在離線數(shù)據(jù)采集階段訓(xùn)練樣本過大,耗時太長。
總結(jié)常見指紋定位方法的優(yōu)缺點(diǎn)可以看出,室內(nèi)指紋定位算法中解決數(shù)據(jù)預(yù)處理和有效特征值提取是提高定位精度的主要因素。為了達(dá)到室內(nèi)定位的高效率、高精度和高適應(yīng)性的目的,本文提出一種基于CSI信號的被動式室內(nèi)指紋定位算法。該算法在離線階段將定位場所劃分為近似同等大小的區(qū)域塊,通過支持IEEE 802.11n協(xié)議的Atheros9380無線網(wǎng)卡提取CSI信號,在各連接點(diǎn)或區(qū)塊位置采樣指紋點(diǎn)數(shù)據(jù),對原始數(shù)據(jù)進(jìn)行濾波后存入原始信息庫,再對濾波后的數(shù)據(jù)使用二分K均值聚類(K-means)算法進(jìn)行分類,建立指紋數(shù)據(jù)庫;在線階段根據(jù)待測點(diǎn)的離線數(shù)據(jù)和實(shí)時數(shù)據(jù),采用K最近鄰KNN( K-Nearest Neighbor)匹配算法判定出定位點(diǎn)位置坐標(biāo)。其核心思想在于離線數(shù)據(jù)經(jīng)過方差補(bǔ)償?shù)淖赃m應(yīng)卡爾曼濾波處理后能夠動態(tài)調(diào)整算法,解決濾波發(fā)散問題[8],使得建立的指紋庫更有效,范圍更小,提高了匹配準(zhǔn)確率和定位精度。
室內(nèi)環(huán)境的特點(diǎn)是房間多、障礙物多、人員流動頻繁,假設(shè)待測區(qū)域完全被無線WiFi網(wǎng)絡(luò)覆蓋,信號采集過程中選取均勻的參考點(diǎn)位置,并記錄所有AP點(diǎn)的CSI值?;谡活l分復(fù)用技術(shù)OFDM(Orthogonal Frequency Division Multi- plexing)能將信道調(diào)制成多個正交子信道[9],并將高速數(shù)據(jù)信號轉(zhuǎn)換成并行的低速子數(shù)據(jù)流,因此,在數(shù)據(jù)采集時,可以將單個信道信息經(jīng)過濾波處理后,收集每個子信道的CSI特征值作為參考信息?;谥讣y庫定位算法分為離線訓(xùn)練和在線定位2個階段,其定位模型如圖1所示。
Figure 1 Data processing model based on CSI 圖1 基于CSI定位數(shù)據(jù)處理模型
離線階段:將定位場地近似劃分為同等大小的區(qū)域塊,在各連接點(diǎn)或區(qū)塊位置,采用OFDM技術(shù)收集單個信道的CSI值并提取振幅和相位信息,在此基礎(chǔ)上使用方差補(bǔ)償?shù)淖赃m應(yīng)卡爾曼濾波算法對提取的特征數(shù)據(jù)進(jìn)行降噪處理,進(jìn)行奇異值去除,并將降噪后的數(shù)據(jù)存儲到原始信息數(shù)據(jù)庫;再通過二分K均值聚類算法對原始數(shù)據(jù)進(jìn)行聚類分析,將特征相似的特征值縮小到某一范圍內(nèi),形成分簇形態(tài)的離線數(shù)據(jù)庫作為指紋點(diǎn)數(shù)據(jù)建立特征指紋庫。
在線階段:在待測位置處動態(tài)獲取AP的CSI未知特征值,利用自適應(yīng)卡爾曼濾波算法對數(shù)據(jù)進(jìn)行處理,使用KNN計(jì)算實(shí)時數(shù)據(jù)與指紋庫的匹配度。由于本文旨在研究離線數(shù)據(jù)建立對CSI定位算法的影響因素,所以匹配算法使用較為成熟的KNN匹配算法。
自適應(yīng)卡爾曼濾波算法具有動態(tài)處理數(shù)據(jù)的能力,即對數(shù)據(jù)進(jìn)行濾波的過程中能對未知或不確定的系統(tǒng)模型參數(shù)進(jìn)行估計(jì)和修正,利用已有的信息對動態(tài)噪聲方差實(shí)時估計(jì),就可以補(bǔ)償濾波中對動態(tài)方差或協(xié)方差的不足。這種利用預(yù)測殘差對原始向量進(jìn)行修正,并計(jì)算出接近實(shí)際狀態(tài)向量的方法稱為自適應(yīng)卡爾曼濾波的方差補(bǔ)償法。其基本思路如下所示:
假設(shè)Xk為k時刻的信號向量,將參考點(diǎn)坐標(biāo)及CSI連續(xù)信號離散化,則卡爾曼濾波狀態(tài)方程和觀測方程可如式(1)所示:
(1)
其中,Xk+1和Xk分別為狀態(tài)向量在tk+1和tk時刻的濾波值,Φk+i,k和Bk+1為狀態(tài)向量系數(shù)矩陣,Ψk+i,k為控制向量系數(shù)矩陣,Uk為控制向量,Γk+i,k為動態(tài)噪聲向量的系數(shù)矩陣,Ωk為動態(tài)噪聲向量,Zk+1為觀測值,Δk+i為觀測噪聲向量。
如果不考慮系統(tǒng)的確定性輸入,其狀態(tài)方程和觀測方程如式(2)所示:
(2)
假定{Ωk}和Δk為正態(tài)序列,X0為正態(tài)向量。定義i步預(yù)測殘差如式(3)所示:
(3)
(4)
則Vk+i的方差矩陣為:
Dvv=Bk+iΦk+i/kXk+DΔ k+i Δk+i
(5)
記:
Bk+iΦk+i,rΓr,r-1=A(k+i,r)
(6)
其中,r=1,…,N;k=1,…,n;上標(biāo)(k+i,r)表示與觀測值有關(guān)。假定Ωr-1Ωr-1在觀測時間段tk+1,tk+2,…,tk+n上為常值對角陣,并記:
(7)
根據(jù):
(8)
記:
(9)
其中,ηk+i為零均值隨機(jī)向量,i=1,2,…,N。令:
(10)
又記:
(11)
則有:
E=AdiagDΩΩ
(12)
式(12)是關(guān)于diagDΩΩ的線性方程組,當(dāng)N≥r時,式(12)有唯一解。記diagDΩΩ的最小二乘法LS(Least Square)估計(jì)為:
(13)
本文采用 Atheros 9380 無線網(wǎng)卡獲取CSI信息,可以在20 MHz和40 MHz帶寬下進(jìn)行實(shí)驗(yàn),在20 MHz帶寬下,子載波的數(shù)量是56個,40 MHz帶寬下,子載波的數(shù)量是114個[10],2個發(fā)射天線,3個接收天線,共6條鏈路,則每個CSI信號是一個2×3×p的復(fù)數(shù)矩陣,其中p為子載波個數(shù)[11]。
如圖2所示,在靜態(tài)環(huán)境某參考點(diǎn)站立一人,在40 MHz帶寬下不同時刻連續(xù)采樣20次,取其中一條鏈路的CSI 振幅值對其進(jìn)行濾波處理,可以看出對原始信道采集的信號數(shù)據(jù)使用自適應(yīng)卡爾曼濾波算法進(jìn)行降噪處理,能夠?qū)惓V悼s小到一定范圍內(nèi),得到一組完全處理過的優(yōu)質(zhì)數(shù)據(jù)存入原始數(shù)據(jù)庫,為下一步數(shù)據(jù)分類提供支撐。
Figure 2 Comparison of original data before and after filtering圖2 原始數(shù)據(jù)濾波前后對比
(1)原始采集信息數(shù)據(jù)庫建立。
假設(shè)任意參考點(diǎn)能夠采集到n個AP的CSI值,則第i個參考點(diǎn)(xi,yi) 采集到的CSI值可表示為:
Ri=(Ri1,Ri2,Ri3,…,Rin),
i=1,2,3,…,m
(14)
其中,Rin是第i個參考點(diǎn)采集到的第n個AP節(jié)點(diǎn)的CSI信號向量。如果將參考點(diǎn)坐標(biāo)及其CSI信號向量線性組合,則可表示為:
Mi=(Ri1,Ri2,Ri3,…,Rin,xi,yi)
(15)
將m個參考點(diǎn)的數(shù)據(jù)經(jīng)3.2節(jié)濾波算法處理后,將有效特征向量組合值以式(15)所示的數(shù)據(jù)結(jié)構(gòu)存儲到原始庫中,以備聚類運(yùn)算時使用。
(2)二分K-means算法流程。
標(biāo)準(zhǔn) K-means 聚類算法的目標(biāo)是找到最小化誤差平方和的聚類結(jié)果,初始“簇中心”點(diǎn)由算法隨機(jī)選取,因此存在多種劃分情況,導(dǎo)致算法的收斂不是全局最小,而是局部最小。為了解決該問題,本文使用一種能夠度量聚類效果的指標(biāo)SSE(Sum of Squared Error)權(quán)衡算法,SSE為各個樣本點(diǎn)到“簇中心”點(diǎn)距離的平方和,SSE越小,則數(shù)據(jù)點(diǎn)越接近簇中心,聚類效果也越好。
二分K-means算法首先將原始數(shù)據(jù)庫看成一個樣本集計(jì)算SSE,若此時簇個數(shù)小于k(k=2),則選擇最小值一分為二進(jìn)行劃分操作。由于該算法不再隨機(jī)選取簇中心,而是從一個簇出發(fā),因此該算法不會收斂到局部最小值,而是收斂到全局最小值。具體算法流程如下所示:
(1)初始化簇表,將m個采樣點(diǎn)組合成一個簇。
(2)從簇表中取出一個簇,設(shè)k=2,使用標(biāo)準(zhǔn) K-means 聚類算法對選定的簇進(jìn)行聚類。
(3)從聚類結(jié)果中選取誤差平方和最小的那一組簇,將其添加到簇表中。
(4)判斷簇?cái)?shù)量是否達(dá)到采集參考點(diǎn)數(shù)據(jù)個數(shù),若達(dá)到則聚類結(jié)束,否則跳轉(zhuǎn)到(2)。
二分K-means聚類算法與標(biāo)準(zhǔn)聚類方法相比較,收斂性好,聚類結(jié)果更加穩(wěn)定[12]。
本文算法研究的核心是基于CSI信號的被動式無源指紋定位,被定位目標(biāo)無需穿戴任何具有信號發(fā)射功能的設(shè)備,因此指紋庫的構(gòu)建質(zhì)量是影響定位準(zhǔn)確度的主要因素。結(jié)合相關(guān)理論研究,將待測區(qū)域進(jìn)行區(qū)域劃分,搭建2臺設(shè)備對各參考點(diǎn)的CSI信號進(jìn)行采集,使用方差補(bǔ)償?shù)淖赃m應(yīng)卡爾曼濾波算法和二分K-means算法對采集的數(shù)據(jù)進(jìn)行分類,建立指紋數(shù)據(jù)庫。
由于Atheros 9380無線網(wǎng)卡獲取CSI信息,在40 MHz帶寬下有114個子載波,因此參考點(diǎn)采集的每個數(shù)據(jù)包都是一個m′×n′×114復(fù)數(shù)矩陣HMIMO,其中m′為發(fā)射天線數(shù),n′為接收天線數(shù),v=m′×n′為天線對個數(shù)。
(16)
任意天線對的矩陣Hij有114個復(fù)數(shù),每個子載波的信道頻率響應(yīng)采樣為:
Hij=[h1,h2,h3,…,h114]
(17)
其中,hi=|hi|ejsin(∠hi)。
式中|hi|為幅值,∠hi為相位,j為子載波編號,由于CSI的相位受頻偏影響不能精確提取,算法中主要提取振幅特征作為指紋參考依據(jù),無線信號在室內(nèi)環(huán)境中存在著多徑傳播的情況,CSI幅值也受此影響[13,14]。因此,本文在離線建立指紋庫階段,首先將獲取的特征數(shù)據(jù)使用方差補(bǔ)償?shù)淖赃m應(yīng)卡爾曼濾波進(jìn)行處理,然后將降噪后的數(shù)據(jù)通過聚類算法進(jìn)行離線訓(xùn)練分類,理論上必能提高指紋庫的構(gòu)建質(zhì)量。具體算法流程見本文第3節(jié)。
Figure 3 Deployment of experimental environment圖3 實(shí)驗(yàn)環(huán)境部署圖
在線定位階段是將未知點(diǎn)提取到的CSI特征信息與訓(xùn)練階段建立的指紋信息進(jìn)行比較,估計(jì)未知點(diǎn)的位置信息。通過歐氏距離計(jì)算未知點(diǎn)與參考點(diǎn)最接近的向量坐標(biāo),即任意2個CSI幅值向量i與j的歐氏距離比較。
disi,j=norm(Htrain_i-Htest_j)
(18)
其中,Htrain_i是參考點(diǎn)向量,Htest_j是隨機(jī)測試點(diǎn)向量,對于v個天線對有:
DIS=[Dis1,Dis2,…,Disv]
(19)
由于歐氏距離反映的是空間向量之間的“不相關(guān)性”,即數(shù)值越小,相關(guān)性越高。因此,選取前k個較小距離求平均值作為測試點(diǎn)與訓(xùn)練點(diǎn)之間的距離[15]。
(20)
其中,(xi,yi)表示測試點(diǎn)坐標(biāo),計(jì)算距離最小的前k個平均值得到測試點(diǎn)與所有訓(xùn)練點(diǎn)之間的距離后,最后使用KNN算法作為指紋匹配算法定位估計(jì)點(diǎn)位置。
本文采用 Atheros 9380無線網(wǎng)卡方案獲取CSI特征信息,定位算法所需設(shè)備為:2臺安裝有 Atheros 9380無線網(wǎng)卡的臺式機(jī),CPU 型號為 Intel Core i3-4150,操作系統(tǒng)為 Ubuntu 10.04 LTS,其中一臺機(jī)器裝置2根天線作為信號發(fā)送機(jī),另一臺裝置3個天線作為接收機(jī),組成6條數(shù)據(jù)鏈路,在40 MHz帶寬下進(jìn)行實(shí)驗(yàn)。
分別選擇實(shí)驗(yàn)室和會議室對本文提出的定位算法進(jìn)行驗(yàn)證,實(shí)驗(yàn)室場地長9 m、寬6 m,其平面圖和實(shí)景圖分別如圖3a和圖3b所示,將實(shí)驗(yàn)參考點(diǎn)劃分標(biāo)記為1 m×1 m大小方格,天線高度設(shè)置為0.8 m;會議室長12 m、寬6 m,其平面圖和實(shí)景圖分別如圖3c和圖3d所示,由于會議室的桌椅高度為0.8~1 m,發(fā)射天線高度設(shè)置為1 m,接收天線高度設(shè)置為1.2 m。
在整個測試過程中,由于實(shí)驗(yàn)室人員移動較少,相對靜止,因此把實(shí)驗(yàn)室命名為靜態(tài)場景,會議室由于有大量的桌椅和人員走動行為,因而命名為動態(tài)場景。
為了驗(yàn)證本文算法在不同實(shí)驗(yàn)環(huán)境中的定位精度和效果,通過準(zhǔn)確率和平均誤差2個指標(biāo)來衡量分析。
5.2.1 指紋采集特征對定位精度的影響
實(shí)驗(yàn)過程中,讓一名人員靜止在圖3所示的實(shí)驗(yàn)環(huán)境中,在不同測試點(diǎn)采集測試數(shù)據(jù),由于從CSI數(shù)據(jù)包中可以讀取RSSI信號特征,因此分別采用本文處理過的振幅、未處理的振幅及原生RSSI特征數(shù)據(jù)作為指紋特征進(jìn)行測試對比。采用不同算法構(gòu)建離線特征指紋庫,在靜態(tài)和動態(tài)2種環(huán)境中達(dá)到的定位差累積分布如圖 4 所示。
Figure 4 Effect of different feature data on positioning accuracy圖4 不同的特征數(shù)據(jù)對定位精度的影響
從圖4中可以看出,2種實(shí)驗(yàn)場景中通過CSI定位總體性能都比RSSI定位更好,經(jīng)本文算法處理后的CSI幅值特征,靜態(tài)環(huán)境定位精度可以達(dá)到0.5~1.5 m,動態(tài)復(fù)雜環(huán)境定位精度能達(dá)到1~2 m,靜態(tài)環(huán)境能將68.2%的測試點(diǎn)的定位誤差縮小到1 m內(nèi),動態(tài)環(huán)境能將57.8%的測試點(diǎn)的定位誤差縮小到1.5 m內(nèi)。相比較未處理的數(shù)據(jù)定位算法,平均定位精度提升43.2%,極大提升了室內(nèi)環(huán)境定位精度。這驗(yàn)證了本文算法對靜態(tài)和動態(tài)復(fù)雜環(huán)境的定位準(zhǔn)確率均有所提高。
Figure 5 Effect of the number of data samples and reference points on positioning accuracy圖5 數(shù)據(jù)樣本及參考點(diǎn)數(shù)目對定位精度的影響
5.2.2 其它參數(shù)對定位精度的影響
由于指紋匹配算法的性能與訓(xùn)練和測試數(shù)據(jù)有密切關(guān)系,因此,實(shí)驗(yàn)分析了不同訓(xùn)練樣本數(shù)目/測試樣本數(shù)目組合對定位精度的影響,分別選取25,50,75,100個參考點(diǎn)作為參數(shù),以平均定位誤差作為評價(jià)指標(biāo)分析算法。不同訓(xùn)練樣本數(shù)目/測試樣本數(shù)目組合及參考點(diǎn)選取在動態(tài)復(fù)雜環(huán)境下對定位精度的影響如圖5所示。
從實(shí)驗(yàn)結(jié)果可以看出,參考點(diǎn)數(shù)目為50~75時,平均定位誤差在1.5 m內(nèi),定位精度相對較高;參考點(diǎn)數(shù)目小于50或大于75時,定位結(jié)果相對較差,原因是參考點(diǎn)太少或太多使得匹配算法計(jì)算失真情況較多。在靜態(tài)場景中最小平均距離誤差在0.85 m內(nèi),原因是在動態(tài)場景中人員的活動導(dǎo)致信號多徑效應(yīng),干擾了信號的穩(wěn)定性。
5.2.3 不同定位算法的性能分析
依據(jù)上節(jié)實(shí)驗(yàn)結(jié)果,參考點(diǎn)選擇50個,測試樣本數(shù)據(jù)取500/200,使用2個AP建立指紋庫,在相同的測試場景下,將本文提出的定位算法與基于 RSSI 的指紋定位算法、基于CSI 的FIFS[16]指紋定位算法、基于CSI的CSI-MIMO[17]指紋定位算法進(jìn)行對比測試。靜態(tài)和動態(tài)2種場景中定位距離誤差概率累積分布如圖6所示。
Figure 6 Cumulative distribution of localization distance error probabilities for two scenarios圖6 2種場景中定位距離誤差概率累積分布
從實(shí)驗(yàn)結(jié)果可以看出,由于基于RSSI的定位算法易受到環(huán)境的干擾,很不穩(wěn)定,誤差最大,在動態(tài)場景中平均距離誤差有80%在3 m左右。FIFS和CSI-MIMO使用了信道狀態(tài)信息作為指紋特征值,能夠較好地克服原始信號的多徑干擾,這2種算法的定位精度明顯高于RSSI的。而本文提出的定位算法,在FIFS和CSI-MIMO的基礎(chǔ)上吸取了精華,對采集數(shù)據(jù)進(jìn)行濾波聚類后提高了指紋特征,進(jìn)一步提升了定位精度。在靜態(tài)場景中,平均距離誤差有90%在1.5 m以內(nèi);動態(tài)場景中,平均距離誤差有90%在2 m以內(nèi),其整體性能優(yōu)于其他3種定位算法,可以實(shí)現(xiàn)對目標(biāo)位置更加合理的估計(jì)。
本文算法在室內(nèi)靜態(tài)和動態(tài)2種環(huán)境下分別進(jìn)行測試驗(yàn)證,在離線階段對原始采集特征數(shù)據(jù)使用方差補(bǔ)償?shù)淖赃m應(yīng)卡爾曼濾波降噪后,再通過二分K-means聚類算法生成多個特征向量,在一定程度上降低了室內(nèi)多徑效應(yīng)的影響,有更好的空間特性,從而提高了定位精度,相較現(xiàn)有的一些算法和傳統(tǒng)的室內(nèi)定位算法均有所改善,實(shí)用性較強(qiáng)。