news 2026/5/20 1:08:15

毕设 基于wifi的室内定位算法设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
毕设 基于wifi的室内定位算法设计与实现

文章目录

  • 0 前言
  • 简介
    • wifi定位背景和意义
    • 基本原理
      • 什么是wifi指纹
      • wifi指纹由什么组成
    • wifi指纹定位实现方法
          • 不基于RSSI
          • 基于RSSI
          • 定位算法
          • 基于无线信号的三边(三角定位)
        • 地图绘制
          • 数据采集点位置
          • AP点位置
        • 测试结果
  • 算法实现效果
  • 最后

0 前言

🔥今天学长向大家分享一个毕业设计项目

🚩毕业设计 wifi室内定位系统

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

项目运行效果:

毕业设计 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点位置

测试结果

算法实现效果


详细设计论文

最后

项目运行效果:

毕业设计 wifi室内定位算法实现

🧿 项目分享:见文末!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 23:08:22

React日历组件完全指南:从入门到精通掌握现代化日期选择器

React日历组件是现代Web应用中不可或缺的用户界面元素,它能够显著提升用户体验并简化日期选择过程。在GitHub_Trending/ui/ui项目中,精心设计的日历组件展示了如何快速配置和使用这个革命性的日期选择工具。无论你是前端新手还是资深开发者,这…

作者头像 李华
网站建设 2026/5/14 14:46:42

5步搞定Kimi K2大模型本地部署:个人电脑运行千亿参数AI

想要在个人电脑上体验千亿参数大模型的强大能力吗?Kimi K2 Instruct模型通过Unsloth量化技术实现了惊人的压缩效果,让普通开发者也能轻松运行前沿AI技术。Kimi K2本地部署不仅保护数据隐私,更为定制化应用开发提供了无限可能。本文将为您详细…

作者头像 李华
网站建设 2026/5/13 22:25:41

C++实现一个STL 自定义内存分配器:彻底搞懂C++自定义分配器的每一行代码

在C++的世界里,内存管理一直是性能优化的核心战场。标准库的默认分配器std::allocator虽然通用性强,但在特定场景下,频繁的系统调用、内存碎片、以及缺乏精细控制的弊端会成为性能瓶颈。在极端场景下,默认分配器的开销(通常每次分配在几百纳秒到几微秒)会被无限放大,最终…

作者头像 李华
网站建设 2026/5/16 10:00:46

Qwen2.5-VL空间感知技术:重新定义三维环境智能理解

Qwen2.5-VL空间感知技术:重新定义三维环境智能理解 【免费下载链接】Qwen2.5-VL Qwen2.5-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud. 项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen2.5-VL 在当今人…

作者头像 李华
网站建设 2026/5/15 20:19:26

5分钟快速上手小兔鲜儿微信小程序:完整开发部署指南

想要快速搭建一个功能完整的微信小程序?小兔鲜儿项目就是你的绝佳选择!这个基于uni-app Vue3 TypeScript的电商小程序,让你在5分钟内就能跑起来一个完整的购物应用。🚀 【免费下载链接】uniapp-shop-vue3-ts 小兔鲜儿-vue3ts-un…

作者头像 李华
网站建设 2026/5/18 15:55:00

ThreeJs场景

场景结构 场景在 3D 引擎是一个图中节点的层次结构,其中每个节点代表了一个局部空间(local space)。示例 假设我们需要做一个太阳系的例子。对于太阳来说,它只需要保持自身不动,那么他的child有水金地火木土星……这些…

作者头像 李华