孟俊劍,鄒進(jìn)貴,趙胤植
(1.武漢大學(xué) 測(cè)繪學(xué)院,武漢 430079;2.桂林理工大學(xué) 廣西空間信息與測(cè)繪重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541006)
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)及物聯(lián)網(wǎng)等的不斷發(fā)展,使得基于位置的服務(wù)(LBS)在人們生活中的重要性日益突出[1-4].在室外可以通過目前比較成熟的全球衛(wèi)星導(dǎo)航系統(tǒng)(GNSS)技術(shù)獲得亞米級(jí)的精度,然而在室內(nèi)環(huán)境中,由于建筑物的遮擋現(xiàn)象比較嚴(yán)重,使得可利用的GNSS信號(hào)難以滿足室內(nèi)定位的需求.在室內(nèi)定位領(lǐng)域的眾多解決方案中,由于W i-Fi設(shè)備的普及率較高,W i-Fi信號(hào)廣泛存在于各種室內(nèi)空間,使得W i-Fi信號(hào)成為一種比較理想的定位源[5-6].
傳統(tǒng)的基于W i-Fi接收信號(hào)強(qiáng)度指示(RSSI)的定位方法操作簡(jiǎn)單,但由于RSSI易受多徑、時(shí)變等因素的影響[7],基于RSSI的定位方法定位精度難以有效提升.隨著IEEE 802.11n系列無線局域網(wǎng)通訊協(xié)議中應(yīng)用了多輸入多輸出(M IMO)和正交頻分復(fù)用(OFDM)等技術(shù),使得收發(fā)端設(shè)備之間的信道特征即信道狀態(tài)信息(CSI)可以在物理層進(jìn)行估計(jì)[8].CSI揭示了散射、衰落及功率隨距離衰減等綜合效應(yīng),是無線信號(hào)在空間傳播更為本質(zhì)的描述,其為提升定位精度及改善多徑效應(yīng)等問題提供了新途徑[9-10].
現(xiàn)有的基于CSI的室內(nèi)定位方法大致可以分為指紋匹配、測(cè)角和測(cè)距三類[11],其中基于指紋匹配的定位方法由于受多徑效應(yīng)影響較小、易于實(shí)施等優(yōu)點(diǎn)而備受關(guān)注.相比于RSSI,CSI中包含更為豐富的特征信息,可以構(gòu)建更高維的指紋庫(kù)[12-14],但同時(shí)也導(dǎo)致構(gòu)建的指紋庫(kù)存儲(chǔ)量大、構(gòu)建定位模型所需的計(jì)算和時(shí)間開銷大及實(shí)時(shí)定位計(jì)算量大等問題[15].對(duì)此本文提出首先使用主成分分析(PCA)的方法對(duì)原始指紋信息進(jìn)行降維得到主要特征,而后利用序列最小最優(yōu)化(SMO)算法構(gòu)建指紋點(diǎn)主要特征與其位置的回歸模型并用于位置預(yù)測(cè).
基于指紋的定位方法通常分為離線階段和在線階段.在離線階段,首先將定位區(qū)域劃分為若干格網(wǎng),而后分別在各個(gè)格網(wǎng)處利用終端采集來自各個(gè)接入點(diǎn)的無線信號(hào),然后提取無線信號(hào)的特征構(gòu)建指紋庫(kù);在線階段利用同樣的方式得到待定點(diǎn)的指紋特征,將其與指紋庫(kù)中記錄逐條比對(duì)來確定待定點(diǎn)的位置.
CSI反映了無線通信鏈路的信道屬性,相比于MAC層的RSSI,物理層的CSI是一種更細(xì)粒度的信息.對(duì)于OFDM系統(tǒng)的窄帶平坦衰落信道,其信道模型可以表示為
式中:Y和X分別表示接收向量及發(fā)送向量;H為信道矩陣;N為高斯白噪聲.信道矩陣H可通過下式進(jìn)行估計(jì):
式中:p和q分別為發(fā)射和接收天線的個(gè)數(shù);Hpq表示第p根發(fā)射天線和第q根接收天線組成的通信鏈路對(duì)應(yīng)的信道矩陣,并且有
式中:n為OFDM系統(tǒng)中子載波個(gè)數(shù);Hpq,i為鏈路Hpq第i個(gè)子載波對(duì)應(yīng)的CSI信息,其可以表示為
使用CSI采集工具得到的原始CSI信息為形如a+bi型的復(fù)數(shù)值,幅值 |H|和相位 ∠H可按下式計(jì)算:
在數(shù)據(jù)采集過程中,由于硬件設(shè)備的不穩(wěn)定及人員走動(dòng)等因素的影響使得采集的信號(hào)中難免會(huì)有一些異常值,因此有必要對(duì)其進(jìn)行過濾和剔除.本文采用拉依達(dá)準(zhǔn)則(3σ準(zhǔn)則)剔除CSI幅值和相位數(shù)據(jù)中的異常值,而后通過均值濾波的方法得到該點(diǎn)的指紋特征.
1.2.1 CSI幅值預(yù)處理
按式(7)可計(jì)算出CSI的幅值,圖1給出了在同一位置采集的200個(gè)數(shù)據(jù)包的對(duì)應(yīng)原始幅值,可以發(fā)現(xiàn)同一子載波的振幅大都集中在某一范圍內(nèi),但也存在少許偏差較大的異常值,圖2給出了利用3σ準(zhǔn)則對(duì)異常值剔除之后的幅值,可以發(fā)現(xiàn)原始幅值中的異常值可被有效的剔除.
圖1 同一位置200個(gè)數(shù)據(jù)包的原始幅值
圖2 剔除異常值之后的幅值
1.2.2 CSI相位預(yù)處理
與CSI幅值不同,利用式(8)計(jì)算得到的相位值不能直接利用,這是由于硬件設(shè)備的限制,使得發(fā)射端和接收端的同步誤差不能完全消除,使得接收端接收到的CSI中包含由時(shí)鐘同步誤差引起的采樣頻率偏移以及由不同載頻誤差引起的載波頻率偏移.這也使得CSI相位信息在室內(nèi)定位中的應(yīng)用受到限制,目前常用的一種做法是采用線性變換的方法對(duì)原始相位進(jìn)行校正[16-17],但由于測(cè)量得到的原始相位是纏繞相位,如圖3所示需要先對(duì)其進(jìn)行解纏,然后對(duì)解纏后的相位進(jìn)行校正.圖3是在同一位置處采集的200個(gè)數(shù)據(jù)包對(duì)應(yīng)的原始相位,解纏后的相位如圖4所示.
圖3 同一位置200個(gè)數(shù)據(jù)包的原始相位
圖4 解纏后相位
線性變換的方法如下:設(shè)第i個(gè)子載波解纏后的相位為,則有
式中:φ為第i個(gè)子載波的真實(shí)相位;mi為第i個(gè)子載波的編號(hào);N為快速傅里葉變換的大小,在802.11 a/g/n協(xié)議中N為64;?t為由采樣頻率偏移導(dǎo)致的時(shí)間偏差;β為由載波頻率偏移引起的相位偏移;Z為測(cè)量噪聲.由于?t和β均為未知量,故難以直接計(jì)算真實(shí)相位,但可以通過的線性變換消除這兩個(gè)未知量,這里引入兩個(gè)中間量k、l,其中:
圖5給出了經(jīng)線性變換后的相位,圖6給出了使用3σ準(zhǔn)則剔除異常值后的相位.
圖5 線性變換后相位
圖6 剔除異常值后相位
本文使用的算法首先在離線階段提取出指紋點(diǎn)CSI的幅值和相位特征構(gòu)建原始指紋庫(kù) (Fi,Li),i=1,2,···,n,其中,F(xiàn)i=(fi1,fi2,···,fit)為原始指紋特征,t為原始指紋特征維數(shù),Li=(xi,yi)為對(duì)應(yīng)指紋點(diǎn)的坐標(biāo),n為指紋點(diǎn)的個(gè)數(shù);而后對(duì)原始指紋庫(kù)進(jìn)行PCA降維提取出主要特征,得到降維后的指紋庫(kù)其中,m為降維后的特征維數(shù);然后利用SMO算法建立指紋點(diǎn)的主要特征與其位置的支持向量回歸(SVR)模型:并利用此關(guān)系模型對(duì)測(cè)試點(diǎn)的位置進(jìn)行預(yù)測(cè).
PCA作為一種重要的數(shù)據(jù)降維方法,已被廣泛應(yīng)用于數(shù)據(jù)分析、圖像處理及機(jī)器學(xué)習(xí)等領(lǐng)域,用以減少數(shù)據(jù)冗余及數(shù)據(jù)去相關(guān)等[18].其核心思想是將原始數(shù)據(jù)通過線性變換投影到一個(gè)新的數(shù)據(jù)空間(即主成分空間),通過選取對(duì)原始數(shù)據(jù)方差貢獻(xiàn)最大的若干維主成分來實(shí)現(xiàn)數(shù)據(jù)的降維.本文利用PCA對(duì)原始CSI指紋特征進(jìn)行降維基于這樣一種假設(shè):由一對(duì)收發(fā)天線組成的通信鏈路上的各子載波信號(hào)從發(fā)射端到接收端的傳播路徑是趨于一致的,即受到多徑等因素的影響相當(dāng),故這組子載波的信號(hào)特征存在一定的相關(guān)性,可以通過降維減少數(shù)據(jù)冗余.原始數(shù)據(jù)與保留的主成分之間的轉(zhuǎn)換可以通過一個(gè)投影矩陣來實(shí)現(xiàn),表1給出了PCA變換的偽代碼.
表1 PCA變換偽代碼
SMO算法是由Platt在1998年提出的用于訓(xùn)練支持向量機(jī)(SVM)的一種快速算法[18].本文旨在利用SMO算法建立降維后的指紋點(diǎn)特征與對(duì)應(yīng)位置坐標(biāo)的SVR模型
進(jìn)一步可得SVR的解的表達(dá)式:
式中,σ為高斯核函數(shù)的帶寬.
SVM的分類及回歸問題均可化為求解凸二次規(guī)劃的問題,此類問題具有整體最優(yōu)解,但在訓(xùn)練樣本數(shù)量較大時(shí),計(jì)算開銷正比于樣本量且實(shí)現(xiàn)較復(fù)雜,SMO算法的出現(xiàn)很好地解決了這一問題.SMO算法是一種啟發(fā)式算法,其基本思路是每次循環(huán)選出兩個(gè)需要更新的變量 αi,αj,并固定其余參數(shù),利用解析的方法對(duì)式(16)快速求解并更新 αi,αj,循環(huán)將原問題分解為子問題并對(duì)子問題進(jìn)行求解,最終達(dá)到求解原問題的目的.本文采用開源的機(jī)器學(xué)習(xí)及數(shù)據(jù)挖掘軟件Weka中提供的SMO回歸算法包構(gòu)建回歸模型,選用的高斯核參數(shù)σ=0.015,本文算法的整體框架圖如圖7所示.
實(shí)驗(yàn)地點(diǎn)在武漢大學(xué)測(cè)繪學(xué)院114實(shí)驗(yàn)室(7.0m×6.5m),實(shí)驗(yàn)室擺有桌椅等雜物.實(shí)驗(yàn)選取大小為4.8m×4.8m的方形區(qū)域,布設(shè)41個(gè)指紋點(diǎn),如圖8實(shí)心點(diǎn)所示,圖中格網(wǎng)邊長(zhǎng)為0.6m,另外隨機(jī)選取30個(gè)測(cè)試點(diǎn)用于算法的精度評(píng)估.實(shí)驗(yàn)使用一臺(tái)不設(shè)密碼型號(hào)為TL-WDR5620的雙發(fā)雙收四天線路由器,接收終端為一臺(tái)裝有Intel 5300無線網(wǎng)卡(三個(gè)接收天線)的筆記本,CSI采集工具為安裝在Ubuntu 14.04操作系統(tǒng)上的linux-80211n-csitool開源工具包[19].數(shù)據(jù)采集過程中路由器放于地面,采集者首先操作筆記本連接路由器,然后依次站在設(shè)定的位置利用ping命令進(jìn)行數(shù)據(jù)包的采集.同時(shí)為模擬真實(shí)環(huán)境,實(shí)驗(yàn)過程中保持實(shí)驗(yàn)區(qū)域有人員走動(dòng),每個(gè)指紋點(diǎn)和測(cè)試點(diǎn)均采集250個(gè)數(shù)據(jù)包.數(shù)據(jù)采集完成后,利用文獻(xiàn)[19]中提供的linux-80211n-csitool-supplementary工具包對(duì)各個(gè)點(diǎn)位的原始.dat文件進(jìn)行解析,得到原始的CSI信息.
圖8 實(shí)驗(yàn)區(qū)域指紋點(diǎn)布設(shè)示意圖
根據(jù)實(shí)驗(yàn)配置,離線階段構(gòu)建的原始指紋特征維數(shù)為60,通過PCA變換選擇保留原始指紋95%的主成分信息,得到新指紋特征的維數(shù)為4.經(jīng)過PCA變換之后的指紋庫(kù)存儲(chǔ)量約為原始指紋庫(kù)的1/15.顯然,在建立降維后的特征與對(duì)應(yīng)坐標(biāo)的回歸模型時(shí)所需的計(jì)算開銷及時(shí)間成本也將大大減少,這一點(diǎn)對(duì)于以手機(jī)為代表的計(jì)算資源有限的移動(dòng)定位終端來說具有重要意義.
經(jīng)過PCA變換,原始指紋信息不可避免的存在一定程度的損失.文章首先探究了先進(jìn)行PCA變換再通過SMO算法建立降維后指紋特征與對(duì)應(yīng)位置的回歸模型以及直接利用SMO算法建立原始指紋特征與對(duì)應(yīng)位置的回歸模型兩種方式對(duì)定位精度的影響,圖9給出了在分別利用25、50、100、150、200及250個(gè)數(shù)據(jù)包對(duì)測(cè)試點(diǎn)進(jìn)行定位時(shí)PCA-SMO與SMO算法的平均定位誤差.
圖9 PCA-SMO與SMO算法平均定位誤差對(duì)比
從圖中可以看出,SMO算法的定位精度整體上均優(yōu)于PCA-SMO算法,但隨著定位所利用的數(shù)據(jù)包數(shù)量逐漸增多,兩者定位誤差的差距逐漸縮小,最終穩(wěn)定在5 cm之內(nèi).總的來看,在綜合考量離線階段建模的計(jì)算及時(shí)間開銷、定位的實(shí)時(shí)性等因素時(shí),PCA變換帶來的精度損失是可接受的,尤其是在以手機(jī)端為代表的消費(fèi)級(jí)室內(nèi)定位應(yīng)用場(chǎng)景中,因此進(jìn)行PCA變換是有必要的.
此外,本文還在相同實(shí)驗(yàn)條件下對(duì)比了PCA-SMO算法與鄰近算法(KNN)、WKNN、FIFS[20]及CSI-M IMO[21]等算法的定位效果.圖10給出了上述幾種定位算法的定位誤差累積分布函數(shù).
圖10 定位誤差累計(jì)分布函數(shù)
由圖10可得:本文算法整體是最優(yōu)的且可靠性要高于其它幾種算法;當(dāng)定位誤差小于等于1.5 m時(shí),本文算法的累計(jì)概率為70%,而KNN、WKNN、FIFS及CSI-M IMO算法的累計(jì)概率分別為53%、35%、57%、43%;PCA-SMO算法在2m之內(nèi)定位誤差的累計(jì)概率可以達(dá)到97%,其它幾種算法的累計(jì)概率依次為80%、70%、77%、87%.
最后,表2統(tǒng)計(jì)了上述幾種算法的定位誤差.其中本文PCA-SMO算法的平均定位誤差為1.25m,其它幾種定位算法的平均定位誤差分別為1.52m、1.60m、1.56m、1.57m,相比于其它幾種算法,本文算法的平均定位精度分別提升了21.6%、28.0%、24.8%、25.6%.
表2 幾種定位算法的定位誤差統(tǒng)計(jì) m
W i-Fi作為室內(nèi)定位領(lǐng)域的重要定位源之一,傳統(tǒng)的基于RSSI的指紋定位方法由于可利用的特征信息有限,導(dǎo)致其定位精度受到限制.而CSI中包含豐富的特征信息,可以在一定程度上改善由于指紋特征不足帶來的精度問題,但與此同時(shí),離線階段構(gòu)建的指紋庫(kù)存儲(chǔ)量變大、構(gòu)建定位模型的計(jì)算和時(shí)間開銷以及定位的實(shí)時(shí)性等問題也應(yīng)受到關(guān)注.對(duì)此,本文提出的PCA-SMO算法首先對(duì)原始指紋特征進(jìn)行PCA降維,然后通過SMO算法構(gòu)建降維后指紋與對(duì)應(yīng)位置的回歸模型,能夠在保證定位精度的前提下,較好地克服上述問題.另外,在實(shí)時(shí)定位過程中由于人員流動(dòng)等因素的影響,會(huì)使得CSI特征發(fā)生變化,尋找一種有效的異常值探測(cè)算法有待進(jìn)一步研究.