魏菲,李允俊,金華
(延邊大學 工學院,延吉 133000)
?
使用位置指紋算法的WiFi定位系統(tǒng)設計
魏菲,李允俊,金華
(延邊大學 工學院,延吉 133000)
隨著無線城市的建設和推廣,WiFi無線熱點的數(shù)量在逐漸增加,基于智能手機的定位應用也受到越來越多的關注。然而僅借助于GPS衛(wèi)星定位系統(tǒng),無法在高樓林立的市中心或是室內(nèi)場景定位。因此,本文利用WiFi信號本身的特點, 在Android平臺上設計了一種基于位置指紋算法的WiFi定位系統(tǒng)。針對WiFi信號本身的不穩(wěn)定性以及不同設備之間無線信號接收差異兩種影響因素改進了該算法。
WiFi定位;位置指紋算法;Android
近年來,隨著城域無線基礎網(wǎng)絡的發(fā)展,熱點(AP)的覆蓋率大幅度提高,由于定位服務需求的增加以及WiFi應用領域的擴大,WiFi定位成為一種有效的定位方式。GPS衛(wèi)星定位是最主要的定位方式,它需要在相對空曠、高層建筑不密集的地方獲得較準確的定位,當人們處在室內(nèi)或高樓林立的市區(qū),定位精度明顯降低甚至不能定位。此時,利用無處不在的WiFi網(wǎng)絡將能夠彌補GPS定位的不足[1]。目前大多數(shù)的WiFi無線定位算法主要為:基于到達時間、到達角度、到達時間差的模型定位及基于接受信號強度(RSSI)的位置指紋定位算法[2],由于位置指紋算法的無線定位方式不需要已知AP的位置信息及準確的信道模型,該算法在定位性能以及可用性上具有更大的優(yōu)勢。因此,本文首先設計了整體的系統(tǒng)框架,通過研究分析了該算法目前存在的問題,提出了改進方案,并在Android平臺上實現(xiàn)完整的定位系統(tǒng)。
本系統(tǒng)的設計目標是在Android智能終端上實現(xiàn)實時WiFi定位系統(tǒng),該系統(tǒng)包括客戶端、數(shù)據(jù)服務器以及定位服務器。為了使定位過程和服務器通信過程相對獨立,分別設置了專門用于定位的AP熱點和客戶端與服務器之間的通信AP熱點,可有效降低系統(tǒng)環(huán)境搭建的初期成本。本方案的系統(tǒng)框架如圖1所示。其中的通信AP熱點需要與局域網(wǎng)相連,保證定位區(qū)域內(nèi)WiFi信號良好,確保數(shù)據(jù)傳輸及處理的及時性。客戶端和服務器端通過TCP連接實現(xiàn)可靠傳輸。

圖1 系統(tǒng)框架圖
2.1 客戶端模塊設計
本系統(tǒng)采用客戶端/服務器(C/S)的網(wǎng)絡架構,客戶端的定位過程主要包括WiFi無線信號掃描、數(shù)據(jù)傳輸、界面顯示等,該過程的流程圖如圖2所示。

圖2 客戶端定位模塊流程圖
WiFi信號掃描是利用Android API提供的WiFiManager類實現(xiàn)。首先,判斷WiFi是否開啟;其次取得WifiManager及WifiInfo對象,通過startScan()、getScanResults()等方法開始掃描并得到掃描結果mScanResult;最后,將數(shù)據(jù)傳遞給服務器端進行定位計算。Android平臺為用戶提供豐富的界面顯示控件,本設計使用ListView顯示服務器返回的定位位置信息[3]。
2.2 服務器端模塊設計
服務器端首先需要不斷監(jiān)聽指定端口,當監(jiān)聽到客戶端的請求時,創(chuàng)建新進程,該進程負責處理客戶端的請求,其處理過程如圖3所示。監(jiān)聽數(shù)據(jù),如果接收到該數(shù)據(jù),則進行CRC校驗并結束鏈接幀,根據(jù)請求內(nèi)容查詢數(shù)據(jù)庫并進行定位運算,最后返回定位結果,通過數(shù)據(jù)傳輸反饋給客戶端界面顯示定位信息。

圖3 服務器端流程圖
在室內(nèi)或室外環(huán)境下,由于信號傳播途中受地形、障礙物的影響和人體的阻擋,將引起無線信號的折射、衍射等多徑傳播、多址傳播,以不同的時間到達終端,造成傳播信號在幅度、頻率和相位上的改變。其使得在同一位置,不同時間采集到的RSS值很不確定,即使在同一時間相同位置使用不同的定位設備采集到的RSS大小也會不同,會影響定位的精確性,無線信號傳播的衰減模型難以良好地表征距離和信號強度間的映射關系[4]。因此本文采用基于位置指紋的定位算法,同時針對造成定位誤差的主要原因,提出了改進的定位算法以提高定位魯棒性。
3.1 位置指紋定位算法
位置指紋定位是根據(jù)不同位置接收到的信號強度向量,建立相應的位置指紋數(shù)據(jù)庫,通過實時采集的信號強度與數(shù)據(jù)庫信號空間中儲存的信號向量,根據(jù)一定的匹配算法實現(xiàn)定位。該算法能夠在一定程度上減少多徑效應的影響,增強抗干擾能力。目前,基于位置指紋的定位算法主要分為確定型和概率型,前者的計算效率較高,后者的定位精度較高,但是計算量較大,為了快速定位,采用確定型的位置指紋定位算法。
位置指紋定位過程一般分兩個階段實現(xiàn):離線采樣階段和在線定位階段。離線采樣階段主要目的是建立位置指紋數(shù)據(jù)庫,根據(jù)定位環(huán)境設計較為合理的采樣分布圖,遍歷待定位區(qū)域內(nèi)的所有采樣點,將相應的信號強度、MAC地址以及位置信息等記錄在指紋數(shù)據(jù)庫中。數(shù)據(jù)庫中數(shù)據(jù)的準確性決定了定位的精確程度,數(shù)據(jù)越精確,定位效果越好。在線定位階段是利用Android手機在待定位點測得AP的信號強度和物理地址,然后通過相應的匹配算法,在數(shù)據(jù)庫中搜索與測量點相匹配的數(shù)據(jù),從而估計用戶的實際位置。位置指紋的定位過程如圖4所示。

圖4 定位框圖
3.2 匹配算法
通常的匹配算法有K最近鄰匹配算法(KNN),該算法能夠有效提高定位精度且應用成熟。本文采用了該匹配算法,K最近鄰匹配算法的實質(zhì)是計算待測點采集到的RSS向量和數(shù)據(jù)庫中已記錄的RSS向量之間的距離。假設待測區(qū)域有n個AP,m個參考點,則距離的表達式如下:
(1)
其中,q為正整數(shù),當q=1時稱為曼哈頓距離,q=2,稱為歐式距離;L代表向量在空間中的距離。本文使用q=2進行計算,當取得n個最小歐式距離的位置點后,求取n個坐標點的質(zhì)心為待測點位置坐標。
3.3 改進的位置指紋定位算法
理論研究表明:由于室內(nèi)環(huán)境復雜,無線信號會因為時間的變化、人體的隨機晃動及環(huán)境等因素的影響使信號強度值呈現(xiàn)一定的波動。為了保證信號數(shù)據(jù)本身的穩(wěn)定性,在實驗室環(huán)境下進行如下實驗:在同一位置的不同時間分別采集數(shù)據(jù),上午和下午兩個時間段每隔1s共采集300次WiFi信號。發(fā)現(xiàn)無線信號隨時間變化不大,基本存在2dB左右誤差,對定位結果影響較小。
但在多次測試過程中發(fā)現(xiàn),無線信號強度在某位置下會出現(xiàn)如圖5所示的波動情況,多數(shù)信號強度值保持在一定范圍內(nèi),但中間會存在抖動的數(shù)據(jù),該種現(xiàn)象會對離線數(shù)據(jù)的準確性及在線定位的準確性產(chǎn)生較大影響。直接求均值的方式并不能表征該位置的信號特征,應該對采集的無線信號強度值進行平滑,選取有效點。

圖5 無線信號分布圖
對無線信號的平滑提出如下改進方案:
①每隔1 s采集一次所有的信號組,假設其中一組的信號強度值是level,再連續(xù)間隔采集二次;
②如果連續(xù)采集三次的信號強度值均介于[level-1,level+1]時,將該數(shù)據(jù)插入數(shù)據(jù)庫,否則舍去前面的所有信號值,重新返回步驟①;
③將步驟②獲取的多組無線信號強度值再求均值,存入離線數(shù)據(jù)庫。
利用改進的方案將圖5平滑處理后,改進前的信號強度值RSS=1.597 1,而改進后的RSS1=-46.147 1,可見本方案能夠去除一定的抖動信號,得到較為理想的離線數(shù)據(jù)庫。該方法不僅用于離線數(shù)據(jù)采樣階段,而且應用于在線定位階段實時采集當前無線信號強度,可避免單次采集的不確定性。
針對設備差異對無線信號的影響,首先在同一位置用華為兩款不同型號手機對WiFi信號采集300次,無線信號分布情況如圖6所示。C8812型號手機采集信號強度保持在-65~66 dB,P6型號手機信號強度保持在-45 dB,不同型號手機可能造成的誤差達20 dB,若按此進行定位將產(chǎn)生較大定位誤差,因此本文將在實時定位之前加上無線信號校正階段,能有效提高定位精度。

圖6 不同手機無線信號分布圖
為解決設備差異對WiFi定位造成的影響,Ekahau提出一種自動校正的方法。它是通過分析跟蹤設備在一些易于檢測的區(qū)域時的信號變化,自動學習跟蹤建立相應的映射關系,該方法的缺點是設備不易進入易檢測區(qū),系統(tǒng)很難獲得充足的數(shù)據(jù)建立映射關系[5]。Haeberlen的研究顯示,校正設備與測試設備之間的信號強度之間存在某種線性關系[6]。本文經(jīng)過大量實驗,統(tǒng)計獲得數(shù)據(jù)并通過函數(shù)擬合的方法,推導出校正設備及測試設備的關系,可以看作y=ax+b的線性關系,參數(shù)a、b將由實際的數(shù)據(jù)獲得。
4 實驗結果與分析
實驗區(qū)域為10 m×16 m,每隔1.5 m設定為一個采樣點,AP分布在該區(qū)域的四周如圖7黑色圓點位置,每個采樣點分別采集200次經(jīng)過平滑處理后存入離線數(shù)據(jù)庫。為比較定位結果的精確性,選定如下5個點為測試點:A位于出口處附近,B位于區(qū)域的中心位置,C、D、E點位于區(qū)域的邊界處。

圖7 采樣分布圖
改進前和改進后分別進行40次測試,實驗結果分析如表1所列。應用改進后的算法各測試點的平均誤差均有所下降,A點位于出口處,可能會受其他因素影響,定位效果不明顯;B、D點,受外界影響較小,定位效果較好,定位精度提高2 m左右。

表1 實驗結果

[1] 盧恒惠,劉興川,張超,等. 基于三角形與位置指紋識別算法的WiFi定位比較[J].移動通信,2010(10):72-76.
[2] 潘立波.基于WiFi技術的無線定位算法研究與實現(xiàn)[D].浙江大學,2013:9-13.
[3] 裴文蓮,詹林.Android平臺上WiFi技術在商場員工定位系統(tǒng)中的應用[J].計算機與現(xiàn)代化,2013(2):160-161.
[4] 容曉峰,楊娜.RSSI位置指紋的定位誤差分析與仿真[J].西北工業(yè)大學學報,2010,30(6):574-577.
[5] 雷家毅.Android平臺基于WiFi的定位算法與系統(tǒng)設計[D].華東理工大學,2012:16-25.
[6] Haeberlen A, Flannery E, Ladd A M, et al. Practical robust localization over large-scale 802.11 wireless networks[C]. In Proceedings of ACMMOBICOM.2004:70-84.
魏菲(碩士研究生)、李允俊(教授)、金華(副教授),研究方向為嵌入式系統(tǒng)。

參考文獻
[1] 劉寧, 歸奕紅. 嵌入式智能家居系統(tǒng)設計方案[J]. 吉林省教育學院學報, 2008(5).
[2] 張維勇, 馮琳, 魏振春. ZigBee實現(xiàn)家庭組網(wǎng)技術的研究[J]. 合肥工業(yè)大學學報, 2005,28(7).
[3] 程立輝, 沈高峰, 馬吉明. 信息家電無線網(wǎng)關系統(tǒng)總體設計與實現(xiàn)[J]. 航空計算技術. 2006,29(11).
[4] 王進德. 嵌入式LINUX程序設計與應用案例[M]. 北京:中國電力出版社, 2007.
[5] 韋東山. 嵌入式Linux應用開發(fā)完全手冊[M]. 北京:人民郵電出版社, 2008.
[6] 呂捷. GPRS技術[M]. 北京:北京郵電大學出版社, 2001.
[7] 杜春雷. ARM體系結構與編程[M]. 北京:清華大學出版社, 2003.
(責任編輯:高珍 收稿日期:2013-11-20)
WiFi Location System Based on Position Fingerprint Algorithm
Wei Fei, Li Yunjun,Jin Hua
(Yanbian University Institute of Technology,Yanji 133000,China)
With the construction and promotion of wireless city, WiFi wireless hotspots are increasing gradually, and location application based on smart phone is receiving more and more attention. But in high-rises downtown or indoor scenes the system can't navigate only by GPS satellite positioning system. Therefore, this article designes a kind of WiFi location system based on position fingerprint algorithm on Android platform with the characteristics of WiFi signal. According to WiFi signal unstability and different devices wireless signal differences, this algorithm is improved.
WiFi location; position fingerprint algorithm ;Android
TP319
A
迪娜
2013-12-03)