资源简介
MATLAB平台的LEACH协议代码.对于搞毕业设计的人还是很好的东西。
代码片段和文件信息
clear;
%%%%%%%%%%%%%%%%%%%%%%%%% 参数初始化 %%%%%%%%%%%%%%%%%%%%%%%%
xm=100;%待投放节点的场景范围
ym=100;
sink.x=0.5*xm;%基站的位置
sink.y=0.5*ym;
n=100;%节点总数
data_packet=4000;%每个节点采集数据形成的数据包大小
p=0.05;%期望蔟头占所有节点的百分比
%能量模型
Eo=0.05;%初始能量
ETX=50*0.000000001;%Eelec=Etx=Erx
ERX=50*0.000000001;
Efs=10*0.000000000001;%放大器的两个参数
Emp=0.0013*0.000000000001;
EDA=5*0.000000001;%融合单位数据所要消耗的能量
rmax=1999;%运行的总轮数
do=sqrt(Efs/Emp);%能量损耗的界限值:大于它则符合friss free space model,小于它则符合two-ray ground model
%%%%%%%%%%%%%%%%%%%%%%%%% 参数初始化结束 %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% 簇的建立 %%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:1:n
S(i).xd=rand(11)*xm;%随机生成节点的坐标
S(i).yd=rand(11)*ym;
S(i).G=0;%节点是否属于集合G的标志
S(i).type=‘N‘;%表征普通节点
S(i).E=Eo;%初始化节点能量
end
S(n+1).xd=sink.x;%画出基站节点‘x‘
S(n+1).yd=sink.y;
firstflag=0;
firstflag_round=0;
for r=0:1:rmax%开始循环
r %输出当前的轮数
dead=0;%统计总的死亡节点数
if(mod(r round(1/p) )==0)%G为最近1/p轮不是簇头的节点集
for i=1:1:n
S(i).G=0;
end
end
for i=1:1:n
if (S(i).E<=0)
dead=dead+1;%统计总的死亡节点个数
else
S(i).type=‘N‘;
end
end
if(dead>0 && firstflag==0)
firstflag=1;
firstflag_round=r;
end
if (dead == n)%如果节点全部死亡退出循环
break;
end
STATISTICS(r+1).DEAD=dead;%统计第r+1轮的死亡节点数
%%%%%%%%%%%%%%%%%%%%%%%%%第一阶段:簇首节点的选择
cluster=1;%记录簇的个数
for i=1:1:n
if(S(i).E>0 && (S(i).G)<=0)%属于候选节点集合
temp_rand=rand;%生成一个0-1的随机数
if(temp_rand<= (p/(1-p*mod(rround(1/p)))))%若生成的随机数小于门限值T(n),就成为簇头
S(i).type=‘C‘;%标志该节点为簇头
S(i).G=round(1/p)-1;%标志该节点在最近的1/p轮中不会再成为簇头
C(cluster).xd=S(i).xd;%记录簇头的位置
C(cluster).yd=S(i).yd;
C(cluster).distance=sqrt( (S(i).xd-(S(n+1).xd) )^2 + (S(i).yd-(S(n+1).yd) )^2 );%簇头距离基站的距离
C(cluster).id=i;%簇头的在原来n个节点中的编号
C(cluster).packet=0;%该簇头所控制的簇成员个数
cluster=cluster+1;
end
end
end
CLUSTERHS(r+1)=cluster-1;%统计第r+1轮的簇头数
%%%%%
- 上一篇:svm+smo matlab程序
- 下一篇:宽度学习matlab代码
相关资源
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 《MATLAB 智能算法超级学习手册》-程序
- 读取txt文件内容matlab代码实现
- 算术编码解码matlab源代码
- OFDM系统MATLAB仿真代码
- 图像小波变换MatLab源代码
- 细胞图像分割matlab代码
- 基于MP的时频分析MATLAB代码
- 工程优化问题的Matlab实现代码
- WCDMA matlab代码
- 数字图像处理radon matlab变换算法代码
- 数字信号处理 理论算法与实现 胡广书
- 激光谐振腔课程设计(matlab)exe及源
- 基于harris算法的角点检测matlab原代码
- 北邮Matlab实验报告和代码
- 图像降噪Matlab代码
- matlab人脸识别和特征提取
- 圣诞树(matlab代码)
- 心音信号处理分析(附matlab代码)
- Pattern Recognition and Machine Learning(高清
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- 多目标跟踪 论文+代码
- 欧拉放大论文及matlab代码
- 蚁群算法论文+源代码
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- matlab读取SP3文件
- 手把手教你学DSP--基于TMS320C55x光盘 含
评论
共有 条评论