基于位置指纹算法的Android平台WiFi定位系统.doc
《基于位置指纹算法的Android平台WiFi定位系统.doc》由会员分享,可在线阅读,更多相关《基于位置指纹算法的Android平台WiFi定位系统.doc(5页珍藏版)》请在三一文库上搜索。
1、基于位置指纹算法的Android平台WiFi定位系统近年来,随着城域无线基础网络的发展,热点(AP)的覆盖率大幅度提高,由于定位服务需求的增加以及WiFi应用领域的扩大,WiFi定位成为一种有效的定位方式。GPS卫星定位是最主要的定位方式,它需要在相对空旷、高层建筑不密集的地方获得较准确的定位,当人们处在室内或高楼林立的市区,定位精度明显降低甚至不能定位。此时,利用无处不在的WiFi网络将能够弥补GPS定位的不足。目前大多数的WiFi无线定位算法主要为:基于到达时间、到达角度、到达时间差的模型定位及基于接受信号强度(RSSI)的位置指纹定位算法,由于位置指纹算法的无线定位方式不需要已知AP的位
2、置信息及准确的信道模型,该算法在定位性能以及可用性上具有更大的优势。因此,本文首先设计了整体的系统框架,通过研究分析了该算法目前存在的问题,提出了改进方案,并在Android平台上实现完整的定位系统。1 系统整体设计本系统的设计目标是在Android智能终端上实现实时WiFi定位系统,该系统包括客户端、数据服务器以及定位服务器。为了使定位过程和服务器通信过程相对独立,分别设置了专门用于定位的AP热点和客户端与服务器之间的通信AP热点,可有效降低系统环境搭建的初期成本。本方案的系统框架如图1所示。其中的通信AP热点需要与局域网相连,保证定位区域内WiFi信号良好,确保数据传输及处理的及时性。客户
3、端和服务器端通过TCP连接实现可靠传输。图1 系统框架图2 系统实现21 客户端模块设计本系统采用客户端/服务器(c/s)的网络架构,客户端的定位过程主要包括WiFi无线信号扫描、数据传输、界面显示等,该过程的流程图如图2所示。图2 客户端定位模块流程图WiFi 信号扫描是利用Android API提供的WiFiManager类实现。首先,判断WiFi是否开启;其次取得WiFiManager及WmInf0对象,通过 startScan()、getScanResuits()等方法开始扫描并得到扫描结果mScanResult;最后,将数据传递给服务器端进行定位计算。Android平台为用户提供丰富
4、的界面显示控件,本设计使用ListView显示服务器返回的定位位置信息。22 服务器端模块设计服务器端首先需要不断监听指定端口,当监听到客户端的请求时,创建新进程,该进程负责处理客户端的请求,其处理过程如图3所示。监听数据,如果接收到该数据,则进行CRC校验并结束链接帧,根据请求内容查询数据库并进行定位运算,最后返回定位结果,通过数据传输反馈给客户端界面显示定位信息。图3 服务器端流程图3 定位算法设计在室内或室外环境下,由于信号传播途中受地形、障碍物的影响和人体的阻挡,将引起无线信号的折射、衍射等多径传播、多址传播,以不同的时间到达终端,造成传播信号在幅度、频率和相位上的改变。其使得在同一位
5、置,不同时间采集到的RSS值很不确定,即使在同一时间相同位置使用不同的定位设备采集到的RSS大小也会不同,会影响定位的精确性,无线信号传播的衰减模型难以良好地表征距离和信号强度间的映射关系。因此本文采用基于位置指纹的定位算法,同时针对造成定位误差的主要原因,提出了改进的定位算法以提高定位鲁棒性。31 位置指纹定位算法位置指纹定位是根据不同位置接收到的信号强度向量,建立相应的位置指纹数据库,通过实时采集的信号强度与数据库信号空间中储存的信号向量,根据一定的匹配算法实现定位。该算法能够在一定程度上减少多径效应的影响,增强抗干扰能力。目前,基于位置指纹的定位算法主要分为确定型和概率型,前者的计算效率
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 位置 指纹 算法 Android 平台 WiFi 定位 系统
链接地址:https://www.31doc.com/p-3416850.html