%初始化
N_frame=10
N_slot=6
%节点的模式
last_patt_node1=0;
last_patt_node2=0;
cur_patt_num_node1=1 %模式的数目
cur_patt_num_node2=1
cur_patt_node1=1; %初始模式
cur_patt_node2=1;
cur_patternbit_node1=1;
cur_patternbit_node2=1;
%节点的发送情况
flag_send_node1=0;
flag_receive_node2=0;
%保存结果的变量
suc_node1=0;
unsuc_node1=0;
energy_node1=0;
Buf_node1=0
%还需要根据需要定义变量
%energy_node2=0;
%delay_
%---------进入仿真过程-----------------
for i=1:1:N_frame
for j=1:1:N_slot
j
if flag_send_node1==1
last_patt_node1=1;
elseif (cur_patt_node1==1)&&(flag_send_node1==0)
cur_patt_num_node1=cur_patt_num_node1+1;
last_patt_node1=[0 cur_patt_node1];
elseif cur_patt_node1==[01] & flag_send_node1==0
cur_patt_num_node1=cur_patt_num_node1+1;
last_patt_node1=[0 cur_patt_node1];
elseif cur_patt_node1==[001] & flag_send_node1==0
cur_patt_num_node1=cur_patt_num_node1+2;
last_patt_node1=[00 cur_patt_node1];
elseif cur_patt_node1==[00001] & flag_send_node1==0
cur_patt_num_node1=cur_patt_num_node1+1;
last_patt_node1=[0 cur_patt_node1];
elseif cur_patt_node1==[000001] & flag_send_node1==0
cur_patt_num_node1=cur_patt_num_node1;
last_patt_node1=cur_patt_node1;
%更新节点模式,patt_node1变了
last_patt_node1=cur_patt_node1;
cur_patt_node1
last_patt_node1
end
if flag_receive_node2==1
last_patt_node2=1;
elseif cur_patt_node2==1 & flag_receive_node2==0
last_patt_node2=[0 cur_patt_node2];
elseif cur_patt_node2==[01] & flag_receive_node2==0
last_patt_node2=[0 cur_patt_node2];
elseif cur_patt_node2==[001] & flag_receive_node2==0
last_patt_node2=[00 cur_patt_node2];
elseif cur_patt_node2==[00001] & flag_receive_node2==0
last_patt_node2=[0 cur_patt_node2];
elseif cur_patt_node2==[000001] & flag_receive_node2==0
last_patt_node2=cur_patt_node2;
end
%更新节点模式,patt_node2变了
last_patt_node2=cur_patt_node2;
cur_patt_node2
last_patt_node2
if (flag_send_node1==1)&&(cur_patternbit_node1==0)
Buf_node1=Buf_node1+1;
Buf_node1
end
%得到当前slot下收发节点的模式bit
k=mod(j,cur_patt_num_node1);
if j<=cur_patt_num_node1
cur_patternbit_node1=cur_patt_node1(j);
elseif 0==k & j>cur_patt_num_node1
cur_patternbit_node1=cur_patt_node1(cur_patt_num_node1);
else
cur_patternbit_node1=cur_patt_node1(k);
end
k=mod(j,cur_patt_num_node2);
if j<=cur_patt_num_node2
cur_patternbit_node2=cur_patt_node2(j);
elseif 0==k & j>cur_patt_num_node2
cur_patternbit_node2=cur_patt_node2(cur_patt_num_node2);
else
cur_patternbit_node2=cur_patt_node2(k);
end
%统计结果
if (1==Buf_node1)&&(1==cur_patternbit_node2)
%统计成功发送的结果
suc_node1=suc_node1+1;
energy_node1=energy_node1+1;
suc_node1
energy_node1
else
%统计未成功发送的结果
unsuc_node1=unsuc_node1+1;
unsuc_node1
end
end
%随机产生packet,放在node1内。
if (rand(1) > 0.8)
Buf_node1=1;
flag_send_node1=1;
else
Buf_node1=0;
end
i
end