【WSN定位】基于RSSI的加权质心定位算法【Matlab代码#14】

news2024/9/22 17:37:50

文章目录

    • 1. 原始质心定位算法
    • 2. 基于RSSI的加权质心定位算法基本思想
    • 3. 基于RSSI的加权质心定位算法流程图
    • 4. 部分代码展示
    • 5. 运行结果展示
    • 6. 资源获取

1. 原始质心定位算法

可参考质心定位算法

2. 基于RSSI的加权质心定位算法基本思想

传统的质心算法在求解过程中只是将未知节点通信范围内所有锚节点的坐标对应相加取平均,并没有体现出不同位置的锚节点对未知节点的影响不同,也并没有充分利用未知节点收到的来自其邻居节点发送来的数据包的信息。因此,可以在无线信号 RSSI 及其模型的基础上综合考虑锚节点与未知节点的远近程度对未知节点的影响,给每个锚节点赋予不同的权值 w w w,以此来提高未知节点的坐标精确度,如公式(1)所示:
( x , y ) = ( ∑ i = 1 n w i x i ∑ i = 1 n w i , ∑ i = 1 n w i y i ∑ i = 1 n w i ) (1) (x,y)=(\frac{\sum_{i=1}^{n}w_{i}x_{i}}{\sum_{i=1}^{n}w_{i}}, \frac{\sum_{i=1}^{n}w_{i}y_{i}}{\sum_{i=1}^{n}w_{i}})\tag{1} (x,y)=(i=1nwii=1nwixi,i=1nwii=1nwiyi)(1)
其中, x x x是待定位节点的横坐标, y y y是待定位节点的纵坐标, w i w_{i} wi是对应的权值。权值该如何选取呢?根据理论知识和实验可知,RSSI 的值随着距离的增大而减少,即锚节点距离未知节点近的 RSSI 值高,反之 RSSI 值低,但是若直接用 RSSI 值作为权值会不容易使人理解。因此,可以利用 RSSI-d 距离转换公式将 RSSI 值转换成对应的距离 d i d_{i} di,将距离未知节点近的锚节点其距离值所占的权重大,反之,占的权重小,所以令 w i = 1 d i w_{i}=\frac{1}{d_{i}} wi=di1

基本思想是:将接收到的信号强度 RSSI 转换为传输距离 d d d,距离 d d d越大对未知节点影响越小,距离 d d d越小对未知节点的影响越大,与距离成反比,因此权值取 1 d i \frac{1}{d_{i}} di1,再将权值加到传统的质心算法中形成了基于 RSSI 测距的加权质心定位算法。基于 RSSI 测距的加权质心位算法的公式如下:
( x , y ) = ( ∑ i = 1 n 1 d i x i ∑ i = 1 n 1 d i , ∑ i = 1 n 1 d i y i ∑ i = 1 n 1 d i ) (2) (x,y)=(\frac{\sum_{i=1}^{n}\frac{1}{d_{i}}x_{i}}{\sum_{i=1}^{n}\frac{1}{d_{i}} }, \frac{\sum_{i=1}^{n}\frac{1}{d_{i}}y_{i}}{\sum_{i=1}^{n}\frac{1}{d_{i}}})\tag{2} (x,y)=(i=1ndi1i=1ndi1xi,i=1ndi1i=1ndi1yi)(2)

3. 基于RSSI的加权质心定位算法流程图

在这里插入图片描述

图1 基于RSSI测距的加权质心定位算法

4. 部分代码展示

% 以dm为半径,寻找每个待定位节点周围的锚节点
for i=1:1:m
d=norm((xy(:,i)-SS),2);
    if d<=dm
        % xy是锚节点坐标矩阵,是一个2行m列的矩阵,所有横坐标为第一行,纵坐标为第二行
        % xx(j,i)表示第j个待定位节点的第i个锚节点的横坐标,yy(j,i)表示第j个待定位节点的第i个锚节点的纵坐标
        for jj = 1:threshold
            d_rssi(jj)=rssi_distance(d);
        end
        q(j,i)=1/d;
        xx(j,i)=xy(1,i);
        yy(j,i)=xy(2,i);
        k=k+1;
    else
        q(j,i)=0;  
        xx(j,i)=0;
        yy(j,i)=0;
    end
end

5. 运行结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 资源获取

A资源获取说明

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

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

相关文章

Windows逆向安全(一)之基础知识(十六)

指针三 通过先前指针的学习&#xff0c;了解了指针和地址以及数据的关系&#xff0c;现在结合先前的知识继续学习巩固 指针遍历数组 有了先前的基础&#xff0c;再来看看如何用指针遍历数组 代码 #include "stdafx.h" void function(){short arr[5]{1,2,3,4,5};…

【ARM Coresight 4 - Rom Table 介紹】

文章目录 1.1 ROM Table1.1.1 Entry 寄存器 1.2 ROM Table 例子 1.1 ROM Table 在一个SoC中&#xff0c;有多个Coresight 组件&#xff0c;但是软件怎么去识别这些 Coresight 组件&#xff0c;去获取这些Coresight 组件的信息了&#xff1f;这个时候&#xff0c;就需要靠 Core…

COPU助力北大研究生开源公选课丨2023开源PostgreSQL内核开发通识课顺

COPU & Peking Univerisity 导读&#xff1a;2020年1月COPU&#xff08;中国开源软件推进联盟&#xff09;成员开会讨论面向高校的开源示范课程&#xff0c;由联盟副秘书长北京大学荆琦老师牵头筹备&#xff0c;并首先在北大软微学院试点。本次是中国PostgreSQL分会联合…

尚硅谷_宋红康_第14章_数据结构与集合源码

第14章_数据结构与集合源码 本章专题与脉络 1. 数据结构剖析 我们举一个形象的例子来理解数据结构的作用&#xff1a; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bgDcr8wF-1682075329317)(images/image-20220412011531879.png)] **战场&#x…

本地白嫖AI绘画 ,Stable Diffusion 初探!

本文介绍我在本地搭建 Stable Diffusion Web UI 的体验过程&#xff0c;予以记录分享。 Stable Diffusion 是 2022 年 8 发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像&#xff0c;官方项目其实并不适合新手直接使用&#xff0c;好在有使用 Stable …

把握数字中国建设重大契机,实在智能携手山东商业职业技术学院共建“现代金融数字化实训中心”

今年2月&#xff0c;中共中央、国务院印发《数字中国建设整体布局规划》&#xff08;以下简称《规划》&#xff09;&#xff0c;明确了数字中国建设的整体框架&#xff0c;强调全面提升数字中国建设的整体性、系统性、协同性&#xff0c;促进数字经济和实体经济深度融合。其中&…

本地部署Stable Diffusion Webui AI 记录

Stable Diffusion Webui AI本地部署基本分为两种方式&#xff1a; 1、使用大佬的打包好的安装包一键部署 b站秋葉aaaki 2、手动部署&#xff08;个人实践记录&#xff09;参考文章 本地部署基本要求 1、 需要拥有NVIDIA显卡&#xff0c;GTX1060 &#xff08;或者同等算力的…

CopyOnWriteArrayList简介

1. 简介 CopyOnWriteArrayList 是 ArrayList 的线程安全版本 就是在进行写操作的时候会 copy 原数组&#xff0c;然后写完将指针指向新的数组&#xff0c;是一种读写分离的思想&#xff0c;可以并发的读&#xff0c;不能并发的写 优点&#xff1a; 保证线程安全读取时不加锁…

基于PyQt5的图形化界面开发——自制MQTT客户端软件

基于 PyQt5 的图形化界面开发——自制MQTT客户端 0. 前言1. 第三方库的安装及注意事项2. Editor.py2.1 配置界面效果演示&#xff1a; 3. Publish.py3.1 消息发布界面演示 4. Subcribe.py4.1 订阅消息效果演示&#xff1a; 界面切换——main.py5. 写在最后 0. 前言 使用 PyQt5…

葛兰一季度规模再度跌破900亿

一季度末管理规模再度跌破900亿元&#xff0c;中欧基金葛兰交出了公募主动权益基金管理规模的头把交椅。 4月22日零点刚过&#xff0c;葛兰在管基金悉数披露2023年一季报&#xff0c;从管理规模来看&#xff0c;一季度葛兰在管5只公募基金合计规模降至844.40亿元&#xff0c;较…

keep-alive 和 router-view 的使用方法(Vue3)

系列文章目录 提示&#xff1a;主要是介绍keep-alive 和 router-view在Vue3中的使用方法&#xff0c;以及适用场景&#xff01;&#xff01;&#xff01; 文章目录 系列文章目录前言&#xff1a;一、router-view&#xff1a;1. 常规使用方法2. 非常规使用方法&#xff08;插槽&…

UE5语音识别和语音合成-阿里云智能语音-短视频-翻译-文章-AI角色等

UE5智能语音 哈喽&#xff0c;大家好&#xff0c;我叫人宅&#xff0c;很高兴和大家一起分享本套课程&#xff0c;阿里云智能语音UE5版本开发。阿里云智能语音一共分为 语音合成&#xff0c;语音识别&#xff0c;什么是语音合成&#xff0c;它可以将您的文字转化成您设定的任何…

大数据数仓维度建模

目录 维度建模分为三种&#xff1a; 1、星型模型&#xff1a; 2、雪花模型&#xff1a; 3、星座模型&#xff1a; 模型的选择&#xff1a; 维度表和事实表&#xff1a; 维度表&#xff1a; 维度表特性 &#xff1a; 事实表&#xff1a; 事实表特性&#xff1a; 事务型…

程序员能干多久?程序员能干到多大年龄?

程序员可以工作多少年?大多数程序员认为程序员是吃青春饭的工作。编程只能干到30岁&#xff0c;最长可达35岁。我经常听到这样的话&#xff0c;都让人倍感压力。今天&#xff0c;我们来谈谈这个老话题...... 程序员能干多久&#xff1f; 根据国外的经验来说&#xff0c;干到…

ChatGPT 基础使用方法

文章目录 1. ChatGPT 是下一代搜索引擎2. ChatGPT 是学习助手3. ChatGPT API 简介4. ChatGPT API 身份5. 开发痛点6. 机会与前景7. Images8. Audio 1. ChatGPT 是下一代搜索引擎 根据 3 月份对 ChatGPT 的使用&#xff0c;我对它的理解是下一代的搜索引擎&#xff0c;即能够根…

【社区图书馆】读《大话数据结构溢彩加强版》

目录 书中简介&#xff1a; 选读原因 本书内容有哪些&#xff1a; 学会了什么&#xff1a; 书中简介&#xff1a; 《大话数据结构【溢彩加强版】》以一个计算机教师的教学过程为场景&#xff0c;讲解数据结构和相关算法的知识。全书以趣味方式来叙述&#xff0c;大量引用各…

无公网IP,外网远程连接MySQL数据库

哈喽~大家好&#xff0c;这篇来看看无公网IP&#xff0c;外网远程连接MySQL数据库。 文章目录 前言1. 检查mysql安装状态2. 安装配置cpolar内网穿透3. 创建tcp隧道&#xff0c;映射3306端口4. 公网远程连接4.1 图形化界面4.2 使用命令行远程连接 5. 配置固定tcp端口地址5.1 保留…

「计算机控制系统」6. 直接设计法

特殊类型系统的最小拍无差设计 一般系统的最小拍无差设计 最小拍控制器的工程化改进 Dahlin算法 文章目录 特殊类型系统的最小拍无差设计理论分析典型输入函数的最小拍无差系统 一般系统的最小拍无差设计有波纹最小拍无差设计无波纹最小拍无差设计 最小拍控制器的工程化改进针对…

操作HDFS文件系统常用命令(启停、创建、查看、上传、下载、追加、删除.etc)

文章目录 1 一键启停2 单进程启停3 创建文件夹4 查看指定目录下内容5 上传文件到HDFS指定目录下 linux->HDFS6 下载 HDFS ->Linux7 追加数据 linux->HDFS8 查看HDFS文件内容9 HDFS 数据删除10 网页端图形化界面11总结 跟linux命令大差不差 1 一键启停 HadoopHDFS组件…

共享锁中:Semaphore 、CyclicBarrier 、CountDownLatch的区别是什么?

目录 下面是一个使用Semaphore实现共享锁的例子&#xff1a; 下面是一个使用CountDownLatch实现等待一组操作完成的例子&#xff1a; 下面是一个使用CyclicBarrier实现等待一组线程达到某个状态后再同时执行的例子&#xff1a; 结论1&#xff1a; 结论2&#xff1a; 下面是…