基于基于Android平台改进的室内平台改进的室内WiFi定位算法的研究定位算法的研究
基于Android手机平台设计并实现了WiFi室内定位系统。该系统采用指纹定位算法,通过手机采集室内WiFi信息
并建立数据库,当用户发出定位请求时,手机将扫描到的WiFi信息发送给数据库,通过匹配算法进行位置定
位。通过对采集后的数据进行加权以及对数据库数据进行预先处理,降低了运算量,同时去除了较小的信号强
度的干扰。实验表明,与传统算法相比,该系统定位精度大大增加。
0 引言引言
随着通信技术和智能科技的不断发展,定位技术在日常生活中发挥着越来越大的作用,人们对定位服务的需求逐渐增大。
室外定位GPS以及基站定位技术已经发展成熟,出现了多种室内定位技术,如:RFID(射频识别)、WiFi、蓝牙、红外线等。
定位方法有基于到达时间(TOA)、基于信号强度(RSS)、基于到达角度(AOA)的方法
[1]
,还有一些通过加速度传感器等手机内
的集成传感器件来实现定位
[2]
。现阶段,智能手机相当普及,WiFi也基本覆盖大多数公共场所,WiFi定位无需额外的硬件需
求,具有低成本、低功耗、高精度等特点,因此其在众多定位方法中具有很大的优势。
本文通过扫描室内的WiFi信息,在Android平台上通过改进的指纹匹配定位方法实现室内定位。
1 WiFi位置指纹定位方法位置指纹定位方法
1.1 指纹定位方法指纹定位方法
基于WiFi无线网络的定位技术有很多,其中以基于信号强度RSS的定位技术最为常用
[4]
。在基于RSS的定位技术中位置指
纹定位方法较为普遍。位置指纹定位方法
[5]
分为数据采集阶段和实时定位阶段两部分。在数据采集阶段,在区域内均匀地选择
N个数据采集点,在每个采集点,通过安卓手机采集所有AP的RSS信息,并将所有RSS信息以及该点的坐标(x,y)存入数据
库
[6]
,等待第二阶段调用。在实时定位阶段,用户在未知位置发出定位请求,安卓手机采集该点AP的RSS信息并传送至数据
库,通过匹配算法以及第一阶段采集的RSS数据得到位置坐标(x,y)反馈给用户,定位完成
[7]
。
在第二阶段定位过程中,kNN算法是较为常用的一种传统匹配算法。
1.2 kNN算法算法(最邻近算法最邻近算法)
临近算法即k最邻近分类算法(kNN,k-NearestNeighbor)
[8]
,核心思想是:如果一个样本在特征空间中的k个最相邻的样本中
的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
在kNN算法中要准确选择参数k的值,当k较小时,选择临近点数量较小,不能准确地确定参考点的类别,增大了误差;当
选择k较大时,则会选择较远的点,导致定位结果不准确。因此,应多次测量决定参数k的值。本实验经多次测试,k为3时误
差最小,因此k取3。
AP
n
代表定位区域内的n个WiFi热点。在数据采集阶段,在第i个位置采集n个WiFi的RSS信息,i=1,2,3,…,m,m为参
考点个数,每个WiFi热点采集多次RSS取平均值。Rij为在第i个位置采集到的第j个WiFi的RSS的平均值,j=1,2,3,…,n;
n为WiFi个数,(x
i
,y
i
)为i点的实际坐标。在定位阶段,在待定位点测得第j个WiFi的RSS平均值为R
j
,则R
ij
与R
j
之间距离为:
2 改进算法改进算法WR-kNN
由于室内物品较多以及人员的不断走动,使得室内环境变得复杂,人员以及物品的阻挡使WiFi信号发生衰减
[10]
,加大了室
内的定位难度。本文通过对距离进行加权
[11]
以及去除无用组来增加定位精度。在离线阶段对扫描得到的数据进行加权,加大
有用数据的权重,在进行定位匹配时,预先将数据按照RSSI均值大小升序排序,取前k个数据进行运算,减少了运算量,降低
了小数据对结果的影响。
2.1 加权加权kNN
首先对kNN算法中参考点与待测点之间的距离进行加权。kNN算法中,参考点与待测点的距离越接近,相似度越高,在定位
中贡献越大。加大贡献大的距离的权值,减小贡献小的距离的权值,有助于提高定位精度。因此,短距离赋予较大的权值w
j
,
长距离赋予较小的权值w
j
:
评论1