張 旭,姚善化
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
近年來隨著可見光通信技術(shù)的不斷發(fā)展,可見光在室內(nèi)定位方面具有精度高、成本低、安全性高等優(yōu)勢,越來越多的研究人員將可見光用于室內(nèi)定位[1-2]。
基于指紋庫的室內(nèi)定位方法,因其定位精度高、部署簡單而被廣泛地采用[3-5]。指紋定位主要分兩個階段,離線階段和在線階段,離線階段采集信號強度構(gòu)建指紋庫,在線階段根據(jù)定位目標接收信號強度,利用K近鄰算法(K Nearest Neighbor,KNN)估算出定位目標的位置。離線階段指紋庫采集得越詳細,則定位精度越高,然而過大的指紋庫不僅導致采集的工作量增加,還會使得在線匹配階段的時間增加[6]。目前針對降低指紋庫采集工作量的研究有:利用插值算法根據(jù)已知點的信號強度來估算未知點的信號強度,定位精度有待提高[7-8];利用低秩矩陣填充理論來恢復只有少數(shù)采集點的指紋庫,算法的復雜度較高[9-10];利用移動眾包的方法,通過用戶數(shù)據(jù)就能進行定位,非專業(yè)的勘測數(shù)據(jù)可信度受到質(zhì)疑,還會產(chǎn)生大量冗余的數(shù)據(jù)[11-12]。通過分析研究,本文通過測量參考位置的光信號強度,利用光信號的傳播模型來估算出其他位置的光信號強度,以此來構(gòu)建再生指紋庫;同時提出改進的加權(quán)K近鄰算法(Weighted K Nearest Neighbor,WKNN)[13-14],用平方弦距離度量替代歐氏距離度量,同時結(jié)合發(fā)光二極管(Light-Emitting Diode,LED)的穩(wěn)定性,選取平方弦距離最近的k個點來估計定位目標的位置,在保證定位精度的同時大大降低了采集數(shù)據(jù)的工作量。本文所提算法相較于指紋識別融合貝葉斯算法以及指紋數(shù)據(jù)濾波與聚類算法,采集的數(shù)據(jù)信息更少,算法復雜度更低,構(gòu)建指紋的時間更短。
一般情況下,可見光室內(nèi)定位采用LED作為光源,光電二極管(Photodiode,PD)作為接收器,光源的發(fā)光強度服從朗伯輻射模型,在只考慮視距(Line of Sight,LOS)的情況下,如圖1所示,PD接收到的功率可以表示為:
(1)
(2)
式中Pt是LED的發(fā)射功率,Ar為PD的有效接收面積,m為朗伯發(fā)射級數(shù),φ1/2是LED發(fā)光的半功率半角,d為LED與PD之間的直線距離,φ是發(fā)射角,φ是入射角,φcom是接收視場角,入射角小于等于接收視場角,Ts(φ)是接收器的帶通光濾波器透射率,g(φ)是非成像聚光器的增益。
圖1 可見光定位模型
假設(shè)接收機的位置與發(fā)射器的位置平行,則入射角φ和發(fā)射角φ是相等的,若在實際測量時接收機與發(fā)射器的位置不平行,使用光傳播模型構(gòu)建的指紋庫與真實指紋庫之間的誤差會很大,導致在定位階段通過WKNN算法估算出的定位坐標誤差會很大,必須要保證入射角與發(fā)射角相等。在忽略Ts(φ)和g(φ)的時候,位于i點的接收功率Pr,i為:
(3)
取朗伯發(fā)射級數(shù)m為1,其中cos(φi)=h/di,h為接收機到LED的垂直距離,則位于j點的接收功率可以用i點的接收功率來表示:
(4)
將定位區(qū)域均勻劃分成大小相等的小網(wǎng)格,在每個網(wǎng)格中選取參考點來測量接收信號強度,只選取l個參考點來測量信號強度,將這l個參考點根據(jù)公式(4)依次來構(gòu)建虛擬指紋庫,這樣就構(gòu)建了l個指紋庫,將這l個指紋庫合并在一起,則指紋庫中每個位置的信號強度就有l(wèi)個,將每個位置的l個信號強度相加求其均值作為該位置最終的信號強度,這樣就可以構(gòu)建出再生指紋庫。
離線階段通過光傳播模型構(gòu)建的指紋庫與真實指紋庫之間存在著誤差,為了進一步提高定位精度,在線定位階段采用改進的WKNN定位算法。通過測量定位目標點接收到LED的信號強度,計算目標點的信號強度與指紋庫中每一點的信號強度之間的距離,選取距離最近的k個點的信號強度來估計目標位置,現(xiàn)有的WKNN算法大多采用信號之間的歐氏距離作為度量,而歐氏距離表示的只是定位目標和采集點信號之間的絕對位置,并不能很好地反映采集點之間的相對位置,定位會存在偏差,故而采用平方弦距離代替歐氏距離,可以很好地改善定位誤差,即:
(5)
(6)
(7)
(8)
式中Wi,k為定位目標點i與距離最近的k個點之間的權(quán)重,則通過改進的WKNN算法估算出定位目標點的位置為:
(9)
通過MATLAB仿真軟件,在只考慮視距的情況下,采用4個LED來進行可見光室內(nèi)定位,具體方法為:將定位區(qū)域均勻劃分成大小相同的小網(wǎng)格,離線階段構(gòu)建真實指紋庫,選取其中的25個參考點通過光傳播模型構(gòu)建虛擬指紋庫,如圖2所示,選取剩余位置點作為在線階段的測試點,共計576個位置點,對比所提算法下再生指紋庫和真實指紋庫之間的定位精度,驗證所提算法的可行性,實驗參數(shù)如表1所示:
表1 仿真環(huán)境參數(shù)
圖2 參考點與測量點的位置
定位階段采用改進的WKNN算法,k的取值對定位算法具有一定的影響。當k值太小時定位目標鄰近的區(qū)域就會很小,定位模型變得很復雜,定位目標的估計位置更貼近于再生指紋庫,近似誤差較小;然而k的取值較小會導致隨機誤差增大,不能很好地反映定位目標的估計位置,而且估算到的定位目標的位置與真實位置也會存在較大的差距,估計誤差較大。當k值太大時則正好相反,需要選擇最合適的k值使得定位算法的精度最高。因此我們研究了改進的WKNN算法在不同k值下的定位精度,如圖3所示。
圖3 改進WKNN不同k值下的平均定位誤差
在k取5的時候效果最好,定位的平均誤差最小。同時LED的穩(wěn)定性對定位系統(tǒng)的精度也會產(chǎn)生一定的影響,由于LED受到多徑效應(yīng)的影響,穩(wěn)定性以及定位精度都會降低,增加LED的個數(shù)可以提供更均勻的光強分布,使得定位精度更高,但是計算量也會增加。在不增加LED個數(shù)的前提下,通過統(tǒng)計定位區(qū)域內(nèi)參考點來自各個LED的信號強度并計算每個LED的信號強度方差,方差越小表示各個參考點上測量的LED的信號強度偏離平均值越小,該LED的穩(wěn)定性就越好。在WKNN算法中加入LED信號強度的方差,可以減少由于LED不穩(wěn)定所帶來的定位誤差。
通過仿真對比了改進的WKNN算法和WKNN算法,如圖4所示,改進的WKNN的定位精度相對于WKNN的定位精度有所提高,定位誤差更小。
為了驗證所提算法的有效性,與二維插值法構(gòu)建的指紋庫和真實指紋庫的定位精度進行對比,如圖5所示。
圖4 WKNN和改進的WKNN的平均定位誤差
圖5 不同指紋庫下的平均定位誤差
在平均定位誤差為5 cm時,光傳播模型再生指紋庫的定位精度累積概率分布為90%,遠高于二維插值法構(gòu)造指紋的8%,略低于真實指紋庫的97%,表明所提方法的定位精度要高于二維插值法的定位精度,相比于真實指紋的定位精度要略低,但是本次實驗只采集了25個位置點的光信號強度,而真實指紋庫中需要采集625個位置點的光信號強度,本文所提方法大大降低了指紋庫構(gòu)建的工作量,而且定位精度差別不大。
研究結(jié)果表明所提出的算法在前期指紋庫的采集方面可以大大降低工作量,同時定位精度與真實指紋庫相近,相比于二維插值方法構(gòu)建的指紋庫,定位精度更高。接下來的研究會進一步在實際應(yīng)用中驗證算法的可行性,同時考慮多徑反射的情況,進一步提高定位精度。