- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武 汉 工 程 大 学
计算机科学与工程学院
《无线网络协议原理》实验报告
专业班级 2013网络工程1 实验地点 5号机房 学生学号 1305120411 指导教师 郑更生 学生姓名 何彬 实验时间 2015-10-28 实验项目 实验二:LEACH协议仿真实验 实验类别 操作性( ) 验证性() 设计性(√ ) 综合性( ) 其它( ) 实验目的及要求
(1)实验目的
通过此实验使学生加深理解leach成簇协议,分析算法优、缺点。
(2)实验要求
a) 编写簇头选举代码;
编写普通节点加入簇代码;
编写能量消耗代码;
和PEGASIS协议实验结果对比并分析原因。
尝试对节点初始能量不均匀情况改进簇头选举算法。
成 绩 评 定 表 类 别 评 分 标 准 分值 得分 合 计 上机表现 积极出勤、遵守纪律主动完成实验设计任务 30分 程序代码 比较规范、基本正确功能达到实验要求 30分 实验报告 及时递交、填写规范
内容完整、体现收获 40分 说明: 评阅教师: 日 期: 2015 年 月 日 实 验 内 容 实验内容:
编写WSN网络节点生成代码
编写簇头选举代码
编写普通节点加入簇代码
编写路由能量消耗代码
尝试对节点初始能量不均匀情况改进簇头选举算法(可选)
画出分簇效果图
和PEGASIS协议能量消耗性能对比并分析原因
实验准备:
1 了解并掌握matlab软件的基本操作
实验中会使用到的matlab函数Round():四舍五入取整函数
Plot():二维曲线绘图函数
2 掌握LEACH协议的基本类容,根据簇的划分以及簇头的选择编写代码
并得到仿真结果。
(1)设置区域范围、节点坐标、区域内节点数目、节点成为簇头概率以及各种能量和最大轮数的设定。
(2)利用rand()函数创建随机的传感器网络,并设定汇聚节点位置。
(3)根据节点能量是否大于零来判断节点是否死亡并在图中画出节点的位置,死亡的节点用红点表示,没有死亡的普通节点用“。”表示并用plot()函数画出
这些节点的曲线图。
(4)根据LEACH协议中簇头节点的选取要求选出簇头,根据簇头节点的坐标用
plot()函数在图上将簇头表示黑*,并计算簇头节点到汇聚节点的距离,将距
离与通信路径进行比较计算出各簇头的能量消耗。
(5)选取正常节点的相关簇头,在n个节点中选取出节点类型为N且能量大于
零的节点,计算这些节点到汇聚界定的距离,设定距离最小最小簇头数为1,
计算该节点与各簇头的距离,取最小距离的簇头节点为该节点簇头,并计算
出各普通节点的能量消散。
(6)用plot()函数画出各簇头节点和普通节点的划分图。
实验步骤:
一、代码编写
clear;
xm=100;
ym=100; %设置区域为100*100
sink.x=0.5*xm;
sink.y=0.5*ym; %汇聚节点坐标
n=100 %区域内节点数目
p=0.1; %节点成为簇头的概率
Eo=0.5; %节点初始能量
ETX=50*0.000000001; %发射单位报文损耗能量
ERX=50*0.000000001; %接收单位报文损耗能量
Efs=10*0.000000000001; %自由空间能量
Emp=0.0013*0.000000000001; %衰减空间能量
EDA=5*0.000000001; %多路径衰减能量
rmax=20 %最大的轮数
do=sqrt(Efs/Emp); %计算通信路径do
下面利用for循环语句和rand()函数在n个节点中随机生成普通节点类型的节点,并表示出它的坐标以及初始能量,普通类型节点用‘N’表示,
for i=1:1:n %随机生成普通节点类型的节点
S(i).xd= rand(1,1)*xm ;
S(i).yd= rand(1,1)*ym ;
S(i).G=0;//
S(i).type= N ;%普通节点类型用‘N’表示
S(i).E= Eo ;
End
定义汇聚节点的位置坐标
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
cluster=1;
利用for循环语句使每一个节点都没有簇头节点
for r=0:1:rmax
if(mod(r, round(1/p) )==0)
for i=1:1:n
S(i).G= 0 ;
en
文档评论(0)