简述:

实验要求我们将传感器节点随机均匀分布在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

最新文章

  1. Array&String总结
  2. bootstraps字体图标无法显示
  3. OpenGL阴影,Shadow Mapping(附源程序)
  4. codeforces B. Pasha and String(贪心)
  5. 移动Web开发的bug及解决方案
  6. JavaScript与DOM
  7. c++ shared_ptr 使用注意事项. 2
  8. Entity Framework 复杂类型
  9. POI导出数据内存溢出问题
  10. C++多态性的理解
  11. C++一些注意点之操作符重载
  12. Processing.js
  13. JAVA数字求和
  14. Ubuntu16.04下安装xunsearch+opencc实现php客户端的中文分词
  15. 常用jqueryPlugin
  16. Java 包(package)
  17. html css float left与 float right的使用说明(转)
  18. No.01——配置编程环境
  19. 【转】NativeScript的工作原理:用JavaScript调用原生API实现跨平台
  20. bzoj 3879: SvT

热门文章

  1. C#LeetCode刷题-Map
  2. C#LeetCode刷题-深度优先搜索
  3. C#LeetCode刷题之#349-两个数组的交集(Intersection of Two Arrays)
  4. Scss 定义内层class的简单写法
  5. 《Windows程序设计(第5版 珍藏版)》配书光盘
  6. CSS动画实例:太极图在旋转
  7. golang复杂数据结构
  8. 牛客网PAT练兵场-福尔摩斯的约会
  9. PowerJob 在线日志饱受好评的秘诀:小但实用的分布式日志系统
  10. js大数字转换,将大额数字转换为万、千万、亿等