⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pmac_.m

📁 无线传感器网络MAC协议研究中
💻 M
字号:
%初始化
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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -