简述:

实验要求我们将传感器节点随机均匀分布在1x1的方格中,然后计算节点的最小共同发射功率(COMPOW),保证网络刚好连通,并计算出这些节点的覆盖率。为了解决这个问题,我们的做法是随机均匀部署100个节点在1x1的方格中,结合判断连通性的算法[1],找出它们刚好连通时每个节点的最小通信半径,然后根据简化的路径损耗模型计算出此时的的发射功率,即我们求的COMPOW值;在计算覆盖率的时候,我们利用微元的思想,将 的方格划分成许多小正方形组成,然后统计覆盖区域小方格个数占总小方格个数的比例,该值近似为所求的覆盖率(方格越多,结果越精确)。

建模过程:

首先假设通信半径都等于感知半径,并且每个节点发射功率均相同。
1. 解最小通信半径
① 求出任意节点之间的距离(即通信半径),并递增排列;
② 利用实验一连通性的算法从①中递增距离中找出刚好使这些节点连通的距离。即最小通信半径d。
③ 利用简化的路径损耗模型计算出最小的共同发射功率 Pcompow:

2. 求解覆盖率
我们首先对半径为d的100个圆填充颜色,利用微元的思想,将1x1的方格划分成很多正方形小格,然后计算出覆盖区域所占的小方格数。

但是划分小方格程序上比较麻烦,于是我们想到了利用图像处理的方法,图像本身存储的就是矩阵,灰度图像矩阵元素的取值范围为p=[0,255],二值化处理后p=0 or 255,p=0代表纯黑色,p=255代表纯白色。于是利用Matlab的imread()函数将产生的图像转化为矩阵,统计里面0的个数(覆盖区域为黑色),再除以总的矩阵大小(这里为341x341),即为所求覆盖率,具体过程如下图:

图1 图像简单处理过程

画圆及填充的代码:

 clear all;
clc;
graph=rand(100,2); %产生随机图
dis=sort(pdist(graph));%产生任意两点之间的递增距离表
theta=0:pi/100:2*pi;
for n=1:size(dis,2);%递增距离
if Connect(graph,dis(n))==1%判断是否连通
d=dis(n);%最小连通距离
break;
end
end
figure(1);
axis equal;
axis([0 1 0 1]);
for n=1:100
hold on
x = d*cos(theta) + graph(n,1);
y = d*sin(theta) + graph(n,2);
plot(x,y,'-');
fill(x,y,'k');
end
figure(2);
axis equal;
axis([0 1 0 1]);
for i=1:100
hold on
x = d*cos(theta) + graph(i,1);
y = d*sin(theta) + graph(i,2);
plot(x,y,'-');
end

最小发射功率下WSN的连通性和覆盖率的更多相关文章

  1. 利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率

    一.目的 (1)在固定节点个数的前提下,仿真求得使网络保持连通的最小通信半径(最低能级). (2)在上述节点个数和通信半径的前提下,计算随机布撒的节点的覆盖率. 二.方法描述 (1)首先假设通信半径都 ...

  2. windows和linux系统下测试端口连通性的命令

    0. ping 1. telnet 2. ssh 3. curl 4. wget 5. tcping 6. 总结 本文地址: https://www.cnblogs.com/hchengmx/p/12 ...

  3. ZOJ 3792 Romantic Value 最小割(最小费用下最小边数)

    求最小割及最小花费 把边权c = c*10000+1 然后跑一个最小割,则flow / 10000就是费用 flow%10000就是边数. 且是边数最少的情况.. #include<stdio. ...

  4. 在 CentOS7最小化 下的编译安装:Nginx 1.5.2 + PHP 5.5.7 + MySQL 5.6.10

    1.安装Nginx: 安装包目录 mkdir -p /Data/tgzcd /Data/tgz 安装编译依赖 yum install wget yum install pcre yum install ...

  5. Centos7最小安装下Install Clamav(2017-06-09最后更新)

    If you are installing ClamAV for the first time, you have to add a new user and group to your system ...

  6. 虚机Linux最小系统下安装图形界面,与yum配置

    出于未知原因,想装一下. 因为有光盘,所以就从光盘安装就可以了. 首先是配置yum下的下载地址: 找到yum的地址,然后打开文件. 然后建立该文件的/media/cdrom路径.将光盘挂载到该路径下. ...

  7. centOS6.2 最小安装下的无线网络配置

    一.安装wireless_tools,http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 二.vi / ...

  8. L230 RF可靠性测试-RF指标

    最近调试Zigbee 和2.4G产品时需要做一些认证,查找到常用的RF指标. ----------http://www.52rd.com/S_TXT/2016_5/TXT83303.htm------ ...

  9. JaCoCo覆盖率计数器

    覆盖率计数器 JaCoCo使用一组不同的计数器来计算覆盖率指标.所有这些计数器都是从Java类文件里获取信息,这些类文件包含Java 字节码指令和调试信息.即使没有可用源代码情况下,这种方法可以实时有 ...

随机推荐

  1. ios 富文本 加颜色 删除线

    UILabel *valueL = [JAppViewTools getLabel:CGRectMake(JFWidth(15), CGRectGetMaxY(proName.frame)+JFWid ...

  2. Android 的Glide、TabLayout、RecyclerView(下一章补充)。

    今天的内容主要和一些依赖有关, //Glide依赖implementation 'com.github.bumptech.glide:glide:4.11.0'//Google Design依赖//n ...

  3. Hive对字段进行urlDecode

    最近项目中需要对埋点日志hive表进行分析,并且按一定的规则统计出来满足要求的用户pin.本来以为是一件比较简单的事,结果在查看导出的词表时发现很多带有"%"的明显具有url en ...

  4. 【av68676164(p51-p53)】虚拟内存管理(2)

    虚拟内存管理(2) 7.3.4 缺页终端 分级存储体系 cache+内存+辅存 页表扩充-带中断位的页表 页号 页框号 中断位I 辅存地址 访问位 修改位 1 1 0 0 0 1 中断位I-标志该页是 ...

  5. Revit二开---Schemachema扩展数据

    一.什么是Schema        Schema是Revit扩展数据的技术关键词,revit到这里,需要对Revit二开基础有一定了解. 二.Schema架构        建立revit扩展数据第 ...

  6. Vue 父子组件表单同步校验

    子组件代码 // 子组件 validateForm() { return new Promise((resolve, reject) => { this.$refs.contractBaseRe ...

  7. Jira 和 Confluence 企业最佳部署方式

    在Atlassian,我们为客户提供不同的方式来部署 Atlassian 产品:可以部署在由 Altassian 管理的云端(Cloud)上,也可以部署在客户自己选择的服务器(Server)或数据中心 ...

  8. STM32中 BOOT0 BOOT1设置(问题:程序下载进去但无法运行)

    默认BOOT0接10K接地,BOOT1接10K接地 实际如果BOOT0不接10K到地,会导致程序能下载进去,但是无法运行情况

  9. 序列化流(ObjectOutputStream、ObjectInputStream)

    1.序列化流(ObjectOutputStream) package demo10.objstream; /* java.io.ObjectOutputStream extends OutputStr ...

  10. Quartz:基本用法总结

    OpenSymphony所提供的Quartz是任务调度领域享誉盛名的开源框架.Spring提供了集成Quartz的功能,可以让开发人员以更面向Spring的方式创建基于Quartz的任务调度应用.任务 ...