西宁做网站seo,徐州做网站那家好,wordpress登录页logo修改,千龙网站建设基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据
WiFi指纹匹配是室内定位最为基础和常见的研究#xff0c;但是WiFi指纹的采集可以称得上是labor-intensive和time-consuming。现在#xff0c;给大家分享一下我们课题组之前在做WiFi指纹定位时的基于射线跟踪技术仿真WiFi…基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据
WiFi指纹匹配是室内定位最为基础和常见的研究但是WiFi指纹的采集可以称得上是labor-intensive和time-consuming。现在给大家分享一下我们课题组之前在做WiFi指纹定位时的基于射线跟踪技术仿真WiFi RSSI实验代码。
对数路径损耗模型
WiFi信号强度在空间中传播符合路径损耗模型。本文介绍的是较为常用的对数路径损耗模型如下公式 RSS衰减与距离的对数呈正比假设已知一个参考距离d0以及这个距离上的RSS为 RSS(d0)那么距离为d的RSS(d)就可以通过上式计算得到。n是环境因子在自由空间中一般取2就可以。 下图是实际RSS和模型仿真RSS的比较。在实际环境中因为受到多径效应、非视距传播等噪声的影响信号强度会发生变化所以实际测量到的Wi-Fi信号一般如红线所示。 利用射线跟踪技术仿真得到Wi-Fi的RSSI数据
Wi-Fi信号沿直线传播可以将其近似为射线进行分析。对于一个固定的发射源即WiFi AP在自由空间中利用对数距离衰减模型即可计算各个位置的RSS但是室内环境很复杂信号可以遇到墙壁发生反射各个反射后的信号又可以与未经反射的信号叠加实际中测量到的信号其实包括了各个反射、绕射、散射信号。在射线跟踪中计算出发射点与接收点之间的多条传播路径分别对各个路径的信号进行分析一般包括信号强度、相位在多次反射或绕射下的计算然后叠加得到接收点上的信号。 在仿真实验中我们把每个Wi-Fi AP看成一个固定的发射源而接收器则要接受来自不同Wi-Fi AP的信号。接收器收到的信号中包含了来自每个WiFi AP的1条直射路径与6条墙壁反射路径的信号因为反射后信号很小所以我们不考虑反射信号路径。根据对数路径损耗模型我们理论上可以计算出室内每点的WiFi RSSI强度用于室内定位指纹库建立。 如下图是仿真得到的某WiFi AP所覆盖的WiFi信号强度。
仿真实验MATLAB代码
实际上在射线仿真实验中涉及到了通信原理的知识但是因为我本人不是通信出身所以不做具体说明想要了解射线传播原理的同学自己搜索相关知识~ 以下是主程序代码
if ~exist(radio_map_20_15.mat, file) %生成仿真环境disp(正在模拟射线跟踪...);generate_radio_map(0.01); % 仿真射线网格大小
endclc
clear;
load radio_map_30_30.mat;
%变量为fingerprint %默认尺寸为20m*15m * 10ap网格大小为0.01m
%注意这里的仿真环境fingerprint是一个精度很高的指纹库后面从这个仿真环境中进行取样采集数据并生成用于定位的指纹库。%% 获取离线指纹库
%如果要研究指纹库构建上的优化在这部分改进
[offline_rss, offline_location] get_offline_data_uniform(fingerprint,100); %均匀采样
offline_locationoffline_location/100;
idx[1:1:length(offline_location)];
offline_location[offline_location,idx];
save(offline_data_uniform, offline_rss, offline_location);
[offline_rss, offline_location] get_offline_data_random(fingerprint); %随机采样
offline_locationoffline_location/100;
save(offline_data_random, offline_rss, offline_location);%% 获取在线定位阶段的数据
%前面默认的数据集的密度是0.01m这样的话整个仿真系统的位置最小分辨率为0.01mtrace总是0.01的整数倍
roomLength 30;
roomWidth 30;
t 1000;
[ loc, rss ] get_online_data( fingerprint, 1, roomLength, roomWidth, t ); %得到轨迹与对应的RSS
save(online_data, loc, rss);
%%
clear fingerprint;本仿真实验的完整代码仿真获取WiFi RSSI数据 WiFi指纹定位的项目代码WiFi指纹定位