wifi指纹室内定位系统 计算机竞赛

简介

今天来介绍一下室内定位相关的原理以及实现方法;

WIFI全称WirelessFidelity,在中文里又称作“行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE
802.11标准的无线局域网技术。基于两套系统的密切相关,也常有人把Wi-Fi当做IEEE 802.11标准的同义术语。“Wi-
Fi”常被写成“WiFi”或“Wifi”,但是它们并没有被Wi-
Fi联盟认可。它的最大优点就是传输速度较高,可以达到11Mbps,另外它的有效距离也很长,同时也与已有的各种802.11 DSSS设备兼容。

wifi定位的本质实际上是基站式定位, 是依靠wifi AP以自身为中心, 向外辐射逐渐衰弱的指纹来进行定位的.

wifi定位背景和意义

GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法。然而WiFi并不是专门为定位而设计的,传统的基于时间和角度的定位方法并不适用于WiFi。近十年来,在室内WiFi场景下的定位中,位置指纹法被广泛研究和采用。本文对WiFi位置指纹法进行综述,提出了这个领域面临的挑战,介绍最新的研究,以及提供一些实际的指导。

基本原理
什么是wifi指纹

“位置指纹”把实际环境中的位置和某种“指纹”联系起来,一个位置对应一个独特的指纹。这个指纹可以是单维或多维的,比如待定位设备在接收或者发送信息,那么指纹可以是这个信息或信号的一个特征或多个特征(最常见的是信号强度)。如果待定位设备是在发送信号,由一些固定的接收设备感知待定位设备的信号或信息然后给它定位,这种方式常常叫做远程定位或者网络定位。如果是待定位设备接收一些固定的发送设备的信号或信息,然后根据这些检测到的特征来估计自身的位置,这种方式可称为自身定位。待定位移动设备也许会把它检测到的特征传达给网络中的服务器节点,服务器可以利用它所能获得的所有信息来估计移动设备的位置(翻译存疑…),这种方式可称为混合定位。在所有的这些方式中,都需要把感知到的信号特征拿去匹配一个数据库中的信号特征,这个过程可以看作一个模式识别的问题。

wifi指纹由什么组成

位置指纹可以是多种类型的,任何“位置独特”的(对区分位置有帮助的)特征都能被用来做为一个位置指纹。比如某个位置上通信信号的多径结构、某个位置上是否能检测到接入点或基站、某个位置上检测到的来自基站信号的RSS(接收信号强度)、某个位置上通信时信号的往返时间或延迟,这些都能作为一个位置指纹,或者也可以将其组合起来作为位置指纹。

wifi指纹定位实现方法

wifi定位方法基本上可以分为两大类:

不基于RSSI
  • TOA(time ofarrival)
  • TDOA(time difference of arrival)
  • AOA(angle of arrival)
基于RSSI

在智能手机上,可以通过系统SDK获取到周围各个AP(Access
Point)发送的信号强度RSSI及AP地址,利用RSSI来定位目前看来是最可行的方法,因此下面着重介绍,基于RSSI定位主要有两个算法:三角定位算法,指纹算法。

定位算法
  • 随机方法
    将测试点(Test Point, TP)的预测位置设为任一参考点(Reference Point,RP)的位置。

  • KNN方法
    KNN方法的主要思路是:找出与TP的WiFi指纹相似度最高的K个RP,然后平均这K个RP对应的位置,最终得到TP的位置。

  • Prob方法
    Prob方法的主要思路是:通过贝叶斯公式,计算TP出现在每个RP上的后验概率,取k个概率最大的RP,然后平均这K个RP对应的位置,最终得到TP的位置。

  • Stg方法
    Stg方法是KNN方法的一种改进方法,它通过TP的k个信号最强的信号接入点来筛选RP,然后再应用KNN方法。

  • Gk方法
    GK方法的主要思路是通过高斯核密度估计器(Gaussian Kernel Density
    Estimator,GKDE)计算每个指纹位置的相对过饱和度的可能性,并通过平均与最高似然值对应的位置来确定TP的位置。

基于无线信号的三边(三角定位)

这个方法来自于传统的定位方法,类似GPS,假如我们能够获得我们待定位点相对于其它基站的距离或者角度,通过交会列多元方程组求解的方法可以求出我们所在的位置,当然了,实际情况中往往不是求解刚好够定位的方程组,而是用多余的观测值然后利用最小二乘估计方法来估计位置。以下图为例,对于三个基站,我们如果能够获得信号发射和接受的时间差,那么就可以通过时间差和光速传播来求取距离从而获得定位。

但是,对于普通的WiFi,蓝牙信号,要想求出从信号发射到信号接收之间的时间差,基本是不可能的。因为你要保持两边的时间同步,才能通过发射时间和接收时间来求取时间差,考虑到c光速的巨大,时间差一点点距离就能差非常远。所以基本不可能通过时间差的方法来进行定位。

在这里插入图片描述

那么室内定位里面的三边定位是怎么实现的呢?

我们知道,只要求取当前目标和各个基站的距离,就能求解目标位置。而这个距离既然不能通过时间和光速之积来获得,我们可以通过另一个方法来获得,那就是信号衰减模型,如下图所示,我们知道在离线状态下,无线信号强度在空间中传播随着距离衰减!
而这个无线信号强度对于手机上的接收器来说是可测的!那么根据测试到的信号强度,是不是可以根据下图的衰减模型(公式)来反推出距离呢,那么这样不就又可以用三边定位了。

地图绘制
数据采集点位置

在这里插入图片描述

AP点位置

在这里插入图片描述

测试结果

在这里插入图片描述

最后

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

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

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

相关文章

接口测试很难?3分钟带你入门接口自动化测试

​1、什么是接口? 接口是连接前台和后台的桥梁,前台通过接口调用后端已完成的功能,而无需关注内部的实现细节。借助于接口,可以实现前后台分离,各自完成开发工作后,进行联调,提高工作效率 2、…

Java中的正则表达式

1、体验正则表达式 import java.util.regex.Matcher; import java.util.regex.Pattern;/*** Description: 体验正则表达式:提取英文单词* Author: yangyongbing* CreateTime: 2023/10/16 08:38* Version: 1.0*/ public class Regexp {public static void main(String[] args)…

PostgreSQL 导出数据为CSV

在SQL脚本中导出数据,可以使用COPY命令。以下是一个示例: COPY (SELECT * FROM your_table) TO path/to/your_file.csv WITH CSV HEADER;请确保将your_table替换为你要导出数据的实际表名,并将path/to/your_file.csv替换为你要保存数据的实际…

NodeMCU ESP8266 基于Arduino IDE的串口图形化调试教程(超详细)

NodeMCU ESP8266 基于Arduino IDE的串口图形化调试教程 文章目录 NodeMCU ESP8266 基于Arduino IDE的串口图形化调试教程前言Serial Plotter测试前期准备打开工具方法 1方法 2 测试代码 总结 前言 在嵌入式的开发过程中,我们经常会采集一些传感器的数据&#xff0c…

【接口测试】接口测试内容

主要内容如下: 一、接口测试的相关基础知识 什么是接口测试? 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间、以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以…

数据结构 - 5(二叉树7000字详解)

一:二叉树的基本概念 1.1树形结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 注意&am…

探秘Socks5代理在跨界电商、爬虫和游戏领域的应用

在当今数字化浪潮中,技术对于各行各业都产生着深远的影响。其中,Socks5代理技术作为一项关键的网络工具,不仅在跨界电商领域提供了便利,还在爬虫数据采集以及游戏体验优化中扮演着重要角色。本文将深入探讨Socks5代理技术在这些领…

js继承的几种方式(原型链继承、构造函数继承、组合式继承、寄生组合式继承、ES6的Class类继承)

1.原型链继承 实现原理:子类的原型指向父类实例。子类在自身实例上找不到属性和方法时去它父类实例(父类实例和实例的原型对象)上查找,从而实现对父类属性和方法的继承 缺点: 子类创建时不能传参(即没有…

探究Socks5代理和代理IP在技术领域的多重应用

随着数字化时代的不断发展,网络工程师在跨界电商、爬虫数据采集、出海业务拓展以及游戏优化等领域扮演着关键角色。而Socks5代理和代理IP作为他们的得力工具,在这些领域中发挥着至关重要的作用。本文将深入探讨这两种技术在技术领域中的应用,…

scrollIntoView使用与属性详解

scrollIntoView 使用与属性详解 效果图如下图所示 如果要想让元素滚动到指定位置 window.onload function () {containerItems[6].scrollIntoView({ behavior: "smooth" }); };js 代码 const containerItems document.querySelectorAll(".container div&…

2 files found with path ‘lib/armeabi-v7a/liblog.so‘ from inputs:

下图两个子模块都用CMakeLists.txt引用了android的log库,编译后,在它们的build目录下都有liblog.so的文件。 四个CPU架构的文件夹下都有。 上层模块app不能决定使用哪一个,因此似乎做了合并,路径就是报错里的哪个路径&#xff0c…

【算法训练-排序算法 一】【手撕排序】快速排序、堆排序、归并排序

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【手撕排序系列】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

【6k字】详解Python装饰器和生成器

文章目录 1 Python装饰器1.1 什么是装饰器?1.1.1 参数化装饰器 1.2 装饰器的工作原理1.2.1 函数签名保持 1.3 装饰器的应用实例1.3.1 日志记录1.3.2 装饰器链1.3.3 自动注册装饰器 1.4 Summary 2 Python生成器2.1 生成器的定义和基本操作2.2 生成器的惰性求值和内存…

【工具】html请求 Content-Encoding=br 返回值乱码的问题 解码返回值

【工具】Content-Encodingbr 解码返回值 添加依赖 <dependency><groupId>org.brotli</groupId><artifactId>dec</artifactId><version>0.1.2</version></dependency> 代码 public static String 解码br(InputStream is) {try…

MySQL日志管理和权限管理(重点)

目录 一、日志管理1.错误日志2.二进制日志3.慢查询日志 二、权限管理(重点)1.用户登录管理2.创建用户及授权3.刷新权限4.权限简介5.查看权限7.修改密码8、删除用户9、查看密码复杂度 一、日志管理 日志类型 1、错误日志&#xff1a;启动&#xff0c;停止&#xff0c;关闭失败报…

UPS监控技术,你一定要试试,太绝了!

UPS&#xff08;不间断电源&#xff09;监控系统是一种关键的技术&#xff0c;用于监视、管理和维护不间断电源设备&#xff0c;以确保电力供应的稳定性和可用性。这对于各种组织和企业来说至关重要&#xff0c;因为电力中断可能导致生产中断、数据丢失和设备损坏&#xff0c;对…

全流量安全分析发现内部系统外联异常

内部系统外连监控的重要性在于保护企业的信息安全和预防数据泄露&#xff0c;以下是几个重要的理由&#xff1a; 1、检测异常活动&#xff1a;通过监控内部系统的外连连接&#xff0c;可以及时发现是否有未经授权或异常的链接尝试。这可能表示存在恶意软件、黑客攻击或内部员工…

MySQL JSON_TABLE() 函数

JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。 应用&#xff1a;数据库字段以JSON 存储后&#xff0c;实际应用需要对其中一个字段进行查询 语法 JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name参数 json必需的。一个 …

风向编码与度数对照表

十六方位风向和静风的方位、符号、风向编码、中心角度及各风向角度范围对照表 方位 符号 风向编码中心角度 角度范围 北N9990010.0348.76~11.25北东北NNE99900222.511.26~33.75东北NE99900345.033.76~56.25东东北ENE99900467.556.26~78.75东E99900590.078.76~101.25东东南ESE…

登录ip地址异常怎么办

在互联网时代&#xff0c;登录IP地址异常已经成为一个普遍存在的问题。当用户尝试登录某个网站或服务时&#xff0c;如果其IP地址被认定为异常&#xff0c;则可能会被拒绝访问或面临其他安全风险。虎观代理小二二将介绍登录IP地址异常的处理方法&#xff0c;帮助大家解决这一问…