当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 近年来,随着城域无线基础网络的发展,热点(AP)的覆盖率大幅度提高,由于定位服务需求的增加以及WiFi应用领域的扩大,WiFi定位成为一种有效的定位方式。GPS卫星定位是最主

近年来,随着城域无线基础网络的发展,热点(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 个参考点,则距离的表达式如下:

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

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

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

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

对无线信号的平滑提出如下改进方案:

① 每隔1 S采集一次所有的信号组,假设其中一组的信号强度值是level,再连续间隔采集二次;

②如果连续采集三次的信号强度值均介于[1evel - 1,level+1]时,将该数据插入数据库,否则舍去前面的所有信号值,重新返回步骤① ;

③ 将步骤② 获取的多组无线信号强度值再求均值,存入离线数据库。

利用改进的方案将图5平滑处理后,改进前的信号强度值RSS=1.597 1,而改进后的RSSI=-46.I47 1,可见本方案能够去除一定的抖动信号,得到较为理想的离线数据库。该方法不仅用于离线数据采样阶段,而且应用于在线定位阶段实时采集当前无线信号强度,可避免单次采集的不确定性。

针对设备差异对无线信号的影响,首先在同一位置用华为两款不同型号手机对WiFi信号采集300次,无线信号分布情况如图6所示。C8812型号手机采集信号强度保持在一65~66 dB,P6型号手机信号强度保持在一45dB,不同型号手机可能造成的误差达2O dB,若按此进行定位将产生较大定位误差,因此本文将在实时定位之前加上无线信号校正阶段,能有效提高定位精度。

为解决设备差异对WiFi定位造成的影响,Ekahau提出一种自动校正的方法。它是通过分析跟踪设备在一些易于检测的区域时的信号变化,自动学习跟踪建立相应的映射关系,该方法的缺点是设备不易进入易检测区,系统很难获得充足的数据建立映射关系。Haeberlen的研究显示,校正设备与测试设备之间的信号强度之间存在某种线性关系。本文经过大量实验,统计获得数据并通过函数拟合的方法,推导出校正设备及测试设备的关系,可以看作y=ax+b的线性关系,参数a、b将由实际的数据获得。

4 实验结果与分析

实验区域为10 m×16 m,每隔1.5 m设定为一个采样点,AP分布在该区域的四周如图7黑色圆点位置,每个采样点分别采集200次经过平滑处理后存入离线数据库。为比较定位结果的精确性,选定如下5个点为测试点:A位于出口处附近,B位于区域的中心位置,C、D、E点位于区域的边界处。

改进前和改进后分别进行4O次测试,实验结果分析如表1所列。应用改进后的算法各测试点的平均误差均有所下降,A点位于出口处,可能会受其他因素影响,定位效果不明显;B、D点,受外界影响较小,定位效果较好,定位精度提高2 m左右。

1次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速进步,人工智能(AI)已经逐渐成为了引领新一轮科技革命和产业变革的核心驱动力。AI不仅在改变着我们的日常生活,还在推动各行各业的创新发展。展望未来,人工智能的发展将呈现出哪些趋势呢?本文将从技术、应用、伦理...

关键字: 人工智能 算法 AI技术

机器学习算法不会要求一个问题被 100%求解,取而代之的是把问题转化为最优化的问题,用不同的算法优化问题,从而比较得到尽量好的结果。

关键字: 机器学习 算法 最优化

据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。

关键字: 机器学习 人工智能 算法

NVIDIA 量子模拟平台将通过各大云提供商提供,帮助科学家推进量子计算和算法研究

关键字: 量子计算 算法 量子云

随着科技的飞速发展,人工智能(AI)已经成为当今科技研究的热点和前沿。AI的快速发展不仅带来了许多新的应用场景和商业模式,也在推动科技进步的同时,引发了一系列关于其未来发展方向和潜在影响的深入讨论。本文将对人工智能的科技...

关键字: 人工智能 AI技术 算法

罗德与施瓦茨与SmartViser携手开发了一种用于测试符合欧盟销售的智能手机和平板电脑的新Energy Efficiency Index(EEI)标签法规的解决方案。该解决方案的核心是R&S CMX500,这是...

关键字: 智能手机 Android iOS

机器学习算法:机器学习是一种让计算机通过学习数据和模式来改进自身算法的技术。这些算法包括监督学习、无监督学习和强化学习。

关键字: 人工智能 机器学习 算法

随着信息技术的快速发展,机器学习作为人工智能的核心技术之一,正逐渐渗透到各个领域,引领着一场前所未有的科技变革。在机器学习的实际应用中,有三大重点至关重要,它们分别是数据质量、算法选择与模型评估。本文将深入探讨这三大重点...

关键字: 机器学习 数据质量 算法

在人工智能的浪潮中,机器学习已逐渐成为推动科技进步的核心动力。机器学习技术的广泛应用,从图像识别到自然语言处理,从智能推荐到自动驾驶,都离不开其三个基本要素:数据、算法和模型。本文将深入探讨这三个基本要素在机器学习中的作...

关键字: 机器学习 算法 人工智能

随着信息技术的迅猛发展,机器学习作为人工智能的核心技术之一,已经深入到了各个领域,为我们的生活和工作带来了翻天覆地的变化。无论是智能语音助手、自动驾驶汽车,还是个性化推荐、疾病预测,这些令人惊叹的应用背后,都离不开机器学...

关键字: 机器学习 人工智能 算法
关闭
关闭