利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系。.docxVIP

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系。.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系。

江南大学物联网-zk PAGE5 / NUMPAGES5 一:题目 利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系。 二:目的 ①在不同节点个数的情况下,用Matlab拟合出连通率与通信半径的关系曲线。 ②在不同节点通信半径的情况下,用Matlab拟合出连通率与节点个数的关系曲线。 三:方法描述 在1x1的单位矩形中随机部署传感器节点,而且假设每个节点的通信半径一样。在每一组节点个数和节点通信半径下进行1000次试验,进而分别模拟出连通率随节点数增加以及通信半径增加的变化趋势。 关键算法即判断节点网络是否具有连通性,算法流程图如下: 图1 连通性判断算法 关键的程序设计在于找到与节点相连的节点的递归调用,通过不断的搜索邻接矩阵中的1,并在连通向量中标记已找到为连通的的点,最后通过计算连通向量的总和判断是否连通。之后通过改变节点个数k和通信半径r并嵌套以下实现1000次的连通判断计算连通率: for cishu=1:1000 p=rand(k,2); c=Connect(p,r); liantong=liantong+c; end liantonglv(i)=liantong/1000; plot(r,liantonglv(i),b-*) (1)在不同节点个数情况下,用Matlab拟合出连通率与通信半径r的关系曲线如下图: 图2 连通率与通信半径 在实验过程中,取通信半径r=0.5,节点个数k=50的网络拓扑图如下所示: 图3 网络拓扑图 对于不同的节点个数及不同的网络规模下,随着通信半径的增加,网络连通率也在增加。但当通信半径增加到某个临近值时,网络连通率近似维持在100%。且随着节点个数的增加,临界通信半径减小。 (2)在不同通信半径R情况下,用Matlab拟合出连通率与节点数量n的关系曲线如下图: 图4 连通率与节点个数 在实验过程中,取通信半径r=0.35,节点个数k=30的网络拓扑图如下所示: 图5 网络拓扑图 图4中当只有一个节点时,连通率为1,所以出现连通率曲线锐减的现象。具有不同节点通信半径的WSN,随着节点个数的增加,网络连通率也在增加。当节点个数增加到某个临界值时,网络连通率近似维持100%。且随着节点通信半径的增加,临界节点个数减小。 四:实验结论 ①给定节点数目,概率上???机WSN保持连通的节点通信半径存在下限。 ②给定节点的通信半径,概率上随机WSN保持连通的节点个数存在上限。 function [ C ] = Connect( graph,r ) adjmatrix=1.-im2bw(squareform(pdist(graph)),r); %生成邻接矩阵 len=size(adjmatrix,1); quit=0; for n=1:len if sum(adjmatrix(n,:))==1 %排除孤立点 quit=1; end end %判断连通性 if quit~=1 connected(len)=0; %已连接节点 connected(1)=1; connected=findconnected(1,adjmatrix,connected);%找到与节点1连接的节点 if sum(connected)==len C=1; else C=0; end else C=0; End function [connected]=findconnected(start,adjmatrix,connected) leaf=find(adjmatrix(start,:)==1);%找出与节点start直接相连的节点 len=size(leaf,2) ; flag=0; nflag=1; for n=1:len if connected(leaf(n))==0;%若节点已在连接向量(connected)中则跳过 flag(nflag)=leaf(n); nflag=nflag+1; end end len=size(flag,2) ; if flag~=0 for n=1:len connected(flag(n))=1; end for n=1:len connected=findconnected(flag(n),adjmatrix,connected);%查找当前节点的子节点 e

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档