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

📄 ble_csma_test.m

📁 MATSNL is a package of MATLAB M-files for computing wireless sensor node lifetime/power budget and s
💻 M
字号:
clear;% Unit time for random backoffunit_backoff=1*(10^-3); % (1) msec% Probability of Idle channel upon clear channel accessementch_idle_prob=0.5;ch_busy_prob=1-ch_idle_prob;avg_sample=100000;for h=1:15    % Maximum number of random backoff for channel busy     max_backoff_num=h;    P(h)=max_backoff_num;    for u=1:avg_sample        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        %Compute thoretical listening time        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                if ch_idle_prob~=0.5        A=2*(1-(2*ch_busy_prob)^max_backoff_num)...            *(1-ch_busy_prob)/(1-2*ch_busy_prob)-(1-(ch_busy_prob)^max_backoff_num);        B=(ch_busy_prob^max_backoff_num)*(2^max_backoff_num-1);        % Theoretical avg_listen_delay        avg_listen_delay=unit_backoff*(A+B);        else            avg_listen_delay=unit_backoff*((max_backoff_num-1)+(0.5^(max_backoff_num))*(max_backoff_num+1) );                    end        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        % Simulation        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        % Simulation avg_listen_delay        avg_listen_delay_simul=0;        % Length of backoff for each trial        len_backoff=0;        backoff_listen_energy=0;        Is_channel_IDLE=0;        m=1;        i=1;        while (Is_channel_IDLE==0)            % Binary Exponentail Backoff             len_backoff=unit_backoff*uniform_gen(0,2^m);            len_backoff_log(i)=len_backoff;            i=i+1;            % Update            avg_listen_delay_simul=avg_listen_delay_simul+len_backoff;            % Channel access (Busy or Idle)            Is_channel_IDLE=bern_gen(ch_idle_prob);            m=m+1;            % If number of backoff exceed the maximum number of backoff,            % then stop and report channel failure            if(m> max_backoff_num)                break;            end        end        avg_listen_delay_simul_log(u)=avg_listen_delay_simul;    end    disp(['simul: ',num2str(mean(avg_listen_delay_simul_log))]);    disp(['thy: ',num2str(avg_listen_delay)]);    mean_num_thy(h)=avg_listen_delay;    mean_num_sim(h)=mean(avg_listen_delay_simul_log);    mean_num_std(h)=std(avg_listen_delay_simul_log);    U(h)=max(avg_listen_delay_simul_log);    L(h)=min(avg_listen_delay_simul_log);endh2=plot( (P),mean_num_sim,'b',(P),mean_num_thy,'.-r');set(gca,'FontSize',18);xlabel('The maximum number of backoff, P');ylabel('Average listening delay, L(sec)');% h1=errorbar((P),mean_num_sim, L,U,'+');%  hold on;%  h2=plot( (P),mean_num_sim);% set(gca,'FontSize',18);% xlabel('The maximum number of backoff, P');% ylabel('Average listening delay, L(sec)');

⌨️ 快捷键说明

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