使用位置指纹算法的WiFi定位系统设计
魏菲;李允俊;金华
【摘要】随着无线城市的建设和推广,WiFi无线热点的数量在逐渐增加,基于智能
手机的定位应用也受到越来越多的关注。然而仅借助于GPS卫星定位系统,无法在
高楼林立的市中心或是室内场景定位。因此,本文利用WiFi信号本身的特点,在
Android平台上设计了一种基于位置指纹算法的WiFi定位系统。针对WiFi信号
本身的不稳定性以及不同设备之间无线信号接收差异两种影响因素改进了该算
法。%Withtheconstructionandpromotionofwirelesscity,WiFiwireless
hotspotsareincreasinggradually,andlocationapplicationbadonsmart
igh-risdowntownor
indoorscenesthesystemcan'tnavigateonlybyGPSsatellitepositioning
ore,thisarticledesignesakindofWiFilocationsystembad
onpositionfingerprintalgo-rithmonAndroidplatformwiththe
ingtoWiFisignalunstabilityand
differentdeviceswirelesssig-naldifferences,thisalgorithmisimproved.
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2014(000)005
【总页数】4页(P29-32)
【关键词】WiFi定位;位置指纹算法;Android
【作者】魏菲;李允俊;金华
【作者单位】延边大学工学院,延吉133000;延边大学工学院,延吉133000;延
边大学工学院,延吉133000
【正文语种】中文
【中图分类】TP319
近年来,随着城域无线基础网络的发展,热点(AP)的覆盖率大幅度提高,由于定位
服务需求的增加以及WiFi应用领域的扩大,WiFi定位成为一种有效的定位方式。
GPS卫星定位是最主要的定位方式,它需要在相对空旷、高层建筑不密集的地方
获得较准确的定位,当人们处在室内或高楼林立的市区,定位精度明显降低甚至不
能定位。此时,利用无处不在的WiFi网络将能够弥补GPS定位的不足[1]。目前大
多数的WiFi无线定位算法主要为:基于到达时间、到达角度、到达时间差的模型
定位及基于接受信号强度(RSSI)的位置指纹定位算法[2],由于位置指纹算法的无线
定位方式不需要已知AP的位置信息及准确的信道模型,该算法在定位性能以及可
用性上具有更大的优势。因此,本文首先设计了整体的系统框架,通过研究分析了
该算法目前存在的问题,提出了改进方案,并在Android平台上实现完整的定位系
统。
本系统的设计目标是在Android智能终端上实现实时WiFi定位系统,该系统包括
客户端、数据服务器以及定位服务器。为了使定位过程和服务器通信过程相对独立,
分别设置了专门用于定位的AP热点和客户端与服务器之间的通信AP热点,可有
效降低系统环境搭建的初期成本。本方案的系统框架如图1所示。其中的通信AP
热点需要与局域网相连,保证定位区域内WiFi信号良好,确保数据传输及处理的
及时性。客户端和服务器端通过TCP连接实现可靠传输。
2.1客户端模块设计
本系统采用客户端/服务器(C/S)的网络架构,客户端的定位过程主要包括WiFi无
线信号扫描、数据传输、界面显示等,该过程的流程图如图2所示。
WiFi信号扫描是利用AndroidAPI提供的WiFiManager类实现。首先,判断
WiFi是否开启;其次取得WifiManager及WifiInfo对象,通过startScan()、
getScanResults()等方法开始扫描并得到扫描结果mScanResult;最后,将数据
传递给服务器端进行定位计算。Android平台为用户提供丰富的界面显示控件,
本设计使用ListView显示服务器返回的定位位置信息[3]。
2.2服务器端模块设计
服务器端首先需要不断监听指定端口,当监听到客户端的请求时,创建新进程,该
进程负责处理客户端的请求,其处理过程如图3所示。监听数据,如果接收到该
数据,则进行CRC校验并结束链接帧,根据请求内容查询数据库并进行定位运算,
最后返回定位结果,通过数据传输反馈给客户端界面显示定位信息。
在室内或室外环境下,由于信号传播途中受地形、障碍物的影响和人体的阻挡,将
引起无线信号的折射、衍射等多径传播、多址传播,以不同的时间到达终端,造成
传播信号在幅度、频率和相位上的改变。其使得在同一位置,不同时间采集到的
RSS值很不确定,即使在同一时间相同位置使用不同的定位设备采集到的RSS大
小也会不同,会影响定位的精确性,无线信号传播的衰减模型难以良好地表征距离
和信号强度间的映射关系[4]。因此本文采用基于位置指纹的定位算法,同时针对
造成定位误差的主要原因,提出了改进的定位算法以提高定位鲁棒性。
3.1位置指纹定位算法
位置指纹定位是根据不同位置接收到的信号强度向量,建立相应的位置指纹数据库,
通过实时采集的信号强度与数据库信号空间中储存的信号向量,根据一定的匹配算
法实现定位。该算法能够在一定程度上减少多径效应的影响,增强抗干扰能力。目
前,基于位置指纹的定位算法主要分为确定型和概率型,前者的计算效率较高,后
者的定位精度较高,但是计算量较大,为了快速定位,采用确定型的位置指纹定位
算法。
位置指纹定位过程一般分两个阶段实现:离线采样阶段和在线定位阶段。离线采样
阶段主要目的是建立位置指纹数据库,根据定位环境设计较为合理的采样分布图,
遍历待定位区域内的所有采样点,将相应的信号强度、MAC地址以及位置信息等
记录在指纹数据库中。数据库中数据的准确性决定了定位的精确程度,数据越精确,
定位效果越好。在线定位阶段是利用Android手机在待定位点测得AP的信号强
度和物理地址,然后通过相应的匹配算法,在数据库中搜索与测量点相匹配的数据,
从而估计用户的实际位置。位置指纹的定位过程如图4所示。
3.2匹配算法
通常的匹配算法有K最近邻匹配算法(KNN),该算法能够有效提高定位精度且应
用成熟。本文采用了该匹配算法,K最近邻匹配算法的实质是计算待测点采集到的
RSS向量和数据库中已记录的RSS向量之间的距离。假设待测区域有n个AP,m
个参考点,则距离的表达式如下:
其中,q为正整数,当q=1时称为曼哈顿距离,q=2,称为欧式距离;L代表向量在
空间中的距离。本文使用q=2进行计算,当取得n个最小欧式距离的位置点后,求
取n个坐标点的质心为待测点位置坐标。
3.3改进的位置指纹定位算法
理论研究表明:由于室内环境复杂,无线信号会因为时间的变化、人体的随机晃动
及环境等因素的影响使信号强度值呈现一定的波动。为了保证信号数据本身的稳定
性,在实验室环境下进行如下实验:在同一位置的不同时间分别采集数据,上午和
下午两个时间段每隔1s共采集300次WiFi信号。发现无线信号随时间变化不大,
基本存在2dB左右误差,对定位结果影响较小。
但在多次测试过程中发现,无线信号强度在某位置下会出现如图5所示的波动情
况,多数信号强度值保持在一定范围内,但中间会存在抖动的数据,该种现象会对
离线数据的准确性及在线定位的准确性产生较大影响。直接求均值的方式并不能表
征该位置的信号特征,应该对采集的无线信号强度值进行平滑,选取有效点。
对无线信号的平滑提出如下改进方案:
①每隔1s采集一次所有的信号组,假设其中一组的信号强度值是level,再连续
间隔采集二次;
②如果连续采集三次的信号强度值均介于[level-1,level+1]时,将该数据插入数
据库,否则舍去前面的所有信号值,重新返回步骤①;
③将步骤②获取的多组无线信号强度值再求均值,存入离线数据库。
利用改进的方案将图5平滑处理后,改进前的信号强度值RSS=1.5971,而改进
后的RSS1=-46.1471,可见本方案能够去除一定的抖动信号,得到较为理想的离
线数据库。该方法不仅用于离线数据采样阶段,而且应用于在线定位阶段实时采集
当前无线信号强度,可避免单次采集的不确定性。
针对设备差异对无线信号的影响,首先在同一位置用华为两款不同型号手机对
WiFi信号采集300次,无线信号分布情况如图6所示。C8812型号手机采集信号
强度保持在-65~66dB,P6型号手机信号强度保持在-45dB,不同型号手机可能
造成的误差达20dB,若按此进行定位将产生较大定位误差,因此本文将在实时定
位之前加上无线信号校正阶段,能有效提高定位精度。
为解决设备差异对WiFi定位造成的影响,Ekahau提出一种自动校正的方法。它
是通过分析跟踪设备在一些易于检测的区域时的信号变化,自动学习跟踪建立相应
的映射关系,该方法的缺点是设备不易进入易检测区,系统很难获得充足的数据建
立映射关系[5]。Haeberlen的研究显示,校正设备与测试设备之间的信号强度之
间存在某种线性关系[6]。本文经过大量实验,统计获得数据并通过函数拟合的方
法,推导出校正设备及测试设备的关系,可以看作y=ax+b的线性关系,参数a、
b将由实际的数据获得。
4实验结果与分析
实验区域为10m×16m,每隔1.5m设定为一个采样点,AP分布在该区域的四
周如图7黑色圆点位置,每个采样点分别采集200次经过平滑处理后存入离线数
据库。为比较定位结果的精确性,选定如下5个点为测试点:A位于出口处附近,
B位于区域的中心位置,C、D、E点位于区域的边界处。
改进前和改进后分别进行40次测试,实验结果分析如表1所列。应用改进后的算
法各测试点的平均误差均有所下降,A点位于出口处,可能会受其他因素影响,定
位效果不明显;B、D点,受外界影响较小,定位效果较好,定位精度提高2m左
右。
本文通过实际的实验环境分析了WiFi无线信号的分布特点,针对无线信号不稳定
的特征以及不同设备之间差异改进了基于位置指纹的定位算法,并在Android平
台上实现该定位系统。结果表明,应用该算法能够建立更加精确、稳定的离线数据
库,并且可以降低不同设备差异造成的定位误差。
论文以ZigBee技术为基础,综合Intemet网络通信技术、GPRS无线通信,设计
实现了一套功能相对完整的智能识别家居控制系统。论文主要完成了总体方案设计、
软件开发及系统测试,实现了人脸智能识别门禁系统、室内各种环境参数的检测、
GPRS短信通知及局域网异地控制等功能。经过现场测试,设计达到了预期要求。
[1]刘宁,归奕红.嵌入式智能家居系统设计方案[J].吉林省教育学院学报,2008(5).
[2]张维勇,冯琳,魏振春.ZigBee实现家庭组网技术的研究[J].合肥工业大学学报,
2005,28(7).
[3]程立辉,沈高峰,马吉明.信息家电无线网关系统总体设计与实现[J].航空计算技
术.2006,29(11).
[4]王进德.嵌入式LINUX程序设计与应用案例[M].北京:中国电力出版社,2007.
[5]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.
[6]吕捷.GPRS技术[M].北京:北京邮电大学出版社,2001.
[7]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
【相关文献】
[1]卢恒惠,刘兴川,张超,等.基于三角形与位置指纹识别算法的WiFi定位比较[J].移动通
信,2010(10):72-76.
[2]潘立波.基于WiFi技术的无线定位算法研究与实现[D].浙江大学,2013:9-13.
[3]裴文莲,詹林.Android平台上WiFi技术在商场员工定位系统中的应用[J].计算机与现代
化,2013(2):160-161.
[4]容晓峰,杨娜.RSSI位置指纹的定位误差分析与仿真[J].西北工业大学学报,2010,30(6):574-577.
[5]雷家毅.Android平台基于WiFi的定位算法与系统设计[D].华东理工大学,2012:16-25.
[6]HaeberlenA,FlanneryE,LaddAM,calrobustlocalizationoverlarge-scale
802.11wirelessnetworks[C].InProceedingsofACMMOBICOM.2004:70-84.
魏菲(硕士研究生)、李允俊(教授)、金华(副教授),研究方向为嵌入式系统。
本文发布于:2023-03-15 10:42:22,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678848143263242.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:wifi定位.doc
本文 PDF 下载地址:wifi定位.pdf
留言与评论(共有 0 条评论) |