蔣天潤,尹 露,鄧中亮,王子陽
(北京郵電大學(xué)電子工程學(xué)院,北京 100876)
室外條件下,用戶使用的定位設(shè)備主要基于全球定位系統(tǒng)(Global Positioning System,GPS)。由于室內(nèi)的接收機(jī)受到建筑物的遮擋,使得接收到的衛(wèi)星定位信號(hào)衰減很快,甚至完全無法接收到信號(hào)。隨著移動(dòng)設(shè)備和無線傳感器的大量部署,關(guān)于室內(nèi)有源主動(dòng)定位的研究取得了長足發(fā)展,但它在室內(nèi)定位時(shí)需要人攜帶有關(guān)的傳感器設(shè)備,使得有源定位的廣泛應(yīng)用受到較大阻礙。
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,人們對(duì)于獲得高精度位置信息的需求愈加強(qiáng)烈,未來室內(nèi)定位將成為一項(xiàng)生活所必須的基本服務(wù)需求。目前,室內(nèi)定位技術(shù)種類繁多,主要有基于射頻識(shí)別(Radio Frequency Identification,RFID)、超聲波、紅外線和WiFi等的室內(nèi)定位技術(shù)[1]。RFID定位需要提前布置硬件設(shè)備,實(shí)現(xiàn)大范圍推廣的成本很高[2]。紅外定位技術(shù)的精度會(huì)受到室內(nèi)燈光、熱源的影響,另外室內(nèi)的各種障礙物也會(huì)遮擋紅外線,導(dǎo)致紅外線不能傳輸很遠(yuǎn)的距離,以及定位誤差增大[3]。由于超聲波在空氣中傳播時(shí)衰減速度很快,距離稍遠(yuǎn)超聲波定位技術(shù)的定位誤差就會(huì)迅速增大。無線局域網(wǎng)已在人口密集區(qū)域廣泛普及,各處的室內(nèi)都大量部署了無線上網(wǎng)設(shè)備,基于WiFi的室內(nèi)定位技術(shù)具有定位耗時(shí)短、覆蓋面積大、成本低等優(yōu)點(diǎn),因此該技術(shù)成為了室內(nèi)定位研究領(lǐng)域的熱點(diǎn)方向。
目前基于WiFi的室內(nèi)定位研究主要基于接收信號(hào)強(qiáng)度指示(Received Signal Strength Indicator,RSSI)。RSSI描述了接收信號(hào)功率的大小,由于目前多數(shù)終端設(shè)備都支持獲得RSSI信息,故目前的無線通信技術(shù)都使用RSSI作為評(píng)價(jià)信道質(zhì)量的標(biāo)準(zhǔn),從而改進(jìn)通信系統(tǒng)?;赪iFi的RSSI指紋定位法將處理后的RSSI作為每個(gè)位置的指紋特征,從而開展基于位置指紋庫的指紋定位。RSSI是多條路徑信號(hào)的簡單疊加[4],因此RSSI并不能充分描述子信道受環(huán)境的干擾程度。此外,盡管單個(gè)信道的信號(hào)波動(dòng)較小,但多條信道中信號(hào)疊加的RSSI波動(dòng)范圍甚至達(dá)到了5dB[5]。單一使用RSSI作為信號(hào)特征進(jìn)行指紋定位不能滿足高精度、高穩(wěn)定性的室內(nèi)定位需求。
相較于RSSI,信道狀態(tài)信息(Channel State Information,CSI)能夠更好地描述多徑信道,區(qū)分來自多個(gè)信道的多徑信號(hào),在靜態(tài)環(huán)境下具有較好的穩(wěn)定性。CSI的一個(gè)數(shù)據(jù)分組中同時(shí)包含著多個(gè)子載波的幅頻響應(yīng)和相頻響應(yīng)。在室內(nèi)定位中以子信道的多維矩陣對(duì)單一的RSSI進(jìn)行擴(kuò)展來構(gòu)建格點(diǎn)特征,由此可以獲得更高的定位精度。近年來,Inter和Atheros網(wǎng)卡供應(yīng)商對(duì)其部分網(wǎng)卡固件程序進(jìn)行了處理,并有相關(guān)組織開源了對(duì)應(yīng)的軟件開發(fā)包,使得可以對(duì)Linux系統(tǒng)以及Windows系統(tǒng)下的網(wǎng)卡開源驅(qū)動(dòng)程序進(jìn)行修改,利用調(diào)試模式來獲取某些無線網(wǎng)卡的CSI數(shù)據(jù)。使用大量部署的基于802.11n標(biāo)準(zhǔn)的WiFi路由設(shè)備可以獲得CSI[6]?;贑SI的指紋定位需要的額外硬件設(shè)備較少,實(shí)現(xiàn)成本低,具有廣泛的應(yīng)用前景。
目前,使用裝配Intel 5300網(wǎng)絡(luò)適配器的普通WiFi設(shè)備能夠獲得一個(gè)采樣個(gè)數(shù)為30的CSI信息,利用兼容IEEE802.11.n的無線網(wǎng)卡從接收的數(shù)據(jù)包中提取一組CSI,每組CSI代表一個(gè)正交頻分復(fù)用子載波的幅度與相位,如式(1)所示
(1)
指紋定位法主要包括2個(gè)階段。離線訓(xùn)練階段即數(shù)據(jù)采集和處理過程,該過程主要工作是采集格點(diǎn)信息,將該信息處理后構(gòu)建為格點(diǎn)特征,常用的格點(diǎn)特征包括相位和幅度等;實(shí)現(xiàn)格點(diǎn)位置與格點(diǎn)特征的映射;建立無線地圖和指紋定位數(shù)據(jù)庫。
在在線定位階段,實(shí)時(shí)采集待定位點(diǎn)的格點(diǎn)特征,輸入至定位服務(wù)器,服務(wù)器將定位端實(shí)時(shí)上報(bào)的數(shù)據(jù)與離線階段建立的位置指紋庫的數(shù)據(jù)進(jìn)行匹配,計(jì)算出實(shí)時(shí)數(shù)據(jù)最佳匹配的參考點(diǎn)。在線階段的主要思路是依賴一定的準(zhǔn)則選擇與實(shí)時(shí)數(shù)據(jù)最為接近的參考點(diǎn)。
文獻(xiàn)[7]表明WiFi的CSI具有更高的時(shí)間穩(wěn)定性,并具有從多徑效應(yīng)中獲益的能力,因此適用于準(zhǔn)確的存在檢測(cè)和定位。文獻(xiàn)[8]表明由于室內(nèi)環(huán)境的復(fù)雜性對(duì)多徑信號(hào)傳播的影響,難以建立精確的信號(hào)傳播模型,因此基于CSI的指紋定位法優(yōu)于基于傳統(tǒng)傳播模型的室內(nèi)定位方法。文獻(xiàn)[9]基于CSI的子信道頻率的不同,用合并且求均值后的5個(gè)子載波的CSI代替原來的30個(gè)子載波的CSI,并對(duì)多根天線的CSI求平均值處理,提出了一種基于后驗(yàn)概率的指紋定位算法。Qian K.等[10]利用CSI導(dǎo)出運(yùn)動(dòng)誘發(fā)的多普勒頻移,并提取出該頻移用于確定運(yùn)動(dòng)方向。
在北京郵電大學(xué)的新科研樓內(nèi)選擇一間10m×10m的實(shí)驗(yàn)室,室內(nèi)放置有大量物品以及人員走動(dòng)。根據(jù)地磚將室內(nèi)劃分成1m×1m的方格,在每個(gè)參考點(diǎn)測(cè)量CSI數(shù)據(jù),每個(gè)格點(diǎn)的CSI數(shù)據(jù)存儲(chǔ)在若干個(gè)數(shù)據(jù)包中,如圖1所示。
圖1 數(shù)據(jù)采集環(huán)境示意圖Fig.1 Data collection environment
經(jīng)過上述操作獲得的原始CSI數(shù)據(jù)含有高頻噪聲,需要對(duì)原始CSI數(shù)據(jù)進(jìn)行低通濾波處理。使用h表示該巴特沃斯濾波器的傳遞函數(shù)。單個(gè)數(shù)據(jù)包中的CSI數(shù)據(jù)為H(1*30),濾波后的矩陣記為H′(1*30)
H′=h*H
(2)
(3)
K最近鄰(K-Nearest Neighbor,KNN)算法,K表示距離自己最近的k個(gè)數(shù)據(jù)樣本[11]。KNN算法使用的相似度量是曼哈頓距離或歐式距離,該算法所選擇的鄰居都是已經(jīng)正確分類的對(duì)象。該算法在定類決策上只依據(jù)最鄰近的一個(gè)或者幾個(gè)樣本的類別來決定待分樣本所屬的類別。
在實(shí)際的生產(chǎn)實(shí)踐中,KNN算法的缺陷是找到的近鄰并不是實(shí)際意義上的近鄰。特征向量之間一般有較大可能性是相關(guān)的,最近距離的求解過程中沒有考慮特征之間的關(guān)系,故距離的計(jì)算不夠準(zhǔn)確,從而影響了定位的準(zhǔn)確度。為了解決以上問題,使用加權(quán)K最近鄰(weighted K-Nearest Neighbor,wKNN)算法[12]。
將每一鄰居樣本的坐標(biāo)與對(duì)應(yīng)權(quán)重相乘,結(jié)果相加[13],求出總和后,將結(jié)果除以全部權(quán)重之和。估計(jì)坐標(biāo)的計(jì)算方法如式(4)所示
(4)
式中,Di表示鄰居樣本的坐標(biāo),wi表示近鄰樣本的權(quán)重,f(x)是預(yù)測(cè)的坐標(biāo)結(jié)果。
wi=1/(distance+const)
(5)
式中,權(quán)重wi是距離數(shù)值加上一個(gè)常數(shù)的倒數(shù)。
在圖2和圖3中,藍(lán)色虛線代表了測(cè)試所走過的真實(shí)路徑,*號(hào)代表在藍(lán)色真實(shí)路徑上均勻取點(diǎn)所對(duì)應(yīng)的定位結(jié)果。在K=5,離線指紋庫容量為100,在線數(shù)據(jù)集容量為35時(shí),KNN定位誤差是2.732m,wKNN定位誤差是2.651m。
圖2 KNN定位結(jié)果圖Fig.2 The locating result of KNN algorithm
圖3 wKNN定位結(jié)果圖Fig.3 The locating result of wKNN algorithm
在離線數(shù)據(jù)集容量為100,在線數(shù)據(jù)集容量為35時(shí),改變K值,觀察其對(duì)定位誤差的影響。
從圖4可以看出,兩種算法的定位誤差隨K的變化曲線有一定的相似性。在K<9時(shí),兩種算法的定位誤差隨K的增大而減小;在K>9后,兩種算法的定位誤差隨K的增大反而逐漸增大,但此時(shí)的最大定位誤差仍小于K<9時(shí)的最大定位誤差。
圖4 兩種算法定位誤差隨K值變化圖Fig.4 The tendency chart of positioning error with K
OFDM系統(tǒng)中的每個(gè)子信道是相互獨(dú)立的[14],在CSI中,理論上每個(gè)子信道的幅度也是相互獨(dú)立的,即在本次測(cè)試中理論上各特征向量之間是不相關(guān)的。因此,使用wKNN算法對(duì)定位精度的改善有限,這也解釋了以上兩種算法的定位誤差隨K的變化趨勢(shì)較為相似的原因。
較小的K值會(huì)導(dǎo)致鄰居不夠,定位精度受此影響[15],因此K<9時(shí)定位誤差隨K的變化趨勢(shì)如上所示;但是過大的K值會(huì)導(dǎo)致不屬于同一類的點(diǎn)也被分入鄰居內(nèi),使得定位誤差增大,這是K>9后定位誤差隨K增大而增大的原因。
通常評(píng)價(jià)一種定位算法性能的依據(jù)是該算法的定位精度,但該評(píng)價(jià)依據(jù)并沒有考慮到在線測(cè)量數(shù)據(jù)增加時(shí),該種算法的穩(wěn)定性問題。因此本文提出了一種評(píng)價(jià)KNN、wKNN和隨機(jī)森林算法優(yōu)劣的依據(jù):三種算法定位時(shí)間的穩(wěn)定性和定位精度的穩(wěn)定性。
某種算法的運(yùn)行時(shí)間在一定程度上反映了該算法的計(jì)算量和資源占用的多少,由于算法的運(yùn)行時(shí)間具有一定的時(shí)變性和不穩(wěn)定性,選取運(yùn)行時(shí)間的標(biāo)準(zhǔn)差占平均運(yùn)行時(shí)間的百分比作為評(píng)價(jià)標(biāo)準(zhǔn)。定位精度的穩(wěn)定性可以直接使用在線樣本容量為100~20000時(shí)定位精度的平均值與標(biāo)準(zhǔn)差進(jìn)行評(píng)價(jià)。
如果將10m×10m的辦公區(qū)域劃分為0.5m×0.5m的方格,則指紋庫中最多只有400個(gè)點(diǎn)的指紋信息。0.5m的方格長度相較于超過2m的定位誤差很小,可以認(rèn)為在該10m×10m的區(qū)域中,至多只存在400個(gè)定位結(jié)果,那么,在線數(shù)據(jù)集所有可能點(diǎn)的坐標(biāo)都在這400個(gè)點(diǎn)中產(chǎn)生。因此,樣本容量的擴(kuò)充方法如圖5所示,將新的在線樣本集逐個(gè)編號(hào),每次從以上的原始樣本集中隨機(jī)取樣,重復(fù)400次,將400個(gè)取樣結(jié)果全部用來擴(kuò)充原始樣本集,將擴(kuò)充的結(jié)果作為新樣本集,直至樣本容量符合實(shí)驗(yàn)要求。
圖5 樣本集擴(kuò)充方法Fig.5 Sample capacity expansion method
測(cè)試軟件均使用Pycharm。在線數(shù)據(jù)集的樣本數(shù)量為100~20000。KNN與wKNN算法中K=6,隨機(jī)森林算法中決策樹數(shù)量為110,max_features=0.45,max_depth=15。
從圖6和表1中可以看出,根據(jù)定位誤差的標(biāo)準(zhǔn)差對(duì)比,隨機(jī)森林算法的定位誤差的波動(dòng)性最小,KNN算法最大。在樣本容量逐漸增加的過程中,隨機(jī)森林算法定位誤差最為穩(wěn)定。同時(shí),隨機(jī)森林的定位誤差最小,性能也最好。
從三種算法運(yùn)行時(shí)間的標(biāo)準(zhǔn)差占平均運(yùn)行時(shí)間的百分比來看,隨機(jī)森林是3.67%,wKNN是5.31%,KNN是9.87%。隨機(jī)森林的運(yùn)行時(shí)間穩(wěn)定性要高于KNN和wKNN算法。
圖6 三種算法運(yùn)行時(shí)間與定位誤差隨樣本容量變化圖Fig.6 The tendency chart of positioning time and positioning error with sample size of three algorithms
表1 三種算法評(píng)價(jià)指標(biāo)對(duì)比
1)本文介紹了CSI和指紋定位法的概念,分析了使用CSI進(jìn)行指紋定位的優(yōu)勢(shì),闡述了指紋庫的構(gòu)建過程和定位方法。
2)分析了KNN和wKNN算法中關(guān)鍵參數(shù)K對(duì)定位誤差的影響。結(jié)果表明,在K較小時(shí),增大K可以使用更多相關(guān)鄰居來計(jì)算定位結(jié)果,進(jìn)而提高定位精度;但過大的K值會(huì)導(dǎo)致原本不相關(guān)的鄰居加入鄰居隊(duì)列,也會(huì)使定位誤差增大。
3)在線樣本集容量增加時(shí),測(cè)試了KNN、wKNN和隨機(jī)森林算法的運(yùn)行時(shí)間和定位精度的穩(wěn)定性,結(jié)果表明,隨機(jī)森林算法不僅定位精度最高,而且定位時(shí)間與定位精度的穩(wěn)定性最好。