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

摘要:
在每组节点数和节点通信半径下进行了1000次测试,然后分别模拟了连接率随节点数和通信半径增加的变化趋势。然而,当通信半径增加到接近值时,网络连接性大致保持在100%。

一、目的

       ①在不同节点个数的情况下,用Matlab拟合出连通率与通信半径的关系曲线。

       ②在不同节点通信半径的情况下,用Matlab拟合出连通率与节点个数的关系曲线。

二、方法描述

       在1x1的单位矩形中随机部署传感器节点,而且假设每个节点的通信半径一样。在每一组节点个数和节点通信半径下进行1000次试验,进而分别模拟出连通率随节点数增加以及通信半径增加的变化趋势。

       关键算法即判断节点网络是否具有连通性,算法流程图如下:

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系第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的关系曲线如下图:

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系第2张

         在实验过程中,取通信半径r=0.5,节点个数k=50的网络拓扑图如下所示:

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系第3张

         对于不同的节点个数及不同的网络规模下,随着通信半径的增加,网络连通率也在增加。但当通信半径增加到某个临近值时,网络连通率近似维持在100%。且随着节点个数的增加,临界通信半径减小。

      (2)在不同通信半径R情况下,用Matlab拟合出连通率与节点数量n的关系曲线如下图:

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系第4张

        在实验过程中,取通信半径r=0.35,节点个数k=30的网络拓扑图如下所示:

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系第5张

        第4张图中当只有一个节点时,连通率为1,所以出现连通率曲线锐减的现象。具有不同节点通信半径的WSN,随着节点个数的增加,网络连通率也在增加。当节点个数增加到某个临界值时,网络连通率近似维持100%。且随着节点通信半径的增加,临界节点个数减小。

三、结论

       ①给定节点数目,概率上随机WSN保持连通的节点通信半径存在下限。

       ②给定节点的通信半径,概率上随机WSN保持连通的节点个数存在上限。

四、MATLAB程序代码

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);%查找当前节点的子节点  
end  
end

如果自己向后退缩,就会被人推着向前。---黑柳彻子

转载需说明出处,笔者总结之前的知识,与大家分享,有问题的可以留给我哦~

免责声明:文章转载自《利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇封装原生Ajax 和 Axios的 二次封装[vim]Vim 配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 蓝牙开发(3)——蓝牙的详细介绍

前面的两篇文章,主要是在 Android 官网关于蓝牙介绍的基础上加上自己的理解完成的。主要针对的是 Android 开发中的一些 API 的使用。 第一篇文章 Android 蓝牙开发(1) 主要是介绍了普通的蓝牙在 Android 开发中的运用。 第二篇文章 Android 蓝牙开发(2) 主要是介绍了低功耗蓝牙的开发。 这篇文章主要介绍的是蓝牙的历史...

TCP、UDP详解与抓包工具使用

参考:https://www.cnblogs.com/HPAHPA/p/7737641.html TCP、UDP详解 1、传输层存在的必要性 由于网络层的分组传输是不可靠的,无法了解数据到达终点的时间,无法了解数据未达终点的状态。因此有必要增强网络层提供服务的服务质量。 2、引入传输层的原因 面向连接的传输服务与面向连接的网络服务类似,都分为建立连接、数据...

基于Mix网络的通信系统安全性性能分析

高超     毛胜利 (黄石理工学院  计算机学院,湖北 黄石 435003) 摘要:文章论证了基于Mix的安全性,给出了基于Mix网络中各类节点的负载。Mix网络在提供较强匿名性的同时,系统中用户节点的期望负载不随系统规模的扩大而增加,消息的期望路径长度与系统规模无关,系统的可扩展性较好。 关键词:Mix网络;Crowds节点;通信安全 0 引言   M...

matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。

最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢。。。。 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数,搞不清楚怎么用的,表示不大明白,下了一个软件包: 名字:Matlab Toolbox for Dimensionality Reduction 链接:http...

移动通信网络中的 GTP 协议

目录 文章目录 目录 GTP GTP-C 协议(GTP 控制面) GTP-U 协议(GTP 用户面) GTP' 协议(计费传输) GTPv2 Header GTP GTP(GPRS Tunnelling Protocol,GPRS 隧道协议)是一组基于 IP 的通信协议,用于 GSM、UMTS 和 EPS 网络中承载 GPRS(General...

TCP/IP协议(一)网络基础知识 网络七层协议

参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述)、OSI参考模型、网络概念的本质、网络构建的设备等     下面是协议层从底层至顶层的一个模型图:   一、计算机网络的背景 1.1 计算机的发展 有人说:“20世纪最伟大的发明就是计算机”,自诞生伊始,计算机经历了...