当前位置: 首页 > news >正文

为减少来自环境使用的无线传感器网络的传输次数而开发的方法(Matlab代码实现)

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

随着无线传感器网络(Wireless Sensor Network,WSN)的广泛应用,业界开始应用环境能量收集技术解决传感器节点的能量补充问题。而这类网络被统称为能量收集型无线传感器网络(Energy Harvesting Wireless Sensor Network,EH-WSN)。在能量收集型无线传感器网络中感知数据的可靠传输是值得研究的问题。

📚2 运行结果

主函数部分代码:

clear all
close all
​
% Declaración de los elementos del texto para el split
comillas=char(34);
barra=char(47);
coma=char(44);
pcoma=char(59);
dpuntos=char(58);
novalinea=newline;
guio=char(45);
fle=char(62);
p1=char(40);
p2=char(41);
​
%%% Format fitxer PM10 i soroll
% Se abre el fichero y se obtienen los datos de cada elemento, son 8
fileID=fopen('dades_soroll_pm10.txt','r');
formatSpec=['%d' barra '%d' barra '%d'  '%d' dpuntos '%d' dpuntos '%d' pcoma '%d' pcoma '%d'];
C=textscan(fileID,formatSpec);
fclose(fileID);
​
% Se guarda cada elemento en su correspondiente variable
any=C{1}; 
mes=C{2};
dia=C{3};
hora=C{4}+14;
a=find(hora>=24);
hora(a)=double(hora(a)-24);
minut=C{5}+27;
a=find(minut>=60);
minut(a)=double(minut(a)-60);
​
%%% Transformació dels valors analògics a dBs
soroll=C{8}; %Ruido en analógico
y1=30;
x1=0;
y2=78.8;
x2=3326;
pendent=(y2-y1)/(x2-x1);
​
%%% Variables para transmitir
pm10=double(C{7}); %Contaminación atmosférica
soroll_dbs=double(pendent.*(soroll-x1)+y1); %Contaminación acústica
​
%%
%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%
%
%%%
%%%
%%%
%%%
%%%
%%%
%%            PRUEBAS            %
%%%
%%%
%%%
%%%
%%%
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
​
% ESCENARIO IV: Multi-armed Bandit
%Obtenemos el periodo de muestreo mas optimo para cada hora del dia
m = length(pm10); %total de muestras
T = [2 3 5 10]; %periodos posibles
rewards = zeros(24, length(T)); %tabla de recompensas para cada hora y periodo
epsilon = 0.2; %epsilon con valor estandar
vr1 = pm10; %copia del vector de datos pm10
vr2 = soroll_dbs; %copia del vector de datos ruido
j = 1; %variable iniciada en 1 para el bucle e-greedy (posicion actual del vector)
ja = j; %variable para almacenar la posicion anterior en el bucle e-greedy y calcular la recompensa
rewards(1:24) = 0; %iniciamos el algoritmo con periodo 2
c_acciones = zeros(24, length(T)); %cantidad de veces que escoge una accion por hora
c_greedy = zeros(2,1); %cantidad de veces que decide explotar/explorar
c_rewards = zeros(24, length(T)); %cantidad de veces que sale cada recompensa
r_total = 0;
​
for i=1:100 %iteraciones de aprendizaje
​%recorremos vector explorando/explotando while j<m
​if rand < 0.05%explorarc_greedy(1) = c_greedy(1) + 1;[~,t] = max(rewards(hora(j)+1,:)); %obtenemos el periodo con mayor recompensaT2 = T(T~=T(t)); %los sacamos para explorar otra opciont = T2(randi(length(T2))); %nuevo periodoc_acciones(hora(j)+1, find(T==t)) = c_acciones(hora(j)+1, find(T==t)) + 1;else%explotarc_greedy(2) = c_greedy(2) + 1;[~,t] = max(rewards(hora(j)+1,:)); %cogemos el periodo con mayor recompensa acumuladat = T(t); %nuevo periodoc_acciones(hora(j)+1, find(T==t)) = c_acciones(hora(j)+1, find(T==t)) + 1;end
​%cogemos muestraja = j; %guardamos posicion anteriorj = j + t; %nueva posicionif j <= m%calculamos recompensa: se comprueban las muestras intermedias entre dos%transmisiones, si no superan el umbral se suma 1 a la recompensa,%si lo supera no se suma nadar_total = 0;for k=ja+1:j-1%%%%%%%%UMBRALES PM10%%%%%%%%               %if abs(vr1(k)-pm10(j)) == 0 %sin umbral%if abs(vr1(k)-pm10(j)) <= 1 %umbral minimo%if umbral_pm(vr1(k),pm10(k)) == 0 %umbral adaptado%%%%%%%%UMBRALES RUIDO%%%%%%%%if abs(vr2(k)-soroll_dbs(j)) == 0 %sin umbral%if abs(vr2(k)-soroll_dbs(j)) <= 3 %umbral minimo%if abs(vr2(k)-soroll_dbs(j)) <= 10 %umbral maximor_total = r_total + 1;endend

🎉3 参考文献

​[1]高昊德. 恶劣环境下EH-WSN中数据可靠传输相关研究[D].内蒙古大学,2022.

部分理论引用网络文献,若有侵权联系博主删除。

相关文章:

为减少来自环境使用的无线传感器网络的传输次数而开发的方法(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 随着无线传感器网络(Wireless Sensor Network,WSN)的广泛应用,业界开始应用环境能量收集技术解决传感器节点的能量补充问题。而…...

springboot+vue滴答拍摄影项目(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的滴答拍摄影项目。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌…...

SQL基础培训13-索引和优化

进度13-索引和优化-SQL基础培训 知识点: 你可以把索引理解为一种特殊的目录。索引分聚集索引(clustered index,也称聚类索引、簇集索引) 和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。 1、聚集索引 以汉语字典举例,汉语字典有部首目录和检字表,还…...

拥抱5G发展机遇,从边缘计算上车

随着5G技术的逐渐普及和应用&#xff0c;边缘计算成为了当前信息技术领域的热门话题。边缘计算是指将计算和数据存储移动到网络的边缘&#xff0c;即源站以外的网络设备。与云计算相比&#xff0c;边缘计算更加贴近数据生成和处理的实时应用场景&#xff0c;具有更高的性能和更…...

“前端”工匠系列(二):合格的工匠,怎么做好价值落地 | 京东云技术团队

一、“技术鄙视链&#xff1f;” 如果你是一个技术人&#xff0c;相信都知道技术圈有个相互的鄙视链&#xff0c;这个链条从技术人自己认知的角度在以业务价值为中心嵌套的一层一层的环&#xff0c;就像洋葱&#xff0c;具体的描述这里不赘述了。 出门左拐随便抓住一个人问一…...

Oracle11g下载与安装

一、Oracle11g下载 官网下载地址&#xff1a;Oracle Database 11g Release 2 for Microsoft Windows (x64) 选择"Accept License Agreement"&#xff0c;点击"win64_11gR2_database_1of2.zip"和"win64_11gR2_database_2of2.zip"&#xff0c;进行…...

考研复试-软件工程

什么是软件工程&#xff1f;主要的方法&#xff1f;软件工程三要素&#xff1f;软件的生命周期&#xff1f;组成部分&#xff1f;软件过程的定义软件需求分析的任务软件开发过程的常见模型结构化设计方法&#xff0c;结构化分析方法软件测试的目的&#xff1f;分类&#xff1f;…...

软件测试选择题

下列选项中&#xff0c;哪一项不是软件开发模型&#xff08;A&#xff09; A、V模型 B、快速模型 C、螺旋模型 D、敏捷模型 下列选项中&#xff0c;哪一项不是影响软件质量的因素&#xff08;C&#xff09; A、需求模糊 B、缺乏规范的文档指导 C、使用新技术 D、开发人…...

有限合伙企业与有限公司的区别

1、设立要求不同&#xff1a; 有限合伙企业&#xff1a;根据《合伙企业法》设立&#xff0c;第61条规定必须由2个&#xff08;包含2个&#xff09;以上的合伙人出资设立&#xff0c;有限合伙企业合伙人中至少有一名是普通合伙人。有限责任公司&#xff1a;根据《公司法》设立&…...

从洛克菲勒思想中洞悉的财富秘密

超友们&#xff0c;早上好&#xff5e; &#x1f646; 今天我为你带来的分享是《从洛克菲勒思想中洞悉的财富秘密》&#xff0c;主要分为两个部分&#xff1a; 一、【洛克菲勒的 10 大底层心法】 二、【洛克菲勒工作的 6 大原则】 如何从贫穷通往富裕&#xff1f; 「始终把这…...

如何训练自己的大型语言模型

如何使用 Databricks、Hugging Face 和 MosaicML 训练大型语言模型 (LLM) 介绍 大型语言模型&#xff0c;如 OpenAI 的 GPT-4 或谷歌的 PaLM&#xff0c;已经席卷了人工智能世界。然而&#xff0c;大多数公司目前没有能力训练这些模型&#xff0c;并且完全依赖少数大型科技公司…...

Java中的SLF4J是什么?如何使用SLF4J进行日志管理

在Java开发中&#xff0c;日志管理是一个非常重要的问题。日志管理可以帮助开发人员更好地了解应用程序的运行情况&#xff0c;以及快速诊断和解决问题。而SLF4J是Java中最常用的日志管理框架之一。在本文中&#xff0c;我们将详细介绍SLF4J的概念和使用方法。 什么是SLF4J&am…...

PHP程序员面对的压力大不大?我来聊聊程序员转行的就业方向

作为一名程序员&#xff0c;不同领域、不同公司和不同项目所面对的压力程度可能会有所不同。但是&#xff0c;一般来说&#xff0c;程序员需要长时间专注于编写代码&#xff0c;需要不断学习和适应新的技术和变化&#xff0c;还需要在项目的压力下保证工作的质量和进度。因此&a…...

牛客网专项练习Pytnon分析库(十)

1.Python Pandas处理缺失值&#xff0c;以下哪个选项是对缺失值NaN进行删除操作&#xff08;C&#xff09;。 A.isnull B.notnull C.dropna D.fillna 解析&#xff1a; A选项&#xff0c;Isnull()返回表明哪些值是缺失值的布尔值&#xff1b; B选项&#xff0c;notnull()返…...

leecode654——最大二叉树

leecode最大二叉树 &#x1f33b;题目要求&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的…...

【笔试强训选择题】Day12.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录…...

边缘计算与开放源代码的完美结合

随着人工智能、大数据和物联网等技术的快速发展&#xff0c;边缘计算已经成为一种普遍使用的计算方式&#xff0c;尤其是在物联网领域。与此同时&#xff0c;越来越多的开放源代码项目也在不断涌现&#xff0c;这些项目为边缘计算提供了更多的选择和灵活性。那么&#xff0c;边…...

边缘计算网关在储能系统中的应用——提高储能系统的安全性和稳定性

随着全球能源消耗和环境保护意识的不断提高&#xff0c;储能技术逐渐成为了各国电力系统中的重要一环。而作为储能技术中的关键设备之一&#xff0c;边缘计算网关在储能系统中的应用也越来越受到关注。本文将从边缘计算网关的定义、特点以及其在储能行业中的应用三个方面来介绍…...

【FMC136】AD9467之4通道 250MSPS 采样率16位AD 采集子卡模块得设计原理图中文资料

板卡概述 FMC136 是一款4 通道250MHz 采样率16 位AD 采集FMC子卡&#xff0c;符合VITA57 规范&#xff0c;可以作为一个理想的IO 模块耦合至FPGA前端&#xff0c;4 通道AD 通过高带宽的FMC 连接器&#xff08;HPC&#xff09;连接至FPGA 从 而大大降低了系统信号延迟。该板卡支…...

抖音SEO矩阵系统源码开发(一)

抖音seo矩阵营销系统/抖音SEO矩阵号管理系统/抖音霸屏源码开发搭建&#xff0c;抖音官方团队大力推广抖音SEO生态&#xff0c;我们应如何布局开发抖音SEO矩阵系统&#xff0c;来达到账号排名优化的效果&#xff0c;很显然&#xff0c;账号关键词起到了很关键的作用。首先&#…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...