新闻中心

EEPW首页>嵌入式系统>设计应用> 基于位置指纹算法的Android平台WiFi定位系统

基于位置指纹算法的Android平台WiFi定位系统

作者: 时间:2015-02-09 来源:网络 收藏

  3.1位置指纹定位算法

本文引用地址://m.amcfsurvey.com/article/269657.htm

  位置指纹定位是根据不同位置接收到的信号强度向量,建立相应的位置指纹数据库,通过实时采集的信号强度与数据库信号空间中储存的信号向量,根据一定的匹配算法实现定位。该算法能够在一定程度上减少多径效应的影响,增强抗干扰能力。目前,基于位置指纹的定位算法主要分为确定型和概率型,前者的计算效率较高,后者的定位精度较高,但是计算量较大,为了快速定位,采用确定型的位置指纹定位算法。

  位置指纹定位过程一般分两个阶段实现:离线采样阶段和在线定位阶段。离线采样阶段主要目的是建立位置指纹数据库,根据定位环境设计较为合理的采样分布图,遍历待定位区域内的所有采样点,将相应的信号强度、MAC地址以及位置信息等记录在指纹数据库中。数据库中数据的准确性决定了定位的精确程度,数据越精确,定位效果越好。在线定位阶段是利用手机在待定位点测得AP的信号强度和物理地址,然后通过相应的匹配算法,在数据库中搜索与测量点相匹配的数据,从而估计用户的实际位置。位置指纹的定位过程如图4所示。

  图4定位框图

  3.2匹配算法

  通常的匹配算法有K最近邻匹配算法(KNN),该算法能够有效提高定位精度且应用成熟。本文采用了该匹配算法,K最近邻匹配算法的实质是计算待测点采集到的RSS向量和数据库中已记录的RSS向量之间的距离。假设待测区域有n个AP,m个参考点,则距离的表达式如下:

  其中,q为正整数,当q=1时称为曼哈顿距离,q=2,称为欧式距离;L代表向量在空间中的距离。本文使用q=2进行计算,当取得n个最小欧式距离的位置点后,求取n个坐标点的质心为待测点位置坐标。

  3.3改进的位置指纹定位算法

  理论研究表明:由于室内环境复杂,无线信号会因为时间的变化、人体的随机晃动及环境等因素的影响使信号强度值呈现一定的波动。为了保证信号数据本身的稳定性,在实验室环境下进行如下实验:在同一位置的不同时间分别采集数据,上午和下午两个时间段每隔1 S共采集300次信号。发现无线信号随时间变化不大,基本存在2 dB左右误差,对定位结果影响较小。

  但在多次测试过程中发现,无线信号强度在某位置下会出现如图5所示的波动情况,多数信号强度值保持在一定范围内,但中间会存在抖动的数据,该种现象会对离线数据的准确性及在线定位的准确性产生较大影响。直接求均值的方式并不能表征该位置的信号特征,应该对采集的无线信号强度值进行平滑,选取有效点。

  图5无线信号分布图



关键词:AndroidWiFi

评论


相关推荐

技术专区

关闭