資源簡介
絕對可以運行,無線傳感器網絡中經典的分簇算法leach在matlab中的實現。我自己運行過。
代碼片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?SEP:?A?Stable?Election?Protocol?for?clustered????????????????????????%
%??????heterogeneous?wireless?sensor?networks??????????????????????????%
%?(c)?Georgios?Smaragdakis?????????????????????????????????????????????%
%?WING?group?Computer?Science?Department?Boston?University???????????%
%?You?can?find?full?documentation?and?related?information?at:??????????%
%?http://csr.bu.edu/sep????????????????????????????????????????????????%
%?To?report?your?comment?or?any?bug?please?send?e-mail?to:?????????????%
%?gsmaragd@cs.bu.edu???????????????????????????????????????????????????%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?This?is?the?LEACH?[1]?code?we?have?used.?????????????????????????????%
%?The?same?code?can?be?used?for?FAIR?if?m=1????????????????????????????%
%?[1]?W.R.Heinzelman?A.P.Chandrakasan?and?H.Balakrishnan?????????????%
%?????“An?application-specific?protocol?architecture?for?wireless??????%?
%??????microsensor?networks“???????????????????????????????????????????%?
%?????IEEE?Transactions?on?Wireless?Communications?1(4):660-6702002??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?PARAMETERS?%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Field?Dimensions?-?x?and?y?maximum?(in?meters)
xm?=?100;
ym?=?100;
%x?and?y?Coordinates?of?the?Sink
%sink.x?=0.5?*?xm;
%sink.y?=?ym?+?50;
sink.x=50;
sink.y=175;
%sink.x=0.5*xm;
%sink.y=0.5*ym;
%Number?of?Nodes?in?the?field
n?=?100
%Optimal?Election?Probability?of?a?node?to?become?cluster?head
p=0.05;
packetLength?=6400;%數據包長度??
ctrPacketLength?=?200;%控制包長度
%Energy?Model?(all?values?in?Joules)
%Initial?Energy?
Eo?=?0.5;
%Eelec=Etx=Erx
ETX=50*0.000000001;
ERX=50*0.000000001;
%Transmit?Amplifier?types
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
%Data?Aggregation?Energy
EDA=5*0.000000001;
INFINITY?=?999999999999999;
%maximum?number?of?rounds
rmax=9999
%%%%%%%%%%%%%%%%%%%%%%%%%?END?OF?PARAMETERS?%%%%%%%%%%%%%%%%%%%%%%%%
%Computation?of?do
do=sqrt(Efs/Emp);
%Creation?of?the?random?Sensor?Network
figure(1);
for?i=1:1:n
????S(i).xd=rand(11)*xm;%坐標
????XR(i)=S(i).xd;
????S(i).yd=rand(11)*ym;
????YR(i)=S(i).yd;
????S(i).G=0;
????%initially?there?are?no?cluster?heads?only?nodes
????S(i).type=‘N‘;%普通節點
????S(i).E=Eo;
????S(i).ENERGY=0;
????%?hold?on;
end
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
????????????
%First?Iteration
figure(1);
%counter?for?CHs
countCHs=0;
%counter?for?CHs?per?round
rcountCHs=0;
cluster=1;
countCHs;
rcountCHs=rcountCHs+countCHs;
flag_first_dead=0;?
for?r=0:1:rmax?%主循環每次1輪
??r;
??%Operation?for?epoch
??if(mod(r?round(1/p))==0)
?????for?i=1:1:n
????????S(i).G=0;
????????S(i).cl=0;
?????end
??end
hold?off;
%Number?of?dead?nodes
dead=0;
%counte
評論
共有 條評論