【MATLAB】基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据(附代码)

news2025/2/27 14:32:40

基于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);  % 仿真射线网格大小
end

clc
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_location=offline_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_location=offline_location/100;
save('offline_data_random', 'offline_rss', 'offline_location');

%% 获取在线定位阶段的数据
%前面默认的数据集的密度是0.01m,这样的话整个仿真系统的位置最小分辨率为0.01m,trace总是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指纹定位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决 VSCode 编辑器点击【在集成终端中打开】出现新的弹框

1、问题描述 在 VSCode 的项目下,鼠标右键,点击【在集成终端中打开】,出现新的一个弹框。新版的 VSCode 会有这个问题,一般来说我们都希望终端是在 VSCode 的控制台中打开的,那么如何关闭这个弹框呢? 2、解…

Win10安装sqlplus遇到报错的解决办法

1.下载安装sqlplus.exe的错误解决过程 最近有用到sqlplus连接Oracle数据库执行自动化脚本,Orcle服务器版本是11.2.0.1。在Navicat工具上通过如下语句查询到的版本信息截图如图1所示: SELECT * FROM v$version; 图1 Oracle服务器版本信息 其中“Oracle Da…

台灯哪个牌子好,五大护眼灯品牌排行分享

​当前,我国青少年的近视率已超过半数,位居全球之首,且近视发生年龄呈现下降趋势。长时间用眼和过度使用电子产品是导致近视高发的主要因素。面对这一挑战,如何改善现状成为了一个亟待解决的问题。对于儿童而言,降低近…

【C++】模版

目录 一、泛型编程二、函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三、类模板3.1 类模板的定义格式3.2 类模板的实例化 四、非类型模板参数五、模板的特化5.1 概念5.2 函数模板特化5.3 类模板特化5.3.1 全特化5.3…

【火猫TV】欧冠:拉菲尼亚梅开二度,却在出售名单中

欧冠淘汰赛首回合,巴萨在客场3比2击败大巴黎,取得一个球的领先优势,双方将会在下周进行生死战。本场比赛巴萨虽然率先破门,却被大巴黎死死压制,如果不是大巴黎锋线效率一般,球队很可能会在客场输球。本场比…

代码随想录-算法训练营day04【链表02:两两交换链表中的节点、删除链表的倒数第N个节点、链表相交、环形链表II】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第二章 链表part02● day 1 任务以及具体安排:https://docs.qq.com/doc/DUG9UR2ZUc3BjRUdY ● day 2 任务以及具体安排:https://docs.qq.com/doc/DUGRwWXNOVEpyaVpG ● day 3 任务以及具体安排…

华为2024年校招实习硬件-结构工程师机试题(四套)

华为2024年校招&实习硬件-结构工程师机试题(四套) (共四套)获取(WX: didadidadidida313,加我备注:CSDN 华为硬件结构题目,谢绝白嫖哈) 结构设计工程师,结…

1. VirtualBox安装CentOS

安装 VirtualBox 地址:https://www.virtualbox.org/wiki/Downloads 版本: 6.1和7.0+版本都可以 安装: windows上安装需要admin权限,右键菜单选中 “Run as administrator” 安装 CentOS 6.10 地址:https://vault.centos.org/6.10/isos/x86_64/ 版本: 如果不需要GUI,选择…

竹云董事长在第十二届中国电子信息博览会开幕峰会暨全国“专精特新”电子信息行业论坛作主题演讲

2024年4月9日,第十二届中国电子信息博览会开幕峰会(CITE2024)暨全国“专精特新”电子信息行业论坛在深圳会展中心盛大举行。 本届电博会开幕峰会以“追求卓越,数创未来”为主题,特邀百位专家学者、行业精英、知名投资人…

金三银四面试题(十九):MySQL中的锁

在MySQL中,锁是非常重要的,特别是在多用户并发访问数据库的环境中,因此也是面试中常问的话题。 请说说数据库的锁? 关于MySQL 的锁机制,可能会问很多问题,不过这也得看面试官在这方面的知识储备。 MySQL …

新版HI3559AV100开发注意事项(三)

新版HI3559AV100开发注意事项(三) 十九、用的sdk是Hi3559V200_MobileCam_SDK_V1.0.1.5 播放AAC音频文件,adec->ao;adec的初始化里面包括了aaclc解码器的注册,可是在HI_MPI_ADEC_RegisterDecoder(&s32Handle, &stAac);…

43-技术演进(上):虚拟化技术演进之路

在Kubernetes集群中部署IAM应用,会涉及到一些重要的云原生技术,例如Docker、Kubernetes、微服务等。另外,云原生架构中还包含了很多其他的技术 因为这一讲涉及的技术栈很多,所以我会把重点放在演进过程上,不会详细介…

面试算法-171-翻转二叉树

题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {if (root n…

企业常用命令(touch/别名/重定向/Linux字符)7368字详谈

企业高薪思维: 企业(工作/学习中)操作前备份,操作后检查 最小化原则 1.安装软件最小化 2.参数选项最小化 3.登录用户权限最小化(不用root登录) 要想成功/学习上/工作上 永远比别人多做一点点(别…

冯喜运:4.11黄金今日还会下跌吗?黄金原油最新行情分析

【 黄金行情趋势分析】:周三(4月10日),强于预期的CPI通胀数据削弱对美国提前降息的预期,美元和国债收益率走强,现货黄金大跌近20美元。周四(4月11日)亚市早盘,金价交投在2335美元/盎司附近。周三,在美国通胀…

使用 EFCore 和 PostgreSQL 实现向量存储及检索

随着 ChatGPT 的兴起及其背后的 AIGC 产业不断升温,向量数据库已成为备受业界瞩目的领域。FAISS、Milvus、Pinecone、Chroma、Qdrant 等产品层出不穷。市场调研公司 MarketsandMarkets 的数据显示,全球向量数据库市场规模预计将从 2020 年的 3.2 亿美元增长至 2025 年的 10.5…

微服务项目sc2024父工程

1.基础版本要求 jdk 17maven 3.9mysql 8.0spring boot 3.2.0spring cloud 2023.0.0spring cloud alibaba 2022.0.0.0-RC2 2.创建父工程 2.1.字符编码 2.2.java编译版本 2.3.注解生效激活 2.4.File Type过滤 2.5.父工程中只保留pom文件,其余的删了 3.父工程pom文件 <?xm…

一辆汽车的节拍时间是怎样的?

节拍时间&#xff0c;又称 takt time&#xff0c;是德语中“节奏”的意思。在汽车制造业中&#xff0c;它指的是按照客户需求和生产计划&#xff0c;生产一辆汽车所需的时间。这个时间是固定的&#xff0c;它决定了生产线上每个工序的操作速度和节奏&#xff0c;是生产线上所有…

Vue中SourceMap的使用方法详解

目录 一、概述 二、使用方法 三、生成SourceMap 四、优化 五、结语 一、概述 Vue.js是一套构建用户界面的渐进式框架&#xff0c;通过HTML模板或者直接写render函数可以快速开发单页应用。在开发过程中&#xff0c;很多时候我们需要调试代码&#xff0c;追踪错误。Vue官方…

一键排除烦恼!苹果手机怎么恢复出厂设置

当你的苹果手机遇到了一系列问题&#xff0c;或者你打算将手机出售或转让给他人时&#xff0c;恢复出厂设置是一种常见的解决方案。这一过程可以将手机恢复到刚购买时的状态&#xff0c;清除所有个人数据和设置&#xff0c;以确保隐私安全和设备的顺畅运行。 苹果手机的恢复出…