基于位置指纹算法的Android平台WiFi定位系统
近年来,随着城域无线基础网络的发展,热点(AP)的覆盖率大幅度提高,由于定位服务需求的增加以及WiFi应用领域的扩大,WiFi定位成为一种有效的定位方式。GPS卫星定位是最主要的定位方式,它需要在相对空旷、高层建筑不密集的地方获得较准确的定位,当人们处在室内或高楼林立的市区,定位精度明显降低甚至不能定位。此时,利用无处不在的WiFi网络将能够弥补GPS定位的不足。
目前大多数的WiFi无线定位算法主要为:基于到达时间、到达角度、到达时间差的模型定位及基于接受信号强度(RSSI)的位置指纹定位算法,由于位置指纹算法的无线定位方式不需要已知AP的位置信息及准确的信道模型,该算法在定位性能以及可用性上具有更大的优势。因此,本文首先设计了整体的系统框架,通过研究分析了该算法目前存在的问题,提出了改进方案,并在Android平台上实现完整的定位系统。
1 系统整体设计
本系统的设计目标是在Android智能终端上实现实时WiFi定位系统,该系统包括客户端、数据服务器以及定位服务器。为了使定位过程和服务器通信过程相对独立,分别设置了专门用于定位的AP热点和客户端与服务器之间的通信AP热点,可有效降低系统环境搭建的初期成本。本方案的系统框架如图1所示。其中的通信AP热点需要与局域网相连,保证定位区域内WiFi信号良好,确保数据传输及处理的及时性。客户端和服务器端通过TCP连接实现可靠传输。
2 系统实现
2.1 客户端模块设计
本系统采用客户端/服务器(c/s)的网络架构,客户端的定位过程主要包括WiFi无线信号扫描、数据传输、界面显示等,该过程的流程图如图2所示。
WiFi信号扫描是利用Android API提供的WiFiManager类实现。首先,判断WiFi是否开启;其次取得WiFiManager及WmInf0对象,通过 startScan()、getScanResuits()等方法开始扫描并得到扫描结果mScanResult;最后,将数据传递给服务器端进行定位计 算。Android平台为用户提供丰富的界面显示控件,本设计使用ListView显示服务器返回的定位位置信息。
2.2 服务器端模块设计
服务器端首先需要不断监听指定端口,当监听到客户端的请求时,创建新进程,该进程负责处理客户端的请求,其处理过程如图3所示。监听数据,如果接收到该数据,则进行CRC校验并结束链接帧,根据请求内容查询数据库并进行定位运算,最后返回定位结果,通过数据传输反馈给客户端界面显示定位信息。
3 定位算法设计
在室内或室外环境下,由于信号传播途中受地形、障碍物的影响和人体的阻挡,将引起无线信号的折射、衍射等多径传播、多址传播,以不同的时间到达终端,造成 传播信号在幅度、频率和相位上的改变。其使得在同一位置,不同时间采集到的RSS值很不确定,即使在同一时间相同位置使用不同的定位设备采集到的RSS大小也会不同,会影响定位的精确性,无线信号传播的衰减模型难以良好地表征距离和信号强度间的映射关系。因此本文采用基于位置指纹的定位算法,同时针对造成 定位误差的主要原因,提出了改进的定位算法以提高定位鲁棒性。
3.1 位置指纹定位算法
位置指纹定位是根据不同位置接收到的信号强度向量,建立相应的位置指纹数据库,通过实时采集的信号强度与数据库信号空间中储存的信号向量,根据一定的匹配算法实现定位。该算法能够在一定程度上减少多径效应的影响,增强抗干扰能力。目前,基于位置指纹的定位算法主要分为确定型和概率型,前者的计算效率较高,后者的定位精度较高,但是计算量较大,为了快速定位,采用确定型的位置指纹定位算法。
位置指纹定位过程一般分两个阶段实现:离线采样阶段和在线定位阶段。离线采样阶段主要目的是建立位置指纹数据库,根据定位环境设计较为合理的采样分布图,遍历待定位区域内的所有采样点,将相应的信号强度、MAC地址以及位置信息等记录在指纹数据库中。数据库中数据的准确性决定了定位的精确程度,数据越精确,定位效果越好。在线定位阶段是利用Android手机在待定位点测得AP的信号强度和物理地址,然后通过相应的匹配算法,在数据库中搜索与测量点相匹配的数据,从而估计用户的实际位置。位置指纹的定位过程如图4所示。
3.2 匹配算法
通常的匹配算法有K最近邻匹配算法(KNN),该算法能够有效提高定位精度且应用成熟。本文采用了该匹配算法,K最近邻匹配算法的实质是计算待测点采集到的RSS向量和数据库中已记录的RSS向量之间的距离。假设待测区域有n个AP,m 个参考点,则距离的表达式如下:
- WAPI/WiFi双接入方式手机获得入网允许(05-15)
- Dell mini 3i 中国正式露面,没3G,没WIFI(08-18)
- 不远的将来移动数据流量绝大部分由WIFI网络处理(04-23)
- LIFI有LED光就能上网(05-21)
- 新WiFi标准可自由切换(05-29)
- 德国开发超高速无线网络:每秒下载10部电影(05-28)