利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率
一、目的
(1)在固定节点个数的前提下,仿真求得使网络保持连通的最小通信半径(最低能级)。
(2)在上述节点个数和通信半径的前提下,计算随机布撒的节点的覆盖率。
二、方法描述
(1)首先假设通信半径都等于感知半径,并且每个节点发射功率均相同。在1x1的单位矩形中随机部署100个传感器节点,在每一节点通信半径下进行1000次试验,进而模拟出连通率随通信半径增加的变化趋势。得出在1000点下保持网络连通的最小通信半径。
从上图可以得出,每个节点得最小通信半径为r=0.29。
(2)通过一次随机布撒100个节点,并以每个节点为圆心,绘出半径为0.29的圆。如下图所示:
开始想利用微元的思想,将1x1的区域划分成100个小方格,但之后发现该方法复杂。实验中采用将每个节点的圆(通信覆盖范围)填充为黑色,通过连通图中黑白像素点的比例得到覆盖率。覆盖图如下图所示:
算法实现流程图如下:
试验中注意的是在得到网络的覆盖图之后,需要将其进行处理,仅将1x1的区域截出进行计算,否则实验结果会出现意外错误。
实现重要程序如下:
pp=imread('C:\Users\zhangkun\Desktop\1.png') p=rgb2gray(pp); m=0; len=size(p,1) lie=size(p,2) for i=1:lenfor j=1:lieif(p(i,j)==0) m=m+1;endend end fugailv=m/(len*lie)%0.9346
三、结论
在节点个数确定时,存在一个使网络保持连通的最小通信半径(最小能级),可以达到节约能量。本实验中选取100个节点随机布撒,通过1000次仿真得到网络的最小通信半径为0.29m,在该半径下一次随机布撒的覆盖率为93.46%。
四、程序代码
L=1; % 节点布置区域 theta=0:pi/100:2*pi; n=100; % 节点个数 node_max=0.29; % 节点最大通信距离 X=unifrnd(0,L,1,n); % 生成n个均匀随机数作为横坐标 B=sqrt(L^2-abs(X).^2); % 计算每个x对应的y范围 Y=unifrnd(0,B,1,n); % 对每个横坐标生成均匀随机数作为纵坐标 plot(X,Y,'.') hold on axis equal; axis([0 1 0 1]); figure(1) for i=1:nhold onx=node_max*cos(theta)+X(i);y=node_max*sin(theta)+Y(i);plot(x,y,'b-')%fill(x,y,'k'); end figure(2) axis equal; axis([0 1 0 1]); for i=1:nhold onx=node_max*cos(theta)+X(i);y=node_max*sin(theta)+Y(i);%plot(x,y,'k-')fill(x,y,'k'); endpp=imread('C:\Users\kkzhang\Desktop\1.png') p=rgb2gray(pp); m=0; len=size(p,1) lie=size(p,2) for i=1:lenfor j=1:lieif(p(i,j)==0) m=m+1;endend end fugailv=m/(len*lie)%0.9346
生活中总有不期而遇的温暖与生生不息的希望!
转载需说明出处,笔者总结之前的知识,与大家分享,有问题的可以留给我哦~
转载于:https://www.cnblogs.com/lemonzhang/p/9254033.html
利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率相关推荐
- matlab节点连通率,利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx
利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx 江南大学物联网ZK1/5一题目利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率.二目的(1)在固定节点个数的前提下,仿真求得 ...
- matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别
利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...
- matlab 多普勒效应,《利用MATLAB仿真多普勒效应.doc
<利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者 ...
- 多普勒谱matlab,利用MATLAB仿真多普勒效应.doc
利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者接收到的 ...
- 利用matlab仿真ECC算法
利用matlab仿真ECC算法 文章目录 利用matlab仿真ECC算法 一.ECC算法介绍 简介 椭圆曲线 二.加密算法 椭圆曲线的加法 椭圆曲线的乘法 有限域 有限域的四则运算 有限域的椭圆曲线 ...
- 单闭环调速仿真matlab,利用Matlab仿真平台设计单闭环直流调速系统
内容简介: 毕业论文 利用Matlab仿真平台设计单闭环直流调速系统 共21页,3989字. 目 录 一.摘要 --------------------------2 二.总体方案设计 ------- ...
- 利用MATLAB仿真实现交通红绿灯识别的目的
本文章在MATLAB平台仿真来实现交通红绿灯的识别.主要步骤可以分为: 1.红绿灯图像先经过预处理包括图像灰度化,图像锐化,图像滤波,阈值分割等,去除背景部分噪声减少对识别结果的影响.图像灰度化的目的 ...
- matlab 张德风,利用MATLAB仿真多普勒效应
用MATLAB模拟多普勒效应 某 选择:多普勒效应特性分析.建立数学模型.使用MATLAB软件进行模拟测试.定量分析.根据模拟测试结果绘制听众收到的信号的频率变化曲线.用信号处理工具箱函数spectr ...
- matlab找多项式最值,如何利用matlab计算最小多项式
7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...
- 基于k-means聚类图像分割+lbp+pca+svm实现烟雾识别(利用matlab仿真实现)
一.算法简介 1.1 c-means聚类算法 聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象进行分组.目的是使组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的) ...
最新文章
- 转_前端开发技术概要
- 利用 createTrackbar 进行二值化
- mysqL学习之实例
- JS如何监听动画结束
- python json方法详解_python详解json模块
- 教你轻松搞定javascript中的正则
- Android ScrollView 实现整个界面变成列表
- android lbs查询距离,不仅能搜索还能查信息 带你了解LBS应用
- java编程语言的优点你知道几个
- win10用计算机分区,win10怎么分区,详细教您win10怎么对磁盘进行分区
- python汉语词频统计_Python之四大名著汉字词频统计
- 计算机网络通信模型之cs模式(一)简单的socket
- 帕累托法则/20:80法则/犹太法则
- Expeditious Cubing(浮点数处理)
- 来了老弟,帅气模态框
- 【Excel】选择性粘贴
- 【git】 Please tell me who you are解决方法
- Flink一站式平台 StreamX 1.2.2 正式发布, 迄今最稳定可用版本
- CTFHub | bak文件
- 尚硅谷谷粒商城项目P16前端项目renren-fast-vue的bug,耗时三天终于运行起来了
热门文章
- uva11992-Fast Matrix Operations(区间增值、改值)
- 转iPhone开发的门槛
- 央行超级网银8月上线 第三方支付平台或暂停接入
- 图解 TCP IP 协议:三次握手、四次挥手
- 给网站设置ICO图标
- printf()、sprintf()的二次封装
- 15. (附加)链表中间节点(C++版本)
- echarts实现2d柱状_记录echarts比较难实现的图1(一个背景上呈现三个柱状图)
- python保留字符串之外的_Python--字符串
- linux查看磁盘io最多的进程,Linux 查看磁盘IO并找出占用IO读写很高的进程,磁盘占用很高...