<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于位置指紋算法的Android平臺WiFi定位系統(tǒng)

          基于位置指紋算法的Android平臺WiFi定位系統(tǒng)

          作者: 時間:2015-03-11 來源:電子產(chǎn)品世界 收藏

            3.1位置指紋定位算法

          本文引用地址:http://www.ex-cimer.com/article/270826.htm

            位置指紋定位是根據(jù)不同位置接收到的信號強度向量,建立相應的位置指紋數(shù)據(jù)庫,通過實時采集的信號強度與數(shù)據(jù)庫信號空間中儲存的信號向量,根據(jù)一定的匹配算法實現(xiàn)定位。該算法能夠在一定程度上減少多徑效應的影響,增強抗干擾能力。目前,基于位置指紋的定位算法主要分為確定型和概率型,前者的計算效率較高,后者的定位精度較高,但是計算量較大,為了快速定位,采用確定型的位置指紋定位算法。

            位置指紋定位過程一般分兩個階段實現(xiàn):離線采樣階段和在線定位階段。離線采樣階段主要目的是建立位置指紋數(shù)據(jù)庫,根據(jù)定位環(huán)境設計較為合理的采樣分布圖,遍歷待定位區(qū)域內的所有采樣點,將相應的信號強度、MAC地址以及位置信息等記錄在指紋數(shù)據(jù)庫中。數(shù)據(jù)庫中數(shù)據(jù)的準確性決定了定位的精確程度,數(shù)據(jù)越精確,定位效果越好。在線定位階段是利用手機在待定位點測得AP的信號強度和物理地址,然后通過相應的匹配算法,在數(shù)據(jù)庫中搜索與測量點相匹配的數(shù)據(jù),從而估計用戶的實際位置。位置指紋的定位過程如圖4所示。

            

           

            圖4定位框圖

            3.2匹配算法

            通常的匹配算法有K最近鄰匹配算法(KNN),該算法能夠有效提高定位精度且應用成熟。本文采用了該匹配算法,K最近鄰匹配算法的實質是計算待測點采集到的RSS向量和數(shù)據(jù)庫中已記錄的RSS向量之間的距離。假設待測區(qū)域有n個AP,m個參考點,則距離的表達式如下:

            

           

            其中,q為正整數(shù),當q=1時稱為曼哈頓距離,q=2,稱為歐式距離;L代表向量在空間中的距離。本文使用q=2進行計算,當取得n個最小歐式距離的位置點后,求取n個坐標點的質心為待測點位置坐標。

            3.3改進的位置指紋定位算法

            理論研究表明:由于室內環(huán)境復雜,無線信號會因為時間的變化、人體的隨機晃動及環(huán)境等因素的影響使信號強度值呈現(xiàn)一定的波動。為了保證信號數(shù)據(jù)本身的穩(wěn)定性,在實驗室環(huán)境下進行如下實驗:在同一位置的不同時間分別采集數(shù)據(jù),上午和下午兩個時間段每隔1 S共采集300次信號。發(fā)現(xiàn)無線信號隨時間變化不大,基本存在2 dB左右誤差,對定位結果影響較小。

            但在多次測試過程中發(fā)現(xiàn),無線信號強度在某位置下會出現(xiàn)如圖5所示的波動情況,多數(shù)信號強度值保持在一定范圍內,但中間會存在抖動的數(shù)據(jù),該種現(xiàn)象會對離線數(shù)據(jù)的準確性及在線定位的準確性產(chǎn)生較大影響。直接求均值的方式并不能表征該位置的信號特征,應該對采集的無線信號強度值進行平滑,選取有效點。

            

           

            圖5無線信號分布圖



          關鍵詞: Android WiFi

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();