一、目的

(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的连通性和覆盖率相关推荐

  1. matlab节点连通率,利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx

    利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx 江南大学物联网ZK1/5一题目利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率.二目的(1)在固定节点个数的前提下,仿真求得 ...

  2. matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别

    利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...

  3. matlab 多普勒效应,《利用MATLAB仿真多普勒效应.doc

    <利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者 ...

  4. 多普勒谱matlab,利用MATLAB仿真多普勒效应.doc

    利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者接收到的 ...

  5. 利用matlab仿真ECC算法

    利用matlab仿真ECC算法 文章目录 利用matlab仿真ECC算法 一.ECC算法介绍 简介 椭圆曲线 二.加密算法 椭圆曲线的加法 椭圆曲线的乘法 有限域 有限域的四则运算 有限域的椭圆曲线 ...

  6. 单闭环调速仿真matlab,利用Matlab仿真平台设计单闭环直流调速系统

    内容简介: 毕业论文 利用Matlab仿真平台设计单闭环直流调速系统 共21页,3989字. 目 录 一.摘要 --------------------------2 二.总体方案设计 ------- ...

  7. 利用MATLAB仿真实现交通红绿灯识别的目的

    本文章在MATLAB平台仿真来实现交通红绿灯的识别.主要步骤可以分为: 1.红绿灯图像先经过预处理包括图像灰度化,图像锐化,图像滤波,阈值分割等,去除背景部分噪声减少对识别结果的影响.图像灰度化的目的 ...

  8. matlab 张德风,利用MATLAB仿真多普勒效应

    用MATLAB模拟多普勒效应 某 选择:多普勒效应特性分析.建立数学模型.使用MATLAB软件进行模拟测试.定量分析.根据模拟测试结果绘制听众收到的信号的频率变化曲线.用信号处理工具箱函数spectr ...

  9. matlab找多项式最值,如何利用matlab计算最小多项式

    7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...

  10. 基于k-means聚类图像分割+lbp+pca+svm实现烟雾识别(利用matlab仿真实现)

    一.算法简介 1.1 c-means聚类算法 聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象进行分组.目的是使组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的) ...

最新文章

  1. 转_前端开发技术概要
  2. 利用 createTrackbar 进行二值化
  3. mysqL学习之实例
  4. JS如何监听动画结束
  5. python json方法详解_python详解json模块
  6. 教你轻松搞定javascript中的正则
  7. Android ScrollView 实现整个界面变成列表
  8. android lbs查询距离,不仅能搜索还能查信息 带你了解LBS应用
  9. java编程语言的优点你知道几个
  10. win10用计算机分区,win10怎么分区,详细教您win10怎么对磁盘进行分区
  11. python汉语词频统计_Python之四大名著汉字词频统计
  12. 计算机网络通信模型之cs模式(一)简单的socket
  13. 帕累托法则/20:80法则/犹太法则
  14. Expeditious Cubing(浮点数处理)
  15. 来了老弟,帅气模态框
  16. 【Excel】选择性粘贴
  17. 【git】 Please tell me who you are解决方法
  18. Flink一站式平台 StreamX 1.2.2 正式发布, 迄今最稳定可用版本
  19. CTFHub | bak文件
  20. 尚硅谷谷粒商城项目P16前端项目renren-fast-vue的bug,耗时三天终于运行起来了

热门文章

  1. uva11992-Fast Matrix Operations(区间增值、改值)
  2. 转iPhone开发的门槛
  3. 央行超级网银8月上线 第三方支付平台或暂停接入
  4. 图解 TCP IP 协议:三次握手、四次挥手
  5. 给网站设置ICO图标
  6. printf()、sprintf()的二次封装
  7. 15. (附加)链表中间节点(C++版本)
  8. echarts实现2d柱状_记录echarts比较难实现的图1(一个背景上呈现三个柱状图)
  9. python保留字符串之外的_Python--字符串
  10. linux查看磁盘io最多的进程,Linux 查看磁盘IO并找出占用IO读写很高的进程,磁盘占用很高...