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