羅宇鋒,劉艷輝,李曉春
(1.河南理工大學 電氣工程與自動化學院,河南 焦作 454003; 2.無錫九宇建筑設計院有限公司,江蘇 無錫 214000)
眾所周知的GNSS[1-2]定位技術提供的是室外定位服務,由于信號到達地球時較弱且信號容易受到障礙物的干擾和阻斷,在室內環境、地下礦井、高層建筑密集處等地方的定位效果不理想甚至失效。因此,急需尋求一種高效、便捷、準確的定位技術來填補室內定位的空白。基于IEEE802.11 技術的成熟以及移動設備和無線局域網在世界各地的普及,同時, WiFi室內指紋定位具有成本低、易部署、不受視線約束等優點,已經成為當前室內定位研究的熱點[3-5]。人們開始利用這種資源進行室內定位,文獻[6]通過從信號強度指示(RSSI)信號強度中取出特征性較強信號,降低了室內多徑效應對WiFi信號波動的影響,使室內指紋定位精度提高了40%.Laouudias[7]等在基于指紋匹配的基礎上,開發了Airplace系統,使WiFi指紋定位的誤差減小到2~4 m。常見的無線定位技術有藍牙(Bluetooth)、紅外(infrared)、WiFi(wireless fidelity)、Zigbee、超寬帶等(ultra wide band)等[8-9]。
目前利用WiFi進行室內定位主要有WiFi指紋和WiFi測距兩種定位方式,由于WiFi信號容易受到環境的干擾而產生波動,且WiFi測距定位對信號依賴較強,從定位精度上講WiFi指紋定位要比WiFi測距定位精度要高[10-11],所以目前WiFi指紋定位比較流行。WiFi指紋定位的關鍵在于離線階段指紋庫的建立,而采樣間距直接影響指紋庫的大小及定位精度,所以說合適的采樣間距對WiFi指紋定位起著至關重要的作用。
在室內定位區域內,每一個采樣點接受來自各個AP信號強度是不同的,這是由于采樣點信道的多徑結構是不確定的,這樣多徑結構的特征就是該采樣點的“指紋”[12-14]。當人員進入定位區域,身上攜帶的定位卡就會自動掃描四周的WiFi信號,并將WiFi信號上傳到服務器與離線階段建立的指紋庫中的WiFi信號進行匹配,實現對人員位置的估計。
RSSI在WiFi指紋定位中起著至關重要的作用,RSSI的值越大說明距離所測試解算距離越近,本實驗是在學校樓道內對一個固定的AP進行測試,A、B和C三個采樣點距離固定的AP的水平距離分別為8 m、5 m和3 m,采樣周期為1 s,采樣時間為100 s,采集的WiFi信號數值如圖1所示。
通過圖1可知,WiFi信號易受到環境等因數的影響產生波動,為了消除WiFi信號受到環境因數產生的波動,保證指紋數據庫可靠性和準確性。本文先利用高斯函數擬合對采集的RSSI信號進行擬合,迅速地選出高頻段的RSSI值。對于RSSI值的波動,用多次測量取平均值法對采樣點接收到的信號進行平滑處理。
高斯函數擬合是對數據中出現野值的一種處理方法。利用高斯函數對采集的RSSI值進行處理,可以去除一些小概率的數值(野值),保留在正常范圍內波動的高頻WiFi信號值,這些WiFi信號值就更接近真實的信號值[15]。
高斯擬合函數為
(1)
其中:
(2)
(3)
先將采集到RSSI矢量分別代入高斯擬合函數,用來保留可信的信號值然后對所保留的數據取均值,所得均值就是采樣點的RSSI矢量。由于RSSI矢量數據眾多,使得高斯擬合過程耗時較多。為了快速地篩選出想要的數據,采用近高斯擬合的方法。
|RSSIi-μ| (4) 式中:μ為均值;σ為標準差;k為篩選區間RSSI值的個數,可根據數據保留的百分比M確定。 其中: (5) 式中,N為采集的總次數。 若M取值過小,有可能破壞真實的數據,這時就要適當增加k值用來增大篩選區間,提高RSSI矢量的保留比。在保證RSSI矢量不失真的情況下,實現快速有效地剔除錯誤數據。 在離線建立數據庫之前需要在定位區域內設計恰當采樣間距,用米尺進行實地測量并標記采樣點的位置,其次,確定坐標原點,如圖2所示,按照一定規則對采樣點進行坐標編輯并對采樣點上的RSSI值進行多次測量取均值處理。 表1 WiFi指紋數據庫 在線匹配定位階段,本文主要采用K近鄰WiFi指紋匹配的算法,K近鄰匹配算法的主要思想是待定點上的RSSI值與數據庫進行匹配運算,計算出待定點上的RSSI與指紋數據中各個采樣點上RSSI之間的歐式距離,選出k(k≥2) 個最小的歐式距離對應的坐標并將其坐標取平均值就是待定點的位置坐標。 (6) 式中:i為第i個采樣點對應的坐標。 待定點與第i個采樣點的歐式距離為di: (7) 1) 定位精度指標:位置定位精度?為所有待定點與真實位置的誤差平均值: (8) 其中: (9) 2) 定位時效指標:本文設定不同采樣間距,并按照設定的采樣間距分別進行采樣、建立指紋庫、匹配計算及定位并記錄各自的定位時間,然后結合定位的精度和時間效率,綜合考慮選出最優的采樣間距。 本文中WiFi指紋定位系統采用的是C/S客戶端服務端模式[16],整個設計框架包括客戶端部分、服務端部分和通信段部分,具體如圖3所示。首先客戶端收集且封裝過濾后的WiFi指紋信息并利用通信手段將信息發送到服務端,服務端接收指紋信息并儲存到指紋數據庫。定位時客戶端收集周圍的AP信息,通過與服務端的通信將掃描到的WiFi指紋信息發送到服務端,服務端將接收到的信息與指紋庫數據進行匹配處理,選擇合適的參考點計算出定位結果并在服務端顯示。 Android智能終端上移值客戶端程序[17],用elipse軟件和Java語言開發。智能機客戶端主要負責采集周圍AP信號強度與服務端通信交互及指紋定位結果的顯示。由于Android編程是面向函數庫編程的,通過調用WiFiManager和WiFiInfo兩個WiFi相關類可以掃描到AP信號強度、MAC地址及網絡名稱SSID等。客戶端在指紋采集時,將采集到的AP信號強度值序列用高斯擬合濾波后封裝,通過Socket連接發送給服務端的MySQL數據庫;在線定位階段,用戶通過與服務端之間的Socket通信發送定位請求到服務端,客戶端將掃描到的RSSI和MAC地址等信息通過網絡發送到服務端處理,最后接收定位結果并在手機上顯示,定位模塊如圖4所示。 為了研究采樣間距對WiFi指紋定位精度的影響,在電氣樓205教室,選取一個長12 m,寬12 m的定位區域,采樣間距分別定為1 m、2 m、3 m、4 m、5 m、6 m,采樣點的個數分別為169、49、25、16、9、9個,由于實驗設定長12 m,寬12 m的定位區域,但為滿足采樣間距5 m的整數倍,將原定位區域改為長10 m,寬10 m,雖然定位區域改為長10 m,寬10 m,但采樣間距5 m不變且隨機3個待定點在設定的定位區域內,這樣就不影響不同采樣距離對WiFi指紋定位精度的比較。 在進行不同采樣間距對定位精度影響實驗中,為避免單點定位存在的偶然性,在實驗中分別隨機確定3個不同待定點并記錄下測定的結果、誤差和定位的時間如表2所示。在數據采集過程中盡可能保持采樣高度一樣,在每個采樣點處分別采集100次RSSI值取均值存入指紋數據庫,圖5是采樣間距為3 m的實驗部署示意圖。 在實驗過程中用OPPO手機上Android平臺開發的WiFi分析儀采集定位區域內RSSI值,數據記錄軟件采用sql serve 2008,將其配置到定位服務器,為服務器的定位解算提供數據支持,定位服務器負責接收手機客戶端上傳的數據并對其進行解析、計算、匹配最終實現定位,并將定位的結果上傳到手機客戶端顯示。 設定6個不同的采樣間距,為了避免單點定位存在的偶然性和誤差,每個采樣點隨機采3個待定點并記錄定位數據如表2所示,為更好顯示不同采樣間距對定位精度的影響,把相同采樣間距對定位造成的誤差取平均值并繪制圖形,如圖6所示。 表2 采樣間距的數據記錄 3.3.1 定位的精度 本文研究采樣間距對WiFi指紋定位的影響,對于采樣間距分別進行了特定設置,選擇待定點和采樣點均勻地分布在定位區域內,在定位區域對不同采樣間距進行多次實驗并記錄下實驗結果。通過圖6可以看出,當采樣間距從1~6 m選取時,WiFi指紋定位的精度在不斷的下降,定位誤差從0.58 m上升到4.2 m;當采樣間距在1~3 m定位誤差可以保證在2 m以內可以滿足定位的需要;當采樣間距為4~6 m時定位誤差大幅度的提高很難確保定位的精準性。 3.3.2 定位的時效性 K近鄰匹配算法其時耗主要花費在均方誤差的計算。采樣間距為1 m時需要進行169次均方誤差計算;采樣間距為2 m時需要進行49次均方誤差計算;采樣間距為3 m時需要進行25次均方誤差計算。三種采樣間距平均花費的時間如3表所示。 表3 三種采樣間距定位時間的比較 通過表3可以清楚地看出3 m的采樣間距在時間效率上有著明顯的優勢,考慮到1~2 m的采樣間距在離線階段采集指紋也比較費工、耗時,但定位的精度卻和3 m的采樣間距定位精度相差不大。綜上所述,本文選擇3 m的采樣間距為最佳的采樣間距。 本文研究的是采樣間距對WiFi指紋定位的影響,詳細介紹WiFi指紋定位的K近鄰匹配算法,并在教室內設定不同采樣間距進行實驗。實驗結果表明采樣間距為 3 m時,無論從定位的精度還是時效性上都為WiFi指紋定位的最優指標。1.2 離線階段建立指紋數據庫


1.3 在線階段進行匹配定位
1.4 采樣間距最佳距離的確定指標

2 系統的設計
2.1 WiFi指紋定位系統架構
2.2 客戶端和服務端的設計
3 實驗及分析
3.1 實驗部署
3.2 實驗數據

3.3 實驗的結果分析

4 結束語