⛄一、 简介

1 引言
WSN 由能感知外部环境的传感器节点以自组网的形式构成,是一种分布式无线传感器网络。随着科技的进步和现代生活的需求,由于 WSN 的远程控制、信息即时传播以及低功耗等众多优点,WSN 在军事医疗、生活娱乐和工业生产等各个社会领域发挥着越来越大的作用。但是 WSN 优点众多的同时也有其弊端。正是因为传感器节点的无线性,使能量不能源源不断地直接供给传感器节点,只能用有限的电池供应节点的全部能耗,这使能量成为 WSN 亟待解决的问题。为了解决能量均衡高效这个问题,Heinzelman 等提出了最早的分簇路由协议。此协议运用数据融合技术和能量高效利用的路由算法,是经典的分簇路由协议代表。此后,很多研究学者对此基础上进行了诸多改进,都从不同方面进行了优化。Mittal 等提出了用替补簇首( Sub-CH )代替死亡簇首的方法。Gnanambigai等介绍了LEACH的后继协议。其中,LEACH-C 协议利用每个节点发送位置信息和剩余能量生成能耗更低、性能更优越的分簇;LEACH-F使用固定的簇和循环选举出的簇首,避免了反复成
簇带来的能量消耗;MUTIHOP-LEACH 协议考虑间距因素,在簇中节点与汇聚节(sink)、簇与基站之间使用多跳方法的传输方案;LEACH-L 允许间隔基站较远的簇首使用多跳方式与基站进行通信。

2 LEACH 协议概述
2.1 LEACH 协议的简介
LEACH 协议是一种经典分簇路由协议,它的特点是低功率消耗、聚类自适应和节点平等。由于网络内各个节点被选概率一样,因此将整个网络的能量消耗均衡地分配到每个节点,从而达到网络的能量消耗负载均衡,延长网络生命时间。LEACH协议主要由T n( ) 构成。首先,每轮次每个节点都随机产生的一个数   0 1     ;然后,将  与T n( ) 进行比较,如果   T n( ) ,则此节点成为簇首;反之,则落选。在 WSN 中一次新路由的建立加上数据的传输算一轮。由T n( ) 算法可以看出,被选为簇首是由这 2 方面因素进行权衡得出的:整个网络场景中所需要的簇首节点总数和节点当选过簇首的次数。阈值T n( ) 为

其中, p 表示在此网络规模中需要的簇首节点比例,r 是进行的轮次,G 表示在此轮循环之前没有被选为簇首的节点。

2.2 网络模型
为了研究改进的路由算法对网络的影响,对网络模型作了如下假设。

  1. 实验区域的形状为规则图形,传感器节点在监测区域中随机不均匀分散。
  2. 所有传感器节点的能量相同、处理能力和通信能力相等,被选概率一样。
  3. 传感器节点可以知悉自身剩余能量并可以对冗余数据进行融合。
  4. 传感器节点随机被分散后不会移动,网络部署后不再进行人为干涉。
  5. 无线发射功率可以自我调控,可自主选择发射功率。

2.3 能耗模型
本文实验中,m bit 数据的传输过程与每一步的能量消耗如图 1 所示[13]。

当 m bit 的数据进行传输时,节点的能量消耗主要由这 2 个部分构成:发送 m bit 数据的能量耗损以及功率放大电路的能量耗损;同时,针对不同的发射距离 d,选择不同的发送功率为

⛄二、部分源代码

clear
clc
close all
IniEng=0.5;%0.5; % Initial Energy of Every Node
NetSize=200; % Network Size
NoOfNode=200; % Number of Node
NoOfRound=1500; % Number of Round
cluster_head_percentage=0.1;

[STATISTICS1,FD1,TD1,AD1]=leach(IniEng,NetSize,NoOfNode,NoOfRound,cluster_head_percentage);%% Leach
[STATISTICS2,FD2,TD2,AD2]=Leach_Centralized(IniEng,NetSize,NoOfNode,NoOfRound,cluster_head_percentage); %% Centralized Leach
[STATISTICS3,FD3,TD3,AD3]=TSILEACH(IniEng,NetSize,NoOfNode,NoOfRound,cluster_head_percentage); %% Improved Leach IICT, BUET

r=0:NoOfRound;

plot(r,STATISTICS1.DEAD,‘k:’,r,STATISTICS2.DEAD,‘m-’,r,STATISTICS3.DEAD,‘r-.’,‘LineWidth’,2);
legend(‘LEACH’,‘LEACH-C’,‘TS-I-LEACH’,’ 位置’,‘东南’);
xlabel(‘x(time)’);
ylabel(‘死节点数目’);
title(‘随时间变化的死节点数’);

figure
plot(r,STATISTICS1.ALLIVE,‘k:’,r,STATISTICS2.ALLIVE,‘m-’,r,STATISTICS3.ALLIVE,‘r-.’,‘LineWidth’,2);
legend(‘LEACH’,‘LEACH-C’,‘TS-I-LEACH’);
xlabel(‘x(time)’);
ylabel(‘活节点数目’);
title(‘随时间变化的活节点数目’);

figure;
plot(r,STATISTICS1.PACKETS_TO_BS,‘k:’,r,STATISTICS2.PACKETS_TO_BS,‘m-’,r,STATISTICS3.PACKETS_TO_BS,‘r-.’,‘LineWidth’,2);
legend(‘LEACH’,‘LEACH-C’,‘TS-I-LEACH’,‘位置’,‘东南’);
xlabel(‘x(time)’);
ylabel(‘数据包数目’);
title(‘发送到接收节点的数据包数’);

figure;
plot(r,STATISTICS1.TotalEnergy,‘k:’,r,STATISTICS2.TotalEnergy,‘m-’,r,STATISTICS3.TotalEnergy,‘r-.’,‘LineWidth’,2);
xlabel(‘x(time)’);
ylabel(‘网络总能量 (Joule)’);
title(‘系统的总剩余能量 (J)’);

figure;
bargraph=[FD1,FD2,FD3;TD1,TD2,TD3;AD1,AD2,AD3];
bar(bargraph,‘group’);
legend(‘LEACH’,‘LEACH-C’,‘TS-I-LEACH’,‘位置’,‘西北’);
title(‘第一个节点死亡,第十个节点死亡,所有节点死亡的时间’);
xlabel(‘第一个节点死亡 第十个节点死亡 所有节点死亡的时间’);
ylabel(‘子弹数’);

⛄三、运行结果





⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]黄利晓,王晖,袁利永,曾令国.基于能量均衡高效WSN的LEACH协议改进算法[J].通信学报第38卷第Z2期

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【Leach协议】基于matlab leach+leach-c+TSI-Leach三种协议对比【含Matlab源码 2512期】相关推荐

  1. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  2. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

  3. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  4. 【Matlab水果蔬菜识别】形态学水果蔬菜识别【含GUI源码 919期】

    一.代码运行视频(哔哩哔哩) [Matlab水果蔬菜识别]形态学水果蔬菜识别[含GUI源码 919期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅. ...

  5. 【Matlab青草识别】形态学马唐草+牛筋草识别【含GUI源码 908期】

    一.代码运行视频(哔哩哔哩) [Matlab青草识别]形态学马唐草+牛筋草识别[含GUI源码 908期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  6. 【Matlab限速标志识别】形态学限速标志识别【含GUI源码 1142期】

    一.代码运行视频(哔哩哔哩) [Matlab限速标志识别]形态学限速标志识别[含GUI源码 1142期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  7. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  8. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  9. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  10. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

最新文章

  1. Vue中data和computed的区别
  2. 『机房工程』弱电必备技能培训PPT/值得您分享
  3. Boost:bimap双图property地图的测试程序
  4. 23种设计模式的有趣见解 .
  5. 模拟撞击_模玩资讯:EPOCH 汽车撞击测试用模拟假人与实验车辆
  6. windows远程连接ubuntu 黑屏_Windows跟Windows远程连接传输文件
  7. Chapter1-5_Speech_Recognition(Alignment of HMM, CTC and RNN-T)
  8. Kettle报错:Entry to update with following key could not be found
  9. Android 系统(11)---android 系统权限大全
  10. 数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现
  11. Android PM suspendresume
  12. Android Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
  13. 请千万不要在 JDK 7+ 中使用这个 JSON 包了!切记
  14. PDMS Pipeline Tool 教程(五):汇料属性设置
  15. unity连接mysql数据库-最新详细
  16. Android5 supersu,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
  17. 浪潮服务器内存故障怎么修复,浪潮GS客户端出现内存溢出和存储空间不足的问题说明和解决方案 | 浪潮888博客...
  18. 启用tls的情况下openvpn配置文件合并到ovpn文件
  19. 5.5 时间序列预测
  20. Java编写 输入一个字符串,请编写一个函数统计连续相同字符及其数量。例如,输入“aabbbbcccAB”,返回“a2b4c3 A1 B1”及5;

热门文章

  1. 百度地图api 点击标注后跳转页面
  2. wsus服务器无响应,WSUS的MMC无法连接服务器
  3. Apache中AllowOverride对性能的影响
  4. idea 设置快捷注释模板
  5. 阿小冷学计算机(11)
  6. 基于jquery框架实现以行的添加、上移、下移和删除操作
  7. 末日生存手游《文明重启》超强实战攻略,帮你苟到最后!
  8. css 让div悬浮,css实现div悬浮不动效果
  9. 写一篇关于赚钱的小红书笔记
  10. BATJ大厂测试人员必知的经典性能问题