基于位置指紋算法的Android平臺WiFi定位系統(tǒng)
3.1位置指紋定位算法
本文引用地址:http://cafeforensic.com/article/270826.htm位置指紋定位是根據不同位置接收到的信號強度向量,建立相應的位置指紋數據庫,通過實時采集的信號強度與數據庫信號空間中儲存的信號向量,根據一定的匹配算法實現定位。該算法能夠在一定程度上減少多徑效應的影響,增強抗干擾能力。目前,基于位置指紋的定位算法主要分為確定型和概率型,前者的計算效率較高,后者的定位精度較高,但是計算量較大,為了快速定位,采用確定型的位置指紋定位算法。
位置指紋定位過程一般分兩個階段實現:離線采樣階段和在線定位階段。離線采樣階段主要目的是建立位置指紋數據庫,根據定位環(huán)境設計較為合理的采樣分布圖,遍歷待定位區(qū)域內的所有采樣點,將相應的信號強度、MAC地址以及位置信息等記錄在指紋數據庫中。數據庫中數據的準確性決定了定位的精確程度,數據越精確,定位效果越好。在線定位階段是利用Android手機在待定位點測得AP的信號強度和物理地址,然后通過相應的匹配算法,在數據庫中搜索與測量點相匹配的數據,從而估計用戶的實際位置。位置指紋的定位過程如圖4所示。
圖4定位框圖
3.2匹配算法
通常的匹配算法有K最近鄰匹配算法(KNN),該算法能夠有效提高定位精度且應用成熟。本文采用了該匹配算法,K最近鄰匹配算法的實質是計算待測點采集到的RSS向量和數據庫中已記錄的RSS向量之間的距離。假設待測區(qū)域有n個AP,m個參考點,則距離的表達式如下:
其中,q為正整數,當q=1時稱為曼哈頓距離,q=2,稱為歐式距離;L代表向量在空間中的距離。本文使用q=2進行計算,當取得n個最小歐式距離的位置點后,求取n個坐標點的質心為待測點位置坐標。
3.3改進的位置指紋定位算法
理論研究表明:由于室內環(huán)境復雜,無線信號會因為時間的變化、人體的隨機晃動及環(huán)境等因素的影響使信號強度值呈現一定的波動。為了保證信號數據本身的穩(wěn)定性,在實驗室環(huán)境下進行如下實驗:在同一位置的不同時間分別采集數據,上午和下午兩個時間段每隔1 S共采集300次WiFi信號。發(fā)現無線信號隨時間變化不大,基本存在2 dB左右誤差,對定位結果影響較小。
但在多次測試過程中發(fā)現,無線信號強度在某位置下會出現如圖5所示的波動情況,多數信號強度值保持在一定范圍內,但中間會存在抖動的數據,該種現象會對離線數據的準確性及在線定位的準確性產生較大影響。直接求均值的方式并不能表征該位置的信號特征,應該對采集的無線信號強度值進行平滑,選取有效點。
圖5無線信號分布圖
評論