最小发射功率下WSN的连通性和覆盖率
简述:
实验要求我们将传感器节点随机均匀分布在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的连通性和覆盖率的更多相关文章
- 利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率
一.目的 (1)在固定节点个数的前提下,仿真求得使网络保持连通的最小通信半径(最低能级). (2)在上述节点个数和通信半径的前提下,计算随机布撒的节点的覆盖率. 二.方法描述 (1)首先假设通信半径都 ...
- windows和linux系统下测试端口连通性的命令
0. ping 1. telnet 2. ssh 3. curl 4. wget 5. tcping 6. 总结 本文地址: https://www.cnblogs.com/hchengmx/p/12 ...
- ZOJ 3792 Romantic Value 最小割(最小费用下最小边数)
求最小割及最小花费 把边权c = c*10000+1 然后跑一个最小割,则flow / 10000就是费用 flow%10000就是边数. 且是边数最少的情况.. #include<stdio. ...
- 在 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 ...
- 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 ...
- 虚机Linux最小系统下安装图形界面,与yum配置
出于未知原因,想装一下. 因为有光盘,所以就从光盘安装就可以了. 首先是配置yum下的下载地址: 找到yum的地址,然后打开文件. 然后建立该文件的/media/cdrom路径.将光盘挂载到该路径下. ...
- centOS6.2 最小安装下的无线网络配置
一.安装wireless_tools,http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 二.vi / ...
- L230 RF可靠性测试-RF指标
最近调试Zigbee 和2.4G产品时需要做一些认证,查找到常用的RF指标. ----------http://www.52rd.com/S_TXT/2016_5/TXT83303.htm------ ...
- JaCoCo覆盖率计数器
覆盖率计数器 JaCoCo使用一组不同的计数器来计算覆盖率指标.所有这些计数器都是从Java类文件里获取信息,这些类文件包含Java 字节码指令和调试信息.即使没有可用源代码情况下,这种方法可以实时有 ...
随机推荐
- ios 富文本 加颜色 删除线
UILabel *valueL = [JAppViewTools getLabel:CGRectMake(JFWidth(15), CGRectGetMaxY(proName.frame)+JFWid ...
- Android 的Glide、TabLayout、RecyclerView(下一章补充)。
今天的内容主要和一些依赖有关, //Glide依赖implementation 'com.github.bumptech.glide:glide:4.11.0'//Google Design依赖//n ...
- Hive对字段进行urlDecode
最近项目中需要对埋点日志hive表进行分析,并且按一定的规则统计出来满足要求的用户pin.本来以为是一件比较简单的事,结果在查看导出的词表时发现很多带有"%"的明显具有url en ...
- 【av68676164(p51-p53)】虚拟内存管理(2)
虚拟内存管理(2) 7.3.4 缺页终端 分级存储体系 cache+内存+辅存 页表扩充-带中断位的页表 页号 页框号 中断位I 辅存地址 访问位 修改位 1 1 0 0 0 1 中断位I-标志该页是 ...
- Revit二开---Schemachema扩展数据
一.什么是Schema Schema是Revit扩展数据的技术关键词,revit到这里,需要对Revit二开基础有一定了解. 二.Schema架构 建立revit扩展数据第 ...
- Vue 父子组件表单同步校验
子组件代码 // 子组件 validateForm() { return new Promise((resolve, reject) => { this.$refs.contractBaseRe ...
- Jira 和 Confluence 企业最佳部署方式
在Atlassian,我们为客户提供不同的方式来部署 Atlassian 产品:可以部署在由 Altassian 管理的云端(Cloud)上,也可以部署在客户自己选择的服务器(Server)或数据中心 ...
- STM32中 BOOT0 BOOT1设置(问题:程序下载进去但无法运行)
默认BOOT0接10K接地,BOOT1接10K接地 实际如果BOOT0不接10K到地,会导致程序能下载进去,但是无法运行情况
- 序列化流(ObjectOutputStream、ObjectInputStream)
1.序列化流(ObjectOutputStream) package demo10.objstream; /* java.io.ObjectOutputStream extends OutputStr ...
- Quartz:基本用法总结
OpenSymphony所提供的Quartz是任务调度领域享誉盛名的开源框架.Spring提供了集成Quartz的功能,可以让开发人员以更面向Spring的方式创建基于Quartz的任务调度应用.任务 ...