实验1 Wi-Fi指纹定位
1. 实验目标
2. 实验背景
3. 实验原理
3.1 WIFI基础知识
3.2室内定位方法建模
3.3指纹定位算法
①离线/训练阶段
②在线/定位阶段
4. 关键代码
5. 实验结果
6. 室内定位误差分析
6.1 非视距传播
6.2 多径传播
6.3 阴影效应
7. 实验总结
物联网定位技术
实验报告
学生姓名 |
白** |
学 号 |
2008070101 |
专业班级 |
物联201 |
指导老师 |
曾** |
学 院 |
信息与科学技术学院 |
完成时间 |
2023年3月3日 |
通过实现一个基于Wi-Fi指纹的室内定位系统,掌握指纹定位的原理和实现方式,并进行测试,对所实现的指纹定位系统的误差性能进行评价。
WIFI位置指纹定位技术是基于接收信号传播特性而进行定位的,与传统定位技术相比,其无需额外添加设备来进行角度测量与时间同步,且充分利用了己有WIFI无线网络,降低其使用成本。
其次,WIFI位置指纹定位技术与传统室内定位技术(如:视频信号与红外定位)相比,其扩展性更强、应用范围更广。由于WIFI信号传输时受非视距、多径衰落等因素影响较小,故基于WIFI网络的指纹定位系统稳定性较强,而基于红外或视频信号定位技术在使用时较易受限,比如: 在阳光直射或突光照射下基于红外技术定位的精度将大大降低,而基于视频信号的定位技术使用前提是移动终端必须在可视条件下。
~基于WIFI网络的指纹定位
~基于红外技术定位
~基于视频信号定位
WIFI位置指纹定位技术可通过WIFI网络中的AP进行定位,避免了对无线基站网络的依赖,从而实现了地下或室内环境的准确高效定位,其在地下室内商场、停车场、物流等行业均具有潜在应用价值。
WIFI网络的组成结构如下图2-1所示,主要包括了接入点(Access Point,AP)、站点(Station,STA)、无线传输介质(Wirless Medium,WM)与分布式系统(DistributionSystem,DS)。
图2-1 WIFI无线网络工作原理框图
传播模型定位法是根据信号传播距离与衰减的关系进行建模,并通过建立的传播模型将RSS转换成信号的传播距离,从而完成对移动终端的定位。传播模型法在定位时无需额外的硬件设备,故其定位成本很低,且其在定位时不会影响到现有网络数据的传输。
虽然传播模型定位法有以上优点,但由于其定位精度不高导致其应用范围不是很广,目前播模型定位法只应用于粗略定位与测距中,其定位步骤如下:
①在己知室内环境下,利用接收信号强度估计此环境下的传播模型与参数值;
②利用①中的传播模型,通过获取未知终端节点的RSS来完成对其定位。位置指纹定位法是通过移动终端的RSS与指纹库中的指纹数据进行匹配,然后再通过某种算法来计算其位置。
无线信号依赖传播环境,在不同位置上,其信道的多径特征也均不相同。【无线信号在传播过程中经反射、折射、散射后,生成与传播环境相关且独特的信号,我们称此多径特征为“位置指纹”。】信号的多径特征包括信号强度、脉冲响应时间、信噪比等,本文主要釆用接收AP信号的强度值(即RSS)作为信号指纹特征。位置指纹法在定位过程中分“离线/训练”与“在线/定位”两个阶段,其定位流程如下图所示。
指纹定位在离线阶段主要采集定位场所中各参考点位置上的信号多径特征(信号强度),从而建立位置指纹数据库。
在实际定位过程中,移动终端首先会接收到周围AP接入点发出的信号特征记为RSS,然后则可遍历指纹数据库对此RSS矢量进行匹配,最后再采取某种指纹定位算法计算出移动终端的位置。常用的指纹定位算法有: 最近邻法(CNN)、K近邻法(KNN)、K加权近邻法(WKNN)、贝叶斯概率算法、BP神经网络算法等。
假设在定位区域中共有L个位置指纹参考点,记为{F1,F2,....Fl},其与一组位置坐标{L1,L2,....L7}一一映射即指纹Fi在定位区域中对应的位置坐标为Li=(Xi,Yi)。在“在线/定位”阶段时,移动终端会接收到周围n个AP热点发送的信号强度矢量,记为S,其中S=(S1,S2,..Sn)。
通过贝叶斯公式计算后验概率:P(Li |S)*P(Li)=P(S)P(S| Li)*P(Li)
假设选取参考点是随机的,均匀分布,即P(Li)=1/L。
由于在某一位置指纹处,来自每个接入点AP的RSS(接收信号强度)互不相关,所以可以得到:P(S Li)= P(S1 Li) P(S2 Li).... P(Sn Li)
观察数据发现某一位置指纹处的接收信号强度服从高斯正态分布,所以可以进行近似模拟。
最后以概率值P(Li |S)作为定位区域中指纹参考点的权重,并估计出移动终端的位置。
/**
* 计算距离,并且找出最小距离的点和值。
* @return
*/
private Point calculate() {
minDistance = Double.MAX_VALUE;
mini = -1;
double tempDistance;
distance = new double[totalPoints.size() - 1];
Point endPoint = totalPoints.get(totalPoints.size() - 1);
for (int i = 0; i < totalPoints.size() - 1; i++) {
tempDistance = calculate_Distance(endPoint, totalPoints.get(i));
distance[i] = tempDistance;
if (tempDistance < minDistance) {
minDistance = tempDistance;
mini = i;}
}
return totalPoints.get(mini);
}
/**
* 计算两点之间的距离
* @param point1
* @param point2
* @return
*/
private double calculate_Distance(Point point1, Point point2) {
float result = 0.0f;
String str;
Map tempMap1 = new HashMap();
Map tempMap2 = new HashMap();
int i, j;
for (j = 0; j < point2.aps.size(); j++) {
tempMap2.put(point2.aps.get(j).SSID, point2.aps.get(j).level);
}
for (i = 0; i < point1.aps.size(); i++) {
tempMap1.put(point1.aps.get(i).SSID, point1.aps.get(i).level);
}
Iterator iterator = totalAPs.iterator();
while (iterator.hasNext()) {
str = iterator.next();
if (tempMap1.containsKey(str) && tempMap2.containsKey(str)) {
result += (tempMap1.get(str) - tempMap2.get(str))
* (tempMap1.get(str) - tempMap2.get(str));
}
if (tempMap1.containsKey(str) && !tempMap2.containsKey(str)) {
result += (tempMap1.get(str) - minLevel.get(str))
* (tempMap1.get(str) - minLevel.get(str));
}
if (!tempMap1.containsKey(str) && tempMap2.containsKey(str)) {
result += (tempMap2.get(str) - minLevel.get(str))
* (tempMap2.get(str) - minLevel.get(str));
}
}
return Math.sqrt(result);
}
代码调试截图
实验界面截图
第一次、第二次扫描截图
wifi.txt截图
计算结果截图
由于室内环境比较复杂,信号在室内传播时会受到不同程度的影响,而造成此影响的因素主要有以下三种: 非视距传播、多径传播、阴影效应。
由于在信号的发射端与接收端之间的直射路径上存在障碍物,导致无线电波不能在收发两端进行直射传播,而只能通过反射、折射进行传播,由此在接收端测得的信号特征,如信号到达时间、信号强度、入射角、到达时间差等,将无法准确的反映出收发两端之间的真实距离,我们称这种现象为信号的非视距传播。
由于信号接收端所处环境复杂,使得发射的电磁波在向外扩散过程中遇到各种障碍物,使得信号在传播过程中受到反射、散射、绕射等影响,导致接收到的信号为多条路径上信号的矢量和。由于每条路径上信号的强度、到达时间、到达载波相位都不相同,则产生多径干扰,这种现象即为多径传播。
阴影效应是指移动终端在移动过程中,有一些大型障碍物阻挡了其无线电波的直射路径,从而导致信号接收区域中存在半盲区,在电磁场中形成了阴影,致使信号接收点场强在终端移动过程中起伏变化,我们称此现象为阴影效应。除以上三种环境客观因素外,指纹定位选取的信号传播模型、定位场景中AP与位置指纹参考点的配置以及选取的定位算法均会影响定位精度。
除此之外,定位温度、方向、移动终端运动状态也均会影响定位精度。
全球定位系统是迄今为止应用最为成功的地位系统,具备高精度的定位能力,但在室内和高楼密布的城区等信号遮挡严重的密集环境中,由于接受机捕获不到足够强度的卫星信号,GPS的定位质量难以保证甚至无法完成定位,使其可用性受到严重制约。
由于室内环境下都普及了WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法。我们想通过wifi指纹定位技术来解决目前存在的这个瓶颈,通过记录空间的WiFi信号特征,形成wifi指纹库,将WiFi信号与空间位置进行绑定,利用移动终端或查询终端提供实时定位信息以及路径规划等功能,动态实现方向指引。帮助用户用最短的时间寻找目标,从而提高公共场所的服务水平与用户体验,为解决当前GPS全球定位系统所存在的问题,提供了一个可行的方案。
WiFi室内指纹定位具有成本低、准确率高的优点,实验依托的决策树算法,属于监督性的分类算法,适合指纹定位的应用。通过小组成员的共同努力,代码成功输出五个参数的误差距离。
但是实验也存在欠缺:首先,在收集WiFi信号强度、采集数据库信息时,动态变化的数据会产生预测误差,小组实验对于误差处理方面有些欠缺。其次,在代码编写过程中,主要借鉴网上开源项目,对于组内考虑的一些因素未能编进代码。最后,代码操作不熟练导致实验进程坎坷。