文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)03-0104-04
無論是在室內(nèi)還是在室外環(huán)境下,快速而準(zhǔn)確地獲得終端的位置信息以及位置服務(wù)的需求變得日益迫切。
目前室內(nèi)定位系統(tǒng)采用的技術(shù)主要有射頻識別、ZigBee、超聲波、視頻、超寬帶等;定位算法按照是否對距離進(jìn)行測定分為基于測距和非測距兩類。前者主要有TOA(Time of Arrive)、AOA(Angle of Arrive)、TDOA(Time Difference of Arrive)等方法,后者主要有基于接收信號強(qiáng)度RSSI(Received Signal Strength Indicator)的定位算法等。由于室內(nèi)無線信號存在多徑傳播,以及參考時鐘的不精確性, 這些因素都將使距離估計的準(zhǔn)確性大打折扣。另外,室內(nèi)情況下設(shè)備之間的距離較短,存在嚴(yán)重的反射、衍射和繞射等非直線傳播的情況,信號在各條多徑分量上的時間相當(dāng)接近,現(xiàn)有設(shè)備的分辨率不足以區(qū)分時間上如此接近的各路信號,所以精確的TOA估計或TDOA估計,幾乎成為不可能[1]。而基于RSSI技術(shù)則具有檢測設(shè)備硬件成本低、測量信號穩(wěn)定可靠、定位算法簡單等優(yōu)點(diǎn)。因此基于RSSI非測距的定位技術(shù)成為近年來室內(nèi)定位研究的熱點(diǎn)[2]。
當(dāng)前低成本的藍(lán)牙無線通信技術(shù)發(fā)展迅速,藍(lán)牙技術(shù)又能提供接收信號強(qiáng)度RSSI、鏈路質(zhì)量LQ(LinkQuality)、傳輸功率級TPL(Transmit Power Level)[3]等參數(shù),因此藍(lán)牙系統(tǒng)可以方便地使用基于非測距的定位算法。
基于RSSI的非測距定位算法在定位階段進(jìn)行信號采集時仍然會受干擾,因此需要對采集到的RSSI信息進(jìn)行濾波處理,然后利用匹配定位算法來提高定位的準(zhǔn)確性。
匹配定位算法中,利用神經(jīng)網(wǎng)絡(luò)雖然可以有效地控制平均定位誤差,但它同時也存在著容易陷入極小點(diǎn)、結(jié)構(gòu)和類型的選擇過分依賴經(jīng)驗的缺點(diǎn)。基于概率的算法又存在算法復(fù)雜的劣勢。K階近鄰算法較適合于本問題[4]。
本文介紹了一種基于RSSI指紋的K階近鄰定位算法,該算法在原有定位算法的基礎(chǔ)上增加了對信號的突變噪聲的濾除,是一種低計算資源消耗藍(lán)牙室內(nèi)定位技術(shù),同時又具有整體成本低、定位精度高、定位迅速的優(yōu)點(diǎn),是一種較為理想的室內(nèi)定位方式。
1 基于指紋技術(shù)的藍(lán)牙室內(nèi)定位系統(tǒng)
1.1 硬件構(gòu)成
基于藍(lán)牙技術(shù)室內(nèi)定位系統(tǒng)硬件主要由兩部分組成,包括若干藍(lán)牙錨節(jié)點(diǎn)和待定位節(jié)點(diǎn)。錨節(jié)點(diǎn)由3~7個藍(lán)牙串口模塊構(gòu)成,串口藍(lán)牙模塊如圖1所示,厚度5 mm,寬度13 mm,長度28 mm,主要由電源模塊和藍(lán)牙核心模塊組成,單個硬件成本約為4美元。待定位節(jié)點(diǎn)主要由一個藍(lán)牙適配器和上位機(jī)組成,上位機(jī)負(fù)責(zé)數(shù)據(jù)采集。
藍(lán)牙串口模塊主要利用bluelab作為工具進(jìn)行開發(fā),支持多種連接模式。上位機(jī)的藍(lán)牙適配器底層驅(qū)動為BlueSoleil6或者以上的版本,應(yīng)用開發(fā)工具包為IVT BlueSoleil Software Development Kit,支持藍(lán)牙一對多連接。
在定位節(jié)點(diǎn)的藍(lán)牙適配器和所有錨節(jié)點(diǎn)連接完成后,通過調(diào)用Btsdk_GetRemoteRSSI函數(shù)來實現(xiàn)對多個錨節(jié)點(diǎn)的RSSI數(shù)據(jù)采集。
整個定位系統(tǒng)的構(gòu)成僅需要若干藍(lán)牙模塊,目前藍(lán)牙模塊成本較低,普及率高,適合大范圍推廣。
1.2 指紋算法定位流程
基于指紋技術(shù)的藍(lán)牙室內(nèi)定位系統(tǒng)是通過對藍(lán)牙多徑信號的實際測量,建立位置指紋庫,將需要定位的藍(lán)牙設(shè)備實測數(shù)據(jù)與位置指紋數(shù)據(jù)庫進(jìn)行對比來確定出藍(lán)牙設(shè)備的實際位置的一種技術(shù)。它的實施一般分為兩個階段:離線階段和在線定位階段[5]。
(1)離線階段又稱之為數(shù)據(jù)采集階段,該階段的主要工作是采集所需定位區(qū)域的各位置的藍(lán)牙信號強(qiáng)度,形成位置指紋數(shù)據(jù)庫,每一個指紋信息對應(yīng)一個特定的位置。指紋定位系統(tǒng)離線階段的系統(tǒng)示意如圖2所示。
離線階段的數(shù)據(jù)庫建立需要在定位區(qū)域內(nèi)用采集設(shè)備對數(shù)據(jù)進(jìn)行采集,錨節(jié)點(diǎn)支持點(diǎn)對點(diǎn)連接,而采集設(shè)備則支持一對多的連接方式。數(shù)據(jù)采集完成后存儲在采集設(shè)備內(nèi),并完成數(shù)據(jù)庫的建立。
錨節(jié)點(diǎn)通常布置在位置已知的坐標(biāo)點(diǎn),采集設(shè)備在若干指定的位置坐標(biāo)點(diǎn)進(jìn)行一定時長的信號采集,并對信號進(jìn)行處理,從而建立坐標(biāo)與藍(lán)牙信號的位置對應(yīng)指紋數(shù)據(jù)庫。
(2)在線定位階段包括信號強(qiáng)度的采集、數(shù)據(jù)處理、判定區(qū)、距離估計和位置計算等工作。當(dāng)系統(tǒng)處于在線定位階段時,利用離線階段獲得的信息和在線收集的各個測試點(diǎn)的信號強(qiáng)度得出終端設(shè)備的位置。定位流程如圖3所示。
2 系統(tǒng)定位算法
藍(lán)牙系統(tǒng)使用跳頻技術(shù)來降低干擾,但在室內(nèi)環(huán)境下,人在建筑物內(nèi)的移動會隨機(jī)地對無線信號的傳播產(chǎn)生影響。另外還有一些干擾源,包括溫度、空氣的運(yùn)動以及運(yùn)行在相同頻率的其他設(shè)備,也會使得某些位置的接收信號隨著時間發(fā)生漂移[6]。因此首先對采集到的RSSI信息進(jìn)行濾波處理后,采用相應(yīng)的優(yōu)化匹配算法可以提高定位的準(zhǔn)確性。
室內(nèi)環(huán)境下噪聲通常由兩部分組成,白噪聲和突變噪聲。白噪聲可以通過對信號進(jìn)行多次平均處理去除,離線階段就是采用這種方法消除白噪聲的影響。而在在線定位階段,定位信號的采集的長度一般都是有限的,平均方法的使用將會受到很大的限制[7],在線階段采用卡爾曼濾波方法來去除白噪聲的影響,而在室內(nèi)環(huán)境下信號受突變噪聲影響較大,利用小波變換方法可以通過對信號進(jìn)行分解和重構(gòu)來消除這種突變的高頻噪聲的成分[8],從而提高定位精度。
K階近鄰算法[4]的基本思想是:在給定新的實例后,根據(jù)與該實例的相似度在訓(xùn)練樣本中選取與該實例距離最近的k個樣本,然后由這k個樣本進(jìn)行新實例的值的判定。該算法假定所有的實例對應(yīng)于n維空間的Rn中的點(diǎn),在該n維空間中,任意一個實例x可以表示成如下的特征向量:
在每個坐標(biāo)點(diǎn)采樣得到如下數(shù)據(jù)格式(xi,xj)<RSSIi1,RSSIi2,RSSIi3,RSSIi4>,<RSSIi1,RSSIi2,RSSIi3,RSSIi4>進(jìn)行均值處理,得到指紋數(shù)據(jù)庫。
3.2 在線定位階段
目標(biāo)在(3,4)位置處靜止不動,在室內(nèi)人員正常活動時進(jìn)行數(shù)據(jù)采集。采樣間隔為1 s,采樣點(diǎn)數(shù)為130個。數(shù)據(jù)采集完成后,對定位數(shù)據(jù)進(jìn)行不同濾波處理,采用3階近鄰法進(jìn)行定位。
3.3 定位結(jié)果
定位結(jié)果如圖5~圖9所示。
圖中星型點(diǎn)均表示在線定位階段1 s內(nèi)130個樣點(diǎn)的定位結(jié)果分布,黑點(diǎn)表示設(shè)備的實際位置。
圖5是直接利用原始信號定位時的設(shè)備定位結(jié)果。由圖5可以明顯看出定位位置點(diǎn)分布比較稀疏,受室內(nèi)人員活動帶來的突變噪聲影響,直接定位位置點(diǎn)中與實際位置最大距離偏差為3 m,均方誤差為0.53 m。
受噪聲的影響,直接利用原始信號定位的誤差較大,通過對原始信號進(jìn)行卡爾曼濾波處理后重新定位的結(jié)果如圖6所示。
由圖6可以看出,采用卡爾曼濾波算法對原始數(shù)據(jù)進(jìn)行濾波處理后,在線定位階段定位位置變得集中起來,直接定位位置點(diǎn)中與實際位置最大距離偏差為2 m,均方誤差為0.27 m。由于卡爾曼濾波僅能消除部分的白噪聲,而對突變噪聲卻不能很好地消除,從而造成定位結(jié)果偏差仍然過大,定位點(diǎn)不夠集中。
針對突變噪聲,采用小波變換濾波的方法來進(jìn)行消噪。利用小波去噪方法對原始信號進(jìn)行處理后,重新定位的結(jié)果如圖7和8所示,小波分解層次在保證信號不失真的前提下,一般取3~5,即可最大程度地濾掉噪聲,本文選取分解層數(shù)為3。閾值的選取,則按照最優(yōu)預(yù)測變量閾值Heursure準(zhǔn)則來對閾值進(jìn)行估計[10]。
圖7是對原始信號進(jìn)行硬閾值小波變換[10]濾波處理后重新定位的結(jié)果。采用硬閾值小波變換處理后,定位位置分布變得較為集中,直接定位位置點(diǎn)中與實際位置最大距離偏差為0.62 m,均方誤差為0.09 m。
圖8是對原始信號進(jìn)行軟閾值小波變換[10]濾波處理后,重新定位的結(jié)果。采用軟閾值小波變換處理后,直接定位位置點(diǎn)中與實際位置最大距離偏差為0.6 m,均方誤差為0.07 m。
由圖7和圖8可以明顯看出,采用了小波變換對信號濾波處理后,突變噪聲得到了很好的抑制,定位位置分布范圍變得較為密集,最大定位誤差僅為0.6 m,取得了很好的定位效果。
由圖9則可以看出采用了小波去噪后定位的平均誤差大大降低。1 s內(nèi)進(jìn)行130次采樣定位的誤差均值為0.2 m,基本滿足室內(nèi)定位的實時性和精度的要求。
通過對實測數(shù)據(jù)進(jìn)行采集和定位,結(jié)果驗證了基于指紋定位的藍(lán)牙室內(nèi)定位方法的可行性,實驗結(jié)果也證明了小波去噪可以很好地消除突變噪聲,提高指紋定位的精度,將設(shè)備平均定位精度提高至0.2 m,可滿足絕大部分設(shè)備的定位精度需求。而對于設(shè)備在移動狀態(tài)下的濾波算法則需要做進(jìn)一步的研究。
參考文獻(xiàn)
[1] 倪巍,王宗欣.基于接收信號強(qiáng)度測量的室內(nèi)定位算法[J]. 復(fù)旦學(xué)報,2004,43(1):72-76.
[2] 王琦. 基于RSSI 測距的室內(nèi)定位技術(shù)[J]. 電子科技,2012,25(6):64-66,78.
[3] IGLESIAS P,CORUA H J A,et al. Indoor person localization system through RSSI Bluetooth fingerprinting[C].IWSSIP,Vienna Austria.2012:40-43.
[4] 李文杰,李文明.基于K-近鄰算法的定位方法設(shè)計和仿真[J].計算機(jī)仿真,2009,26(4):194-196,351.
[5] Pei Ling,Chen Ruizhi,Liu Jingbin,et al. Using inquiry based bluetooth RSSI probability distributions for Indoor positioning[J]. Journal of Global Positioning Systems,2010,8(4):1-25.
[6] 柴亦飛. 基于位置指紋的定位系統(tǒng)的實現(xiàn)與改進(jìn)[D].上海:復(fù)旦大學(xué),2007.
[7] 謝獻(xiàn)忠,易偉健,王修勇,等.基于虛擬響應(yīng)信號的結(jié)構(gòu)參數(shù)時域辨識研究[J].計算力學(xué)學(xué)報,2007,24(6):859- 864.
[8] 朱來東,廉小親,江遠(yuǎn)志.小波變換在信號降噪中的應(yīng)用及MATLAB實現(xiàn)[J].北京工商大學(xué)學(xué)報,2009,27(2):46-49.
[9] 容曉峰,楊娜.RSSI位置指紋的定位誤差分析與仿真[J]. 西安工業(yè)大學(xué)學(xué)報,2010,30(6):574-578.
[10] 蘇曉慶. 基于小波包變換的變形時間序列數(shù)據(jù)分析方法的研究[D]. 淄博:山東理工大學(xué),2008.