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