萬(wàn)立志 崔英花
(北京信息科技大學(xué)信息與通信工程學(xué)院 北京 100101)
隨著無(wú)線通信技術(shù)的日益成熟,人們對(duì)室內(nèi)及小范圍定位的需求越來(lái)越多。傳統(tǒng)的定位方法在某些特殊應(yīng)用場(chǎng)景下無(wú)法適用,比如入侵檢測(cè)、入室盜竊等,在這些場(chǎng)景下定位目標(biāo)不會(huì)攜帶定位設(shè)備,無(wú)設(shè)備定位(Device Free Localization,DFL)的概念應(yīng)運(yùn)而生。2007年在ACM MobiCom會(huì)議上Moustafa Youssef團(tuán)隊(duì)首次提出了DFL[1],通過(guò)構(gòu)建合適的通信網(wǎng)絡(luò),由信號(hào)鏈路的變化量來(lái)實(shí)現(xiàn)目標(biāo)定位。
位置指紋的定位方法在主動(dòng)式定位中就有所研究,在無(wú)設(shè)備定位中該方法同樣適用。關(guān)鍵點(diǎn)在于位置指紋數(shù)據(jù)的獲取[2],無(wú)設(shè)備定位中如何計(jì)算出目標(biāo)對(duì)通信網(wǎng)絡(luò)造成的干擾是一個(gè)難點(diǎn)。據(jù)此,本文利用射線跟蹤方法[3]進(jìn)行無(wú)線信道的建模,獲取信號(hào)發(fā)射端和接收端之間鏈路的信號(hào)強(qiáng)度值,構(gòu)建指紋數(shù)據(jù)庫(kù),避免實(shí)際測(cè)量工作的繁瑣,有效降低了獲取數(shù)據(jù)帶來(lái)的偏差,提高定位精度。
位置指紋實(shí)際上是定位目標(biāo)的坐標(biāo)和指紋數(shù)據(jù)的組合,這個(gè)指紋是能夠代表當(dāng)前鏈路的特征數(shù)據(jù)[4],一般情況下,選擇接收信號(hào)強(qiáng)度(Received Signal Strength,RSS)作為指紋數(shù)據(jù)。
使用位置指紋進(jìn)行定位分為兩個(gè)階段,離線階段和在線階段。在離線階段,在確定好的定位區(qū)域中按照定位需求設(shè)置若干位置已知的參考點(diǎn),待定位的目標(biāo)會(huì)依次經(jīng)過(guò)這些參考點(diǎn),此時(shí)我們可以測(cè)得信號(hào)發(fā)射端和接收端之間鏈路的信號(hào)強(qiáng)度值,這些數(shù)據(jù)連同參考點(diǎn)的位置信息形成指紋數(shù)據(jù)庫(kù)。在在線階段,目標(biāo)進(jìn)入定位區(qū)域中,此時(shí)系統(tǒng)可以采集到當(dāng)前所有信號(hào)鏈路的信號(hào)強(qiáng)度值,并將其與離線階段的指紋數(shù)據(jù)庫(kù)進(jìn)行匹配實(shí)現(xiàn)位置估計(jì)[5]。
假設(shè)定位區(qū)域由M個(gè)發(fā)射端和N個(gè)接收端構(gòu)成無(wú)線通信網(wǎng)絡(luò),則區(qū)域內(nèi)存在M×N條信號(hào)鏈路,再加入一個(gè)信號(hào)節(jié)點(diǎn)作為協(xié)調(diào)器。在該定位區(qū)域內(nèi)選取L個(gè)參考點(diǎn),位置坐標(biāo)為li=(xi,yi)。離線階段,當(dāng)目標(biāo)位于參考點(diǎn)li時(shí),確定好通信信道,后續(xù)的通信過(guò)程都在該信道內(nèi)進(jìn)行。給每個(gè)發(fā)射端和接收端進(jìn)行編號(hào),每一條信號(hào)鏈路作為一組,如圖1所示。
圖1 獲取RSS數(shù)據(jù)示意圖
采用周期循環(huán)的方式獲取信號(hào)強(qiáng)度,具體流程如下:
(1) 第一組發(fā)射端和接收端在信道內(nèi)進(jìn)行通信,此時(shí)其余的發(fā)送端和接收端暫時(shí)關(guān)閉避免產(chǎn)生干擾,發(fā)射端發(fā)送的數(shù)據(jù)包括自身序號(hào)和MAC地址等。發(fā)射端發(fā)送數(shù)據(jù)前進(jìn)行空閑信道評(píng)估(Clear Channel Assessment,CCA),檢測(cè)信道內(nèi)能量是否低于閾值,若低于閾值則說(shuō)明信道內(nèi)無(wú)其他數(shù)據(jù)傳輸,發(fā)送正常進(jìn)行;若高于閾值,則說(shuō)明信道內(nèi)有其他數(shù)據(jù)傳輸,等待一段時(shí)間后再執(zhí)行上述操作。CCA的目的是避免通信碰撞和信號(hào)疊加,減小對(duì)數(shù)據(jù)獲取造成的影響。接收端接收到數(shù)據(jù)后再將自身序號(hào)、收到的數(shù)據(jù)和測(cè)得的RSS數(shù)據(jù)發(fā)給協(xié)調(diào)器進(jìn)行存儲(chǔ)。
(2) 下一組的發(fā)射端和接收端重復(fù)步驟(1)的過(guò)程,直到所有組的數(shù)據(jù)都發(fā)送完畢。協(xié)調(diào)器將這些數(shù)據(jù)連同參考點(diǎn)的坐標(biāo)一起發(fā)給上位機(jī)進(jìn)行存儲(chǔ)。
(3) 改變目標(biāo)所在參考點(diǎn)位置,重復(fù)步驟(1)和步驟(2),直到所有參考點(diǎn)處的信號(hào)鏈路的RSS數(shù)據(jù)都測(cè)量完畢。上位機(jī)將數(shù)據(jù)進(jìn)行處理,按照式(1)構(gòu)建離線指紋數(shù)據(jù)庫(kù)[6]。
(1)
式中:rssmn表示由第n個(gè)接收端與第m個(gè)發(fā)射端所構(gòu)成鏈路的信號(hào)強(qiáng)度;Loc是參考點(diǎn)的坐標(biāo)信息,與RSS是一一對(duì)應(yīng)的。
在線階段,待定位目標(biāo)位于定位區(qū)域的某一位置(xt,yt)時(shí),與離線階段的方法相同,采集此時(shí)所有鏈路的信號(hào)強(qiáng)度,以向量形式存入矩陣RSSt,與先前的指紋數(shù)據(jù)庫(kù)進(jìn)行匹配,依據(jù)一定的準(zhǔn)則選擇最匹配的參考點(diǎn)作為目標(biāo)的估計(jì)位置[7]。
(2)
射線跟蹤方法是一種針對(duì)特定場(chǎng)景的電磁波傳播計(jì)算方法,電磁波從信號(hào)發(fā)射端發(fā)出,可以近似為射線進(jìn)行研究分析,尋找從發(fā)射端到達(dá)接收端的直射、反射和衍射路徑,分別對(duì)各個(gè)路徑的信號(hào)進(jìn)行分析,計(jì)算出反射、衍射系數(shù),再計(jì)算出各個(gè)路徑的信號(hào)強(qiáng)度,最后疊加得到接收端的信號(hào)強(qiáng)度[8]。射線跟蹤方法完全基于電磁波傳播的物理原理,適用于各類特定室內(nèi)場(chǎng)景的信道建模。
在室內(nèi)環(huán)境中,影響傳播的三種基本機(jī)制為直射、反射和衍射,使用合適的信號(hào)傳播模型能有效地減小誤差。很多研究表明,室內(nèi)路徑損耗[9]遵從式(3)。
(3)
式中:PL(d)和PL(d0)表示與發(fā)射端距離d和d0的路徑損耗;n為路徑損耗指數(shù);Xσ表示標(biāo)準(zhǔn)偏差為σdB的正態(tài)隨機(jī)變量。接收端接收到發(fā)射端的信號(hào)強(qiáng)度為:
RSS=Pt-PL(d)
(4)
式中:Pt為發(fā)射端的發(fā)射功率,減去傳播過(guò)程中的路徑損耗就可以得到信號(hào)強(qiáng)度[10]。
運(yùn)用式(4)可以計(jì)算出室內(nèi)環(huán)境中發(fā)射端與接收端之間的信號(hào)強(qiáng)度。由于室內(nèi)環(huán)境復(fù)雜,信號(hào)傳播過(guò)程中受到的干擾較多,僅用式(3)和式(4)難以刻畫(huà)復(fù)雜的傳播過(guò)程。據(jù)此,本文從信號(hào)傳播的直射、反射和衍射路徑出發(fā),分別計(jì)算三種路徑的信號(hào)強(qiáng)度,疊加得到接收端接收到的信號(hào)強(qiáng)度。
直射路徑是指發(fā)射端直線傳播到接收端的路徑,計(jì)算方法如下:
(5)
p=2πtf
(6)
(7)
式中:t為直射時(shí)延;d為發(fā)射端與接收端的距離,v為傳播速率;p為直射相位;f為頻率;E為直射路徑的信號(hào)強(qiáng)度;λ為波長(zhǎng)。
在室內(nèi)環(huán)境中,當(dāng)無(wú)線信號(hào)接觸到四周的墻壁、天花板和地板時(shí)會(huì)發(fā)生反射現(xiàn)象,從而對(duì)信號(hào)傳播造成影響,圖2所示為信號(hào)反射的示意圖。圖中,Ei表示入射場(chǎng),Er表示反射場(chǎng)。參數(shù)ε1、σ1和ε2、σ2分別表示兩種介質(zhì)的介電常數(shù)和導(dǎo)電性。
圖2 反射示意圖
從疊加的角度考慮,在解決一般的反射問(wèn)題時(shí)僅須考慮兩個(gè)正交極化分量,電場(chǎng)極性平行于入射波平面定義為平行極化場(chǎng),電場(chǎng)極性垂直于入射波平面定義為垂直極化場(chǎng)[11]。當(dāng)?shù)谝唤橘|(zhì)是空氣時(shí),在介質(zhì)邊界處,垂直和平行兩種極化場(chǎng)的反射系數(shù)為:
(8)
(9)
ε=ε0εr-jε′
(10)
ε′=σ/2πf
(11)
式中:θ為入射角;ε0=8.85×10-12F/m;εr表示反射介質(zhì)的相對(duì)介電常數(shù);σ表示反射介質(zhì)的導(dǎo)電性;f表示頻率。
計(jì)算出反射系數(shù)后,根據(jù)反射現(xiàn)象的規(guī)律和麥克斯韋公式邊界條件可以推導(dǎo)出式(12)、式(13)。
θi=θr
(12)
E=ΓEi
(13)
式中:Г依賴于極性,如果電場(chǎng)極性平行于入射波平面,那么Г=Г‖;如果電場(chǎng)極性垂直于入射波平面,那么Г=Г⊥。
射線跟蹤中對(duì)衍射路徑的計(jì)算較為復(fù)雜,據(jù)此本研究引入了菲涅耳理論將信號(hào)鏈路和參考點(diǎn)的位置信息聯(lián)系起來(lái),定量計(jì)算目標(biāo)對(duì)信號(hào)鏈路造成的干擾。
在電磁波傳輸時(shí),當(dāng)人體站在某一位置時(shí)會(huì)使得信號(hào)繞著人體邊緣表面?zhèn)鞑?從而信號(hào)能夠傳播到接收端,這種現(xiàn)象可以用菲涅耳理論解釋。它說(shuō)明波前上的所有點(diǎn)都可作為產(chǎn)生次級(jí)波的點(diǎn)源,這些次級(jí)波組合起來(lái)形成傳播方向上新的波前,繞射由次級(jí)波的傳播進(jìn)入人體的陰影區(qū)而形成,在人體的周圍會(huì)形成菲涅耳區(qū)[12]。根據(jù)文獻(xiàn)[12]的理論,在人體周圍的菲涅耳區(qū)中,菲涅耳半徑、人體參數(shù)值和RSS變化量存在式(14)、式(15)、式(16)關(guān)系。
(14)
(15)
(16)
式中:ΔRSS表示RSS變化量;fac表示人體參數(shù),由人體肩寬bx和人體頭部到背部的距離by計(jì)算出;rl(xt)表示人體在xt位置時(shí)的菲涅耳半徑,由波長(zhǎng)λ、xt位置到發(fā)射端的距離ql(xt)和發(fā)射端到接收端的距離dl按照式(15)計(jì)算出:Δh0表示環(huán)境參量。菲涅耳區(qū)示意圖如圖3、圖4所示。
圖3 菲涅耳區(qū)示意圖
圖4 菲涅耳半徑示意圖
在大多數(shù)的無(wú)線通信系統(tǒng)中,接收端的總信號(hào)強(qiáng)度可以表示為上述三種路徑分量的疊加。考慮到計(jì)算復(fù)雜度,假設(shè)室內(nèi)場(chǎng)景簡(jiǎn)單,只有周圍6面墻壁作為障礙物。對(duì)射線遇到障礙物產(chǎn)生的現(xiàn)象進(jìn)行簡(jiǎn)化,只著重考慮一次反射的情況,多次反射后射線的衰減很小,可以忽略不計(jì)。且定位空間內(nèi)只存在單個(gè)人體目標(biāo),所以只考慮一次衍射的情況。使用射線跟蹤方法時(shí),采取雙循環(huán)算法,具體過(guò)程如下:
(1) 當(dāng)目標(biāo)位于第一個(gè)參考點(diǎn)時(shí),先在定位區(qū)域內(nèi)選取第一組信號(hào)發(fā)射端和接收端,假設(shè)該發(fā)射端各向均勻地發(fā)射n條射線,每條射線的初始能量為E,總的能量為nE。對(duì)這n條射線分別進(jìn)行跟蹤,若射線在空間中沒(méi)有遇到任何障礙物時(shí)沿直線一直傳播;遇到墻壁等障礙物時(shí),射線會(huì)發(fā)生反射;遇到人體邊緣時(shí)會(huì)發(fā)生衍射。n條射線中有的射線傳播到能量衰減至閾值以下也未到達(dá)接收端,去除這些射線,記錄到達(dá)接收端的射線的個(gè)數(shù)和傳播路徑等相關(guān)參數(shù)。
(2) 在經(jīng)過(guò)直射、反射和衍射的影響后,射線的能量得到一定的衰減,在接收端接收的信號(hào)包含了1條直射路徑、6條墻壁一次反射路徑、x條多次反射路徑和y條人體衍射路徑的信號(hào),x和y的值取決于實(shí)際射線跟蹤情況。通過(guò)前幾節(jié)的方法可以分別計(jì)算出這些路徑分量的能量,其中多次反射路徑分量只計(jì)算第一次反射時(shí)射線的能量,后續(xù)多次反射造成的衰減忽略不計(jì)。對(duì)這些路徑分量的能量進(jìn)行求和作為當(dāng)前信號(hào)鏈路的信號(hào)強(qiáng)度,計(jì)算方法如下:
(17)
式中:ELOS為直射路徑分量;EPRi為第i條一次反射路徑分量;EMRi為第i條多次反射路徑分量;EDi為第i條衍射路徑分量。
(3) 選取下一組信號(hào)發(fā)射端和接收端,重復(fù)步驟(1)和步驟(2)。
(4) 重復(fù)步驟(3),直到所有的信號(hào)鏈路的信號(hào)強(qiáng)度都計(jì)算完畢。
(5) 改變目標(biāo)所在參考點(diǎn)的位置,重復(fù)步驟(1)至步驟(4),直到計(jì)算出目標(biāo)位于所有參考點(diǎn)處信號(hào)鏈路的信號(hào)強(qiáng)度[13]。
在線階段測(cè)得鏈路的實(shí)時(shí)信號(hào)強(qiáng)度后,需要與離線階段構(gòu)建的指紋數(shù)據(jù)庫(kù)進(jìn)行匹配。匹配的方法有很多,本文選擇的是WKNN算法,是K最近鄰(K-Nearest Neighbor,KNN)算法的演變[14]。算法的精髓在于通過(guò)計(jì)算樣本和待分類事物的距離來(lái)衡量?jī)烧叩南嚓P(guān)性,距離越小說(shuō)明兩者越接近。對(duì)于距離的度量方法有很多種,其中最具代表性的有歐幾里得距離和曼哈頓距離兩種,計(jì)算方法如下:
(18)
(19)
計(jì)算好距離之后,對(duì)距離進(jìn)行遞增排序。選取前k個(gè)距離,找到對(duì)應(yīng)的參考點(diǎn)的位置信息,通過(guò)引入權(quán)重因子來(lái)衡量對(duì)最終結(jié)果的貢獻(xiàn)程度。距離越近,權(quán)重因子越大。最終的分類結(jié)果由這k個(gè)參考點(diǎn)和對(duì)應(yīng)的權(quán)值相乘再相加得到。一般情況下權(quán)重因子的選擇是歐幾里得距離的倒數(shù)[15],計(jì)算方法如下:
(20)
式中:D表示遞增排序后的歐幾里得距離矩陣;wi表示第i個(gè)鄰居的權(quán)重。待定位目標(biāo)的位置估計(jì)可由下式計(jì)算出:
(21)
由無(wú)線信號(hào)傳播規(guī)律可知,實(shí)際的物理距離和接收信號(hào)強(qiáng)度的歐幾里得距離之間具有非線性關(guān)系,因此僅用歐幾里得距離來(lái)定義權(quán)重值是不準(zhǔn)確的[16]。據(jù)此,本文在經(jīng)過(guò)實(shí)驗(yàn)后,將歐幾里得距離和曼哈頓距離結(jié)合來(lái)計(jì)算權(quán)重因子,計(jì)算方法如下:
(22)
(23)
(24)
式中:EWi與式(5)一樣,是用歐幾里得距離的倒數(shù)計(jì)算的權(quán)重;MWi是用曼哈頓距離計(jì)算的權(quán)重;Mi是選取前k個(gè)歐幾里得距離后計(jì)算的待測(cè)點(diǎn)和這k個(gè)參考點(diǎn)的曼哈頓距離。將上述兩種權(quán)重因子結(jié)合得到wi,最后的位置估計(jì)與式(21)相同。
為了驗(yàn)證提出方法的有效性和合理性,本文進(jìn)行了實(shí)驗(yàn),利用MATLAB 2016b工具實(shí)現(xiàn)數(shù)據(jù)獲取和測(cè)試定位效果。在20 m×15 m×4 m的區(qū)域內(nèi)每隔1 m設(shè)置一個(gè)參考點(diǎn),總計(jì)19×14=266個(gè)參考點(diǎn)。再布置3個(gè)信號(hào)發(fā)射端和3個(gè)接收端,發(fā)射端的坐標(biāo)分別為(1,15,1)、(10,15,1)、(19,15,1);接收端的坐標(biāo)分別為(1,0,1)、(10,0,1)、(19,0,1),總共可組成9條鏈路。圖5所示為定位區(qū)域內(nèi)信號(hào)發(fā)射端、接收端的平面分布,圖6所示為參考點(diǎn)的平面分布。
圖5 定位區(qū)域平面分布
圖6 參考點(diǎn)平面分布
在離線階段,當(dāng)目標(biāo)位于參考點(diǎn)(1,1)時(shí),按照射線跟蹤方法分別計(jì)算直射、反射和衍射路徑的信號(hào)強(qiáng)度,獲得定位區(qū)域內(nèi)9條鏈路的信號(hào)強(qiáng)度值,循環(huán)計(jì)算266次,可得到一個(gè)266×9的指紋數(shù)據(jù)庫(kù),行代表參考點(diǎn),列代表鏈路的信號(hào)強(qiáng)度。
圖7所示為系統(tǒng)的定位結(jié)果圖,在定位區(qū)域內(nèi)隨機(jī)生成20個(gè)待定位點(diǎn),通過(guò)改進(jìn)WKNN方法進(jìn)行定位。
圖7 無(wú)設(shè)備定位圖
對(duì)于本系統(tǒng)而言,k值的選取對(duì)結(jié)果的影響很大,k值較小,容易發(fā)生過(guò)擬合,估計(jì)誤差會(huì)增大。k值較大,可以減少估計(jì)誤差,但與待測(cè)點(diǎn)距離較遠(yuǎn)的參考點(diǎn)指紋數(shù)據(jù)也會(huì)對(duì)預(yù)測(cè)起作用,影響最終的定位結(jié)果。圖8所示為不同k值下的定位誤差,可以看出k值增大會(huì)一定程度提高定位精度,但是隨著k取值的增大,定位誤差不降反升,可見(jiàn)本系統(tǒng)的最佳k值是7。
圖8 不同k值下的定位誤差
定位區(qū)域內(nèi)隨機(jī)選取20個(gè)待測(cè)點(diǎn),分別用KNN、WKNN和改進(jìn)WKNN算法進(jìn)行定位,圖9所示為這3種算法的定位誤差對(duì)比。可以清楚地看出本文提出的改進(jìn)WKNN算法明顯優(yōu)于傳統(tǒng)的兩種算法。
圖9 3種算法的定位誤差對(duì)比結(jié)果
用本文提出的射線跟蹤和菲涅耳理論結(jié)合的方法與傳統(tǒng)的室內(nèi)路徑損耗方法分別構(gòu)建指紋數(shù)據(jù)庫(kù),并進(jìn)行定位的誤差對(duì)比,結(jié)果如圖10所示。
圖10 兩種模型的定位誤差對(duì)比圖
由圖10可知,本文方法的最大誤差為0.686 8 m,最小誤差為0.025 5 m,平均誤差為0.164 7 m,使用本文方法構(gòu)建的指紋數(shù)據(jù)庫(kù)明顯優(yōu)于傳統(tǒng)的路徑損耗方式,定位精度提高了47%。
本文為了實(shí)現(xiàn)無(wú)設(shè)備定位,借鑒主動(dòng)式定位中常用的位置指紋定位的方法,先在定位區(qū)域中布置好信號(hào)發(fā)射端和接收端,設(shè)置若干參考點(diǎn)。針對(duì)實(shí)際測(cè)量工作的繁瑣,采用射線跟蹤結(jié)合菲涅耳理論的方法進(jìn)行無(wú)線信道的建模。通過(guò)計(jì)算無(wú)線信號(hào)的直射、反射和衍射路徑獲取鏈路的信號(hào)強(qiáng)度數(shù)據(jù),構(gòu)建位置指紋數(shù)據(jù)庫(kù),用改進(jìn)的WKNN方法實(shí)現(xiàn)對(duì)目標(biāo)的定位。通過(guò)實(shí)驗(yàn)仿真驗(yàn)證系統(tǒng)的合理性和性能,結(jié)果表明系統(tǒng)的定位精度較高,相對(duì)于室內(nèi)路徑損耗方法,本文提出的方法定位精度提高了47%。但是針對(duì)實(shí)際環(huán)境,信道模型中的一些參數(shù)還需要修改,解決該問(wèn)題是下一步的研究方向。