时隙Aloha及伪贝叶斯算法性能仿真设计.docx
- 文档编号:9060982
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:14
- 大小:132.30KB
时隙Aloha及伪贝叶斯算法性能仿真设计.docx
《时隙Aloha及伪贝叶斯算法性能仿真设计.docx》由会员分享,可在线阅读,更多相关《时隙Aloha及伪贝叶斯算法性能仿真设计.docx(14页珍藏版)》请在冰豆网上搜索。
时隙Aloha及伪贝叶斯算法性能仿真设计
泊松过程的生成及其统计分析
实验报告
班级:
硕2035班
:
吕奇
学号:
3112091020
一、实验题目
设一个时隙Aloha系统的时隙长度为1,所有节点的数据等长且等于时隙长度。
网络中的节点数为m,各节点数据包以泊松过程到达。
1、假设每个节点的数据包到达强度均为λ/m,在不同的λ下,使用计算机仿真时隙Aloha系统数据包传送的成功功率,绘制呼入强度和成功概率的曲线,与理论值进行对照。
注意:
节点个数m要足够多。
2、选取合理的等待重传的节点在每一个时刻重传的概率
、每个节点有新数据包到达的概率
,以及节点数m,采用延时的下界,仿真时隙Aloha系统数据传输过程,统计在不同积压节点数n的情况下,到达率及离开率
,绘制到达率和离开率随n的分布情况,和理论值进行对照。
3、仿真时隙Aloha系统下的伪贝叶斯算法,通过仿真结果验证在n的估计误差大情况下的收敛特性及到达率小于1/e下的稳定性。
二、实验过程
1、计算机仿真时隙Aloha系统数据包传送的成功功率,绘制呼入强度和成功概率的曲线,与理论值进行对照。
由泊松过程的定义:
,从而可以知道在一个时隙中有一个数据包到达的概率为
,对于每个节点而言,
,仿真时,我们认为每个节点每个时隙最多只会到达一个数据包,故仿真时可以以一个时隙为步长,每个节点每个时隙到达一个数据包的概率就为p=
,由此,对每个节点生成一组随机数,当此随机数小于等于p,则表示有一个数据包到达,把此随机数用1代替,反之则没有数据包到达,把此随机数用0代替,这样可以得到每个节点在某个时刻是否有数据包到达的矩阵,然后把每组矩阵相加,得到某一时刻总的到达的数据包,当某一时刻为1时,总共只有一个数据包到达,则可以成功传送,对于每个给定的λ,取多个时隙作多次重复试验,则可以得到这多次重复试验中成功传送的次数,用成功传送的次数除以总的重复试验次数,就是成功传送的概率。
对不同λ值,用上述方法,就可以得到不同λ值对应的成功传送的概率。
此外,对于给定的λ,理论成功传送的概率为
,对于时隙长度1有
。
下面是m=3000,取5000个时隙点,λ在[0,3]间对应的成功传送的概率:
图1不同λ下成功传送的概率
程序:
clc
clear
closeall
m=3000;
t=5000;
z=[];
lilun=[];
fork=0:
0.1:
3
p=k/m;
x=rand(m,t);
fori=1:
m
forj=1:
t
ifx(i,j)<=p
x(i,j)=1;
else
x(i,j)=0;
end
end
end
y=(sum(x));
z=[z,sum(y==1)/t];
lilun=[lilun,k*exp(-k)];
end
k=0:
0.1:
3;
plot(k,z,'r*')
holdon
plot(k,lilun)
2、绘制到达率和离开率随n的分布情况,和理论值进行对照。
为了方便叙述,作如下假设:
qr:
等待重传的节点在每一时刻重传数据包的概率;
m:
系统总的节点数;
n:
每个时隙开始时等待重传的节点数;
qa:
每个发送节点有数据包到达的概率。
实验思路:
(1)为了简化程序,使用matlab自带的二项分布生成函数binornd来模拟数据包的到达和离开。
由于题目说明使用延时的下界,则无缓冲,每个节点最多容纳一个数据包,多则丢弃。
实验中要用到两个矩阵,一个是u,用来模拟n个等待重传的数据包以概率qr重传,所以这个矩阵的前n项可以用binornd(1,qr,1,n)来表示,即u(1:
n)=binornd(1,qr,1,n),后面m-n项为0,即u(n+1:
m)=0,这就可以模拟有n个等待重传的节点以概率qr重新发送。
同理,用矩阵l来模拟m-n个空闲节点新数据包到达的情况,容易得到l(1:
n)=0和l(n+1:
m)=binornd(1,qa,1,m-n),D(n)=sum(l)得到的则是新到达数据包的个数。
(2)将矩阵u和l相加得到矩阵y,则y表示的是每个节点是否有数据包发送,如果y只有一项为1,即sum(y)==1,则表示有数据发送成功,此时可以用Ns来计数发送成功的次数,否则则是空闲或者碰撞。
(3)对每一个等待重传的节点数n,我们做M次试验,每次试验,对新到达的数据包求和,即:
D(n)=D(n)+sum(l),对发送成功的次数记数,即:
Ns(n)=Ns(n)+1。
最后则有一个时隙新到达的数据包的平均值为D=D/M,一个时隙平均传输数据包的个数为Ps=Ns/M。
此外,为了使统计值与理论值比较接近,M的取值要比较大。
(4)理论值:
D=(m-n)qa,Ps=G(n)exp(-G(n)),其中G(n)=(m-n)qa+n*qr=D+n*qr。
(5)本实验过程中qa和qr的选择对实验的效果影响较大,为了使传送成功的概率最大,总的到达强度取1/e,通过实验,qr在[0.01,0.1]可以看到比较好的效果,在这个区别里,改变qr,可以较清楚地看到qr的改变对到达率和离开率的影响。
下面是qr=0.06、qr=0.08和qr=0.04的实验结果:
图2qr=0.06时不同等待重传节点数n下的到达率和离开率
图3qr=0.08时不同等待重传节点数n下的到达率和离开率
图4qr=0.04时不同等待重传节点数n下的到达率和离开率
图中直线为到达率,曲线为离开率,星形为实验值,连续线为理论值,首先可以看到实验值和理论值的吻合程度很好,这需要重复实验的次数M较大;第二,我们可以看到重传概率qr增加,曲线会向左压缩,导致到达率和离开率的第二个交叉点向左移,这样很小的n值都可能使系统进入不稳定区域,到达不稳定平衡点的可能性增加;第三,如果qr减小,曲线向右扩,从而导致第二个交叉点向右移,扩到一定程度后,实际系统将仅有一个稳定点,如图4所示。
程序:
clc
clear
closeall
lamida=1/exp
(1);
m=100;qa=lamida/m;qr=0.04;Ns=zeros(1,m+1);D=zeros(1,m+1);D1=zeros(1,m+1);Ps1=zeros(1,m+1);M=20000;
forn=0:
m
fori=1:
M
u(1:
n)=binornd(1,qr,1,n);u(n+1:
m)=0;%n¸öµÈ´ýÖØ´«µÄ½Úµã
l(1:
n)=0;l(n+1:
m)=binornd(1,qa,1,m-n);%m-n¸ö¿ÕÏнڵã
D(n+1)=D(n+1)+sum(l);%ÓÉÓÚ¾ØÕóûÓеÚ0Ï×öµ÷Õû
y=u+l;%ËùÓнڵãÊÇ·ñÓÐÊý¾Ý°üµÄ¾ØÕó±íʾ
ifsum(y)==1%´«Ëͳɹ¦
Ns(n+1)=Ns(n+1)+1;
else
Ns(n+1)=Ns(n+1);%¿ÕÏлòÕßÅöײ
end
end
D1(n+1)=(m-n)*qa;
G(n+1)=D1(n+1)+n*qr;
Ps1(n+1)=G(n+1)*exp(-G(n+1));
end
Ps=Ns/M;
D=D/M;
t=0:
m;
plot(t,Ps,'r*')
holdon
plot(t,Ps1,'r')
holdon
plot(t,D,'*')
holdon
plot(t,D1)
3、仿真时隙Aloha系统下的伪贝叶斯算法,通过仿真结果验证在n的估计误差大情况下的收敛特性及到达率小于1/e下的稳定性。
实验思路:
由于伪贝叶斯算法中,当节点有新数据包到达时,不是立刻发送,而是仿照有数据包等待重传的节点一样,先对该数据包进行缓存,在下一时隙也是以概率qr进行传输,可以将实验过程2中的思路稍做修改即可:
(1)对于矩阵u,如果等待重传的节点数为n,则将矩阵u的前n项置为1,后m-n项置为0,而对于矩阵l则和实验过程2一样,前n项置为0,后m-n项用二项分布生成函数来模拟,到达的概率为qa。
(2)将u和l相加得到矩阵y,则表示的是下一时隙每个节点是否有数据发送的矩阵,y中1的个数就是下一时隙等待重传的节点的个数total,这些等待重传的节点将分别以概率qr发送,此时可以用二项分布生成函数来模拟其发送,即leave=binornd(1,qr,1,total),此时,如果leave矩阵只有一个为1,其他都为0,则可以成功发送,从而将下一时隙等待重传的节点数减1。
(3)根据leave矩阵,可以得到等待重传的节点发送情况,只有一个1则发送成功,全是0则空闲,多于一个1则是碰撞,从而可以根据伪贝叶斯算法做下一次等待重传节点数的预测,其表达式为:
。
下面是实验结果:
a)验证在n的估计误差大情况下的收敛特性
i.初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,
,时隙数为N=2000。
图5初始估计值比实际值大的收敛情况
ii.初始等待重传的节点数n=350,初始估计的等待重传的节点数n_t=200,m=2000,
,时隙数为N=2000。
图6初始估计值比实际值小的收敛情况
iii.初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,
,时隙数为N=2000。
图7到达强度变大,初始估计值比实际值小的收敛情况
从图中可以看到,不管估计的初始等待重传的节点数比实际值大还是小,估计值都将收敛于实际值,当估计值远大于实际值时,重传的概率qr较小,故系统空闲的概率较大,成功传输的概率较大,故估计值会迅速减小,从而趋于实际值;当估计值比实际值小时,重传的概率qr较大,故系统碰撞的概率较大,故估计值会迅速增大,从而趋于实际值。
此外,对比图5和图7,可以看出,当到达强度增大时,收敛速度变慢,分析原因为,如果估计值和实际值相等,则qr=1/n,G(n)=1,达到最大成功传输的概率1/e,此时D(n)=λ-1/e,当λ<1/e时,D(n)<0,而且λ越小,D(n)负的越大,故收敛越快。
b)稳定性验证
初始等待重传的节点数n=50,初始估计的等待重传的节点数n_t=200,m=2000,时隙数为N=2000,图8是
和
时的稳定性对比图。
从图8中可以看到,当
时,系统的稳定性就无法保证,只有
时,伪贝叶斯算法才是稳定的。
图8稳定性验证
程序:
clc
clear
closeall
lamida=1/exp
(1)*0.6;
n=50;n_t=200;N=2000;n1=n;n1_t=n_t;m=2000;qa=lamida/m;
forj=1:
N
qr=min(1,1/n1_t);
n=n1;
n_t=n1_t;%n_tºÍn1_t·Ö±ðÊÇÊǵÚjºÍj+1ʱ϶µÄÔ¤²âÖµ
%·ÂÕæ
u(1:
n)=1;u(n+1:
m)=0;%n¸öµÈ´ýÖØ´«µÄ½Úµã
l(1:
n)=0;l(n+1:
m)=binornd(1,qa,1,m-n);%m-n¸ö¿ÕÏнڵã
y=u+l;%ËùÓнڵãÊÇ·ñÓÐÊý¾Ý°üµÄ¾ØÕó±íʾ
total=length(find(y==1));%ÓÐÊý¾Ý´«Ë͵ĽڵãÊý
leave=binornd(1,qr,1,total);%ÿ¸ö½ÚµãÒÔ¸ÅÂÊqr´«ËÍÊý¾Ý
ifsum(leave)==1%´«Ëͳɹ¦
n1=total-1;
else
n1=total;%¿ÕÏлòÕßÅöײ
end
N1(j)=n1;%ÏÂһʱ϶ʵ¼ÊµÈ´ýÖØ´«µÄ½ÚµãÊý
%Ô¤²â
ifsum(leave)==1||sum(leave)==0
n1_t=max(lamida,(lamida+n_t-1));%¿ÕÏлò´«Ëͳɹ¦
else
n1_t=n_t+lamida+(exp
(1)-2)^(-1);%Åöײ
end
N1_t(j)=n1_t;%ÏÂһʱ϶Ԥ²âµÄµÈ´ýÖØ´«µÄ½ÚµãÊý
end
plot(1:
N,N1,'b');
holdon;
plot(1:
N,N1_t,'r');
holdon;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时隙 Aloha 伪贝叶斯 算法 性能 仿真 设计