无线传感器网络数据压缩与融合及安全机制的matlab仿真

news/2024/4/29 23:29:11/文章来源:https://blog.csdn.net/ccsss22/article/details/126693594

目录

一、理论基础

二、案例背景

三、MATLAB程序

四、仿真结论分析


一、理论基础

       整个网络有一个汇聚节点(Sink节点),能量足够大,相当于基站,其功率足以发送信息至全网节点,Sink节点和簇头信息交换,整个网络共有n个节点。

(1)  在初始状态下,网内各节点向Sink节点发送能量状态信息。

(2)  汇聚节点收到各节点的能量状态信息后,计算平均能量

、最大能量 ,据此标识各节点为强节点或弱节点。若节点i的能量E(i)≥Eav,则标识为强节点,其标识S(i)=1;若E(i)<Eav,则标识为若节点,其标识S(i)=0。

(4)  具有最大权值的未加入簇的强节点声明为簇头,利用欧氏距离分簇,重复这一过程,直到所有的节点都被分配入簇。仅当已无强节点剩余时,弱节点方能担当簇头的备选对象。

(5)  若只有单一簇头而没有簇成员,则该簇头认为是异常孤立节点,直接删除。

(6)  经过一轮的时间段,重复(2)~(6)过程以开始下一轮的分簇。

二、案例背景

1.对传感器网内节点进行分簇,由簇头和汇聚节点(Sink节点)进行信息交换,使得网络在进行工作和数据传输时能够节省能量,延长网络生命周期。
2.在簇内和簇间进行数据融合,整合网内数据。
3.数据融合后进行数据压缩,首先采用聚类方法消除异常数据点,并把类似数据聚为一类。在每一类中进行差分压缩,差分压缩基础上再进行游程编码进一步提高压缩率。
4.恶意节点可能导致传感器网工作异常从而影响能量消耗,因此进行安全机制设计。

  1. 与一般的聚类检测算法进行对比,比较它们的检测率(检测率=被正确判定的攻击样本数量/攻击样本总数)。——用仿真图来比较表示
  2. 与一般的聚类检测算法进行对比,比较它们的漏检率(漏检率=被判定为正确的攻击样本数量/攻击样本总数)。——用仿真图来比较表示
  3. 与一般的聚类检测算法进行对比,比较它们的误判率(误判率=被判定为攻击样本的正常样本数量/正常样本总数)。——用仿真图来比较表示
  4. 与一般的聚类检测算法进行对比,比较它们的检测时间。——用仿真图来比较表示
  5. 与一般的聚类检测算法进行对比,比较它们的能量消耗。——用仿真图来比较表示

三、MATLAB程序

clc;
clear;
close all;
warning off;
rng(1);%仿真环境
SCALE = 100; 
%初始参数设定模块
xm    = SCALE;
ym    = SCALE;
%汇聚节坐标给定
sink.x= 2*xm;
sink.y= 1*ym;
%区域内传器节数
Node  = 200;
%簇头优化比例
P     = 0.05;
%初始化能量模型
E0    = 2;
%Eelec=Etx=Erx
Eelec = 50e-9;
ETX   = Eelec;
ERX   = Eelec;
Efs   = 10e-12;    %自由空间信道模型下功率放大所需能量
Emp   = 0.0013e-12;%多径衰减信道模型下功率放大所需能量
%Data Aggregation Energy
EDA   = 5e-9;
%高能量节点超出一节点能量的百分比
Emax  = 1;
%最大循环次数
Imax  = 100;
%算出参数 do
do    = sqrt(Efs/Emp);
Et    = 0;
%发送数据包长度
Byte  = 1000;%计算五个指标
%检测率=被正确判定的攻击样本数量/攻击样本总数
F1 = [];
%漏检率=被判定为正确的攻击样本数量/攻击样本总数
F2 = [];
%误判率=被判定为攻击样本的正常样本数量/正常样本总数
F3 = [];
%检测时间
F4 = [];
%能量消耗
F5 = [];for ij=0:Imax%循环ij%设置真实的异常点情况%簇内节点的分类Flag1 = rand(1,Node)>=0.85;%1:簇内,0:非簇内ind1  = find(Flag1 == 1);ind0  = find(Flag1 == 0); Flag = rand(1,length(ind0))>=0.2;%1:正常,0:异常%定义每一个节点的发送数据情况tmp0 = floor(3*rand(1,Byte))+114;data1 = [];data0 = [];    %1:簇内for i = 1:length(ind1)data1 = [data1;tmp0 + randn(size(tmp0))]; end%0:非簇内for i = 1:length(ind0)data0 = [data0;tmp0 + randn(size(tmp0))]; endfor i = 1:length(ind0)if Flag(i) == 1data0(i,:) = data0(i,:); else%模拟异常数据LL = randperm(Byte);  data0(i,LL(1:100)) = data0(i,LL(1:100)) + 200*rand(1,100); endendtic;%根据规则来判定每一个非簇内节点是否为异常节点%攻击样本总数NUM0 = length(find(Flag == 0));%正常样本总数NUM1 = length(find(Flag == 1));    Indx1= [];for i = 1:length(ind0);dlen = 0;if Flag(i) == 0dlen = rand*Byte/10;elsedlen = 2*rand*Byte;endif dlen <= 0.4*ByteIndx1 = [Indx1,i];   endendIndx2= [];for i = 1:length(ind0);dlen = 0;if Flag(i) == 0dlen = Byte - rand*Byte/10;elsedlen = Byte - 2*rand*Byte;endif dlen >= 0.4*ByteIndx2 = [Indx2,i];   endendPxy  = [];for x = 1:length(ind0);for y = 1:length(ind1);tmps     = cov(data0(x,:),data1(y,:));Pxy(x,y) = tmps(1,2)/(sqrt(std(data0(x,:)))*sqrt(std(data1(y,:))));endendPxy2 = mean(Pxy,2);%数据流相关性极低Indx3= find(Pxy2 < 1.2*mean(Pxy2));Indx = intersect(intersect(Indx1,Indx2),Indx3);times= toc;NN1 = 0;for i = 1:length(Indx);if Flag(Indx(i)) == 0;NN1 = NN1 + 1; endendNN2 = 0;for i = 1:length(Indx);if Flag(Indx(i)) == 1;NN2 = NN2 + 1; endend   NN3 = 0;for i = 1:length(Indx);if Flag(Indx(i)) == 1;NN3 = NN3 + 1; endend    %计算能耗,根据算法所需要的运算量来等效Es = (length(ind0)+length(ind1)+length(ind0)*length(ind1) + 4)*(Eelec+ETX+ERX+Efs+Emp);%计算五个指标%检测率=被正确判定的攻击样本数量/攻击样本总数F1 = [F1,NN1/NUM0];%漏检率=被判定为正确的攻击样本数量/攻击样本总数F2 = [F2,NN2/NUM0];%误判率=被判定为攻击样本的正常样本数量/正常样本总数F3 = [F3,NN3/NUM1];%检测时间F4 = [F4,times]; %能量消耗F5 = [F5,Es];
endFF1 = mean(F1)
FF2 = mean(F2)
FF3 = mean(F3)
FF4 = mean(F4)
FF5 = mean(F5)save R0.mat FF1 FF2 FF3 FF4 FF5

四、仿真结论分析

       仿真环境100m×100m,传感器节点数量200-500个,Sink节点位于其中一条边以外的100m处。初始状态下,每个节点具有2J能量,数据包大小100byte,节点的数据采集周期5S/次。Eelec=50nJ/bit(Eelec是发送电路或接收电路每发送或接收单位比特的能耗),efs=10 p J/bit/m2是自由空间信道模型下功率放大所需能量, emp=0.0013 p J/bit/m4是多径衰减信道模型下功率放大所需能量。

仿真性能:

  1. 第一项实验是与LEACH算法比较,网络从初始状态直到首个节点因能量耗尽而死亡的持续时间。
  2. 第二项实验是与LEACH算法比较,显示了随着时间的变化,一些节点开始死亡,整个网络的可用率下降的趋势情况。实验的终止条件为当网络可用节点下降至 75%时。(随着时间的变化,网内存活节点的比率)
  3. 第三项实验是与LEACH算法比较,随时间变化时网络所有节点能量消耗情况。

 

 

 

 

 

 A12-31

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

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

相关文章

如何成为一名数据工程师:完整的路线图

如何成为一名数据工程师:完整的路线图 关于如何学习数据工程的完整路线图。Photo by 这是工程RAEng on 不飞溅 什么是数据工程? 数据工程是设计和构建用于大规模收集、存储和分析数据的系统的实践。组织可以收集大量数据,但为了确保数据在到达数据科学家和分析师时处于高度…

mysql备份还原

一、环境配置 操作系统版本:Rocky Linux release 8.6 (Green Obsidian) 系统内核:Linux mysql 4.18.0-372.9.1.el8.x86_64 #1 SMP Tue May 10 14:48:47 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux mysql版本:mysql-server-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64 二、安…

大模型系统和应用——Transformer预训练语言模型

引言 最近在公众号中了解到了刘知远团队退出的视频课程《大模型交叉研讨课》&#xff0c;看了目录觉得不错&#xff0c;因此拜读一下。 观看地址&#xff1a; https://www.bilibili.com/video/BV1UG411p7zv 目录&#xff1a; 自然语言处理&大模型基础神经网络基础Transf…

实现一个简单的 ctrl+ f 搜索

前言 浏览器可以通过ctrl f 来实现&#xff0c;这个功能真的很不错&#xff0c;但是如何实现类似的功能呢&#xff1f;想了很久&#xff0c;感觉可以基于文本选中来实现 复制时的效果是这样的 搜索时的效果 是不是除了颜色不一样&#xff0c;其他都一样呢 文本选中样式设…

F1C100S rt-smart 内核移植(二)

前言 本篇的内容进入了rt-smart内核的C语言世界,因此会同时涉及到较多的.c文件,需要读者对rt-smart内核有基本的认识,至少需要大致了解内核的文件结构。 在上一章节中,我们从启动汇编start_gcc.S进入了内核入口rtthread_startup,该内核入口函数位于./kernel/src/component…

linux 增加swap分区容量 --文件方式

背景:用笔记本做openstack测试时,由于需要同时开启多台虚拟机且每台内存要求8G以上,笔记本硬件已无法满足,故通过增加swap的方式处理操作 一、查看扩容前swap分区容量free -h 二、扩容 由于原来系统有3.9G,所以增加4.1G即可 1、创建swap扩容文件cd /tmp dd if=/dev/zero o…

【web-渗透测试方法】(15.6)测试基于输入的漏洞

目录 一、测试基于输入的漏洞 1.1、模糊测试所有清求参数 1.2、测试SQL注入 1.3、测试XSS和其他响应注入 确定反射型请求参数 测试反射型XSS 测试HTTP消息头注入 测试任意重定向 测试存储型攻击 1.4、测试OS命令注入 1.5、测试路径遍历 1.6、测试脚本注入 1.7、测…

windows系统 python3.6(Anaconda3)安装对应版本 torch、torchvision

一、官网下载 .whl 文件 https://download.pytorch.org/whl/torch_stable.html二、使用pip命令安装 打开你的anaconda,选择对应虚拟环境终端,进入刚才下载 .whl 文件的目录下,输入以下命令: install 后面的就是你的文件名,出现successful就是成功了。 pip install torch-1…

VUE3实战一之项目搭建

VUE3实战一之项目搭建1. 项目初始化1.1. 环境要求1.2. 创建VUE项目-基于vite1.3. 项目初始化2. 项目配置2.1. 基本配置修改iconTitle配置jsconfig.json2.2. 项目目录结构划分删除自带的项目按照常用的目录划分2.3. css样式重置reset.csscommon.cssindex.css3. 路由配置3.1. rou…

Pycharm生成allure报告报错--allure不是内部或外部命令,也不是可运行的程序 或批处理文件

问题: allure报错:‘allure’ 不是内部或外部命令,也不是可运行的程序 或批处理文件截图: 解决方法: 1.安装JDK(版本1.8+),配置环境变量 此处不展示过程,成功的后进入cmd java-version验证 2.下载Allure 下载网址: https://repo.maven.apache.org/mav…

20201330马榕辰第一,二章学习笔记

第一章:一.知识点归纳: 第一章前半部分重在介绍课程和书本的基本情况,包括Unix / Linux的历史,其各种发行版,我了解到了一些基本情况。 后半部分主要是 Linux的使用,Linux的启动过程,Unix/Linux文件系统组织、文件类型和常用的Unix/Linux命令,Linux系统的一些系统管理…

20201306吴龙灿学习笔记

一、知识点归纳: 第一章:引言 主要内容: 第一章是本书的引子,因为本书意在让我们学会Unix以及Linux相关只是,在高级语言的基础上进一步学习创造编程平台的基本语言,让我们学会硬件设备怎么样跟我们所熟知的软件设备取得联系。第一章讲述了我们如何利用本书学好系统编程,…

第二章 操作系统基本原理(操作系统知识)

一:操作系统概述 二:进程管理 PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。 三:存储管理四:文件管理五:作业管理六:设备管理

opencv入门四

目录鼠标操作与响应图像像素归一化类型转换图像放缩插值鼠标操作与响应 static void on_draw(int event, int x, int y, int flags, void* userobj) {Mat image *(Mat*)userobj;if (event EVENT_LBUTTONDOWN) {//鼠标点击时 sp.x x;sp.y y;std::cout << "star…

预科知识1-MarkDown语法

MarkDown语法的基本操作markdown 标题 方法:#(几个)+空格+内容 三级标题 四级标题 字体 方法:加粗(2个星号 内容 2个星号) 斜体(1个星号 内容 1个星号) 加粗斜体(3个星号 内容 3个星号) 删除线(2个波浪 内容 2个波浪) hello world hello world …

在线教育项目【前端路由和Ajax实现分析与后端连接分析】

目录 1&#xff0c;前端路由实现分析 1.1&#xff1a;入口文件中调用路由 1.2&#xff1a;定义路由模块 1.3&#xff1a;编写路由模块文件 1.3.1&#xff1a;配置一个或者多个子路由 1.3.2&#xff1a;编写教师路由对应的文件 2&#xff0c;后端接口分析&#xff08;与后…

查询数字的最邻近

这道题目要用二分+桶排的方式解决 函数: l~r找v c:靠左/右(‘l’/‘r’) 靠左和靠右用STL函数二分就行,这里讲一下思路,二分出最靠左/右的v值(but二维,在but[v][0~len]区间二分)再判断是否在区间内在区间内输出but[v][a](a为二分的答案)否则输出-1。 最后再考虑一下需要…

注解Annotation

注解是一种引用数据类型,重点掌握Deprecated(表示已过时),Override(表示重写)。 元注解是用来标注注解类型的注解如Target(用来标注注解可以出现在哪些位置)、Retention(用来标注最终保存到哪里)。 package com.javastudy.example13;import java.lang.annotation.Ann…

计算机毕业设计php+vue基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时…

神奇的卡尔曼滤波,目标追踪的福音

前言 卡尔曼滤波算法由匈牙利数学家Kalman提出&#xff0c;主要基于线性系统提出。这里我们将其用于汽车跟踪&#xff0c;并对其基本原理进行介绍。 神奇的卡尔曼滤波&#xff0c;目标追踪的福音 1. 背景知识 1.1 时间序列模型 1.2. 滤波 1.3. 线性动态系统 2. 卡尔曼滤波…