基于位置指紋算法的Android平臺WiFi定位系統(tǒng)
3.1位置指紋定位算法
本文引用地址:http://2s4d.com/article/269657.htm位置指紋定位是根據(jù)不同位置接收到的信號強度向量,建立相應(yīng)的位置指紋數(shù)據(jù)庫,通過實時采集的信號強度與數(shù)據(jù)庫信號空間中儲存的信號向量,根據(jù)一定的匹配算法實現(xiàn)定位。該算法能夠在一定程度上減少多徑效應(yīng)的影響,增強抗干擾能力。目前,基于位置指紋的定位算法主要分為確定型和概率型,前者的計算效率較高,后者的定位精度較高,但是計算量較大,為了快速定位,采用確定型的位置指紋定位算法。
位置指紋定位過程一般分兩個階段實現(xiàn):離線采樣階段和在線定位階段。離線采樣階段主要目的是建立位置指紋數(shù)據(jù)庫,根據(jù)定位環(huán)境設(shè)計較為合理的采樣分布圖,遍歷待定位區(qū)域內(nèi)的所有采樣點,將相應(yīng)的信號強度、MAC地址以及位置信息等記錄在指紋數(shù)據(jù)庫中。數(shù)據(jù)庫中數(shù)據(jù)的準確性決定了定位的精確程度,數(shù)據(jù)越精確,定位效果越好。在線定位階段是利用Android手機在待定位點測得AP的信號強度和物理地址,然后通過相應(yīng)的匹配算法,在數(shù)據(jù)庫中搜索與測量點相匹配的數(shù)據(jù),從而估計用戶的實際位置。位置指紋的定位過程如圖4所示。
圖4定位框圖
3.2匹配算法
通常的匹配算法有K最近鄰匹配算法(KNN),該算法能夠有效提高定位精度且應(yīng)用成熟。本文采用了該匹配算法,K最近鄰匹配算法的實質(zhì)是計算待測點采集到的RSS向量和數(shù)據(jù)庫中已記錄的RSS向量之間的距離。假設(shè)待測區(qū)域有n個AP,m個參考點,則距離的表達式如下:
其中,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ù),上午和下午兩個時間段每隔1 S共采集300次WiFi信號。發(fā)現(xiàn)無線信號隨時間變化不大,基本存在2 dB左右誤差,對定位結(jié)果影響較小。
但在多次測試過程中發(fā)現(xiàn),無線信號強度在某位置下會出現(xiàn)如圖5所示的波動情況,多數(shù)信號強度值保持在一定范圍內(nèi),但中間會存在抖動的數(shù)據(jù),該種現(xiàn)象會對離線數(shù)據(jù)的準確性及在線定位的準確性產(chǎn)生較大影響。直接求均值的方式并不能表征該位置的信號特征,應(yīng)該對采集的無線信號強度值進行平滑,選取有效點。
圖5無線信號分布圖
評論