📄 binary_exponential_baqkoff_csma_simul.m
字号:
clear;% Unit time for random backoffunit_backoff=1*(10^-3); % (1) msecfor h=1:10max_backoff_num=2*h;ch_idle_prob=0.3;for u=1:20000% Probability of Idle channel upon clear channel accessementch_busy_prob=1-platform.ch_idle_prob;% Maximum number of random backoff for channel busyA=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);avg_listen_delay=platform.unit_backoff*(A+B);avg_listen_delay_simul=0;len_backoff=0;backoff_listen_energy=0;Is_channel_IDLE=0;m=1;i=1;while (Is_channel_IDLE==0) len_backoff=unit_backoff*uniform_gen(0,2^m);len_backoff_log(i)=len_backoff;i=i+1; avg_listen_delay_simul=avg_listen_delay_simul+len_backoff; Is_channel_IDLE=bern_gen(ch_idle_prob); m=m+1; if(m> max_backoff_num) break; endendavg_listen_delay_simul=avg_listen_delay_simul; avg_listen_delay_simul_log(u)=avg_listen_delay_simul;% disp(['simul: ',num2str(platform.avg_listen_delay_simul)]);% disp(['thy: ',num2str(platform.avg_listen_delay)]);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(h)=mean(avg_listen_delay_simul_log);A_log(h)=A;endplot(mean_num);hold on;plot(mean_num_thy,'r');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -