📄 dhrma.m
字号:
slot=10; %时隙数
length=slot+1;
minislot=10; %其它微时隙数
prop0=0.8; %有业务节点竞争微时隙0的概率
prop1=0.5; %有业务节点竞争其它微时隙的概率
t1=1; %一个突发平均持续时间,1s
lengofr=0.0444; %一个帧长,单位秒
lengopa=4; %一个业务分组长,单位kbit
profin=1-exp(-lengofr/t1); %一个话音业务在一帧内结束的概率
node=15;
loopnum=20;
a=zeros(length,length); %各矩阵初始化
b=zeros(length,1);
p=zeros(length,1);
lan=zeros(1,loopnum);
x=zeros(1,length);
z=zeros(1,length);
throughput=zeros(1,loopnum);
drop=zeros(1,loopnum);
for i=1:loopnum
landa=0.05*i;
lan(i)=landa;
notraf=exp(-landa);
traf=1-notraf; %节点有业务的概率
suc0=prop0;
suc1=0;
for k=1:minislot
suc1=suc1+(1-prop0)*((1-prop1)^(k-1))*prop1;
end
succ=suc0+suc1; %有业务节点竞争某个空闲时隙成功概率
for n=1:length %对状态转移矩阵a第一行赋值
sum1=0;
for k=0:node
sum1=sum1+groups(node,k)*(notraf^(node-k))*((traf*(1-succ))^k);
end
a(1,n)=leav(n-1,n-1,profin)*sum1;
end
for m=2:(length-1) %n表示当前状态,m表示下一个状态,给矩阵a赋值
for n=1:length
if m>n
for c=0:(n-1)
sum1=0;
for r=(m-n+c):node
sum2=0;
for k=0:(m-n+c-1)
sum2=sum2+(r-k)*succ*((1-succ)^(r-k-1));
end
sum1=sum1+(notraf^(node-r))*(traf^r)*groups(r,m-n+c)*sum2;
end
a(m,n)=a(m,n)+leav(n-1,c,profin)*sum1;
end
else
sum3=0;
for k=0:node
sum3=groups(node,k)*(notraf^(node-k))*((traf*(1-succ))^k);
end
first=leav(n-1,n-m,profin)*sum3;
second=0;
for c=(n-m+1):(n-1)
sum1=0;
for r=(n-m+c):node
sum4=0;
for k=0:(m-n+r-1)
sum4=sum4+(r-k)*succ*((1-succ)^(r-k-1));
end
sum1=sum1+(notraf^(node-r))*(traf^r)*groups(r,m-n+c)*sum4;
end
second=second+leav(n-1,c,profin)*sum1;
end
a(m,n)=first+second;
end
end
end
for m=1:(length-1)
for n=1:(length-1)
if m==n
a(m,n)=a(m,n)-1;
end
end
end
for n=1:length
a(length,n)=1;
b(n,1)=0;
end
b(length,1)=1;
a
p=a\b; %求系统每个状态的概率
%求解吞吐量
for h=0:(length-2)
sum5=0;
for k=1:(slot-h)
sum6=0;
for r=k:node
sum1=0;
for u=0:(k-1)
sum1=sum1+(r-u)*suc0*((1-succ)^(r-u-1));
end
sum6=sum6+(notraf^(node-r))*(traf^r)*groups(r,k);
end
sum5=sum5+k*sum6;
end
x(h+1)=h+sum5;
end
x(length)=slot;
throughput(i)=x*p*lengopa/lengofr;
%求丢包率
for h=0:(length-2)
for k=1:(slot-h)
sum8=0;
for r=k:node
sum1=0;
for u=0:(k-1)
sum1=sum1+(r-u)*suc0*((1-succ)^(node-r-1));
end
sum8=sum8+(notraf^(node-r))*(traf^r)*(r-k*groups(r,k)*sum1)/(r*(notraf^(node-r))*(traf^r)+h);
end
z(h+1)==z(h+1)+sum8;
end
end
for r=1:node
z(length)=z(length)+r*(notraf^(node-r))*(traf^r)/((notraf^(node-r))*(traf^r)+slot);
end
drop(i)=z*p;
end
subplot(1,2,1);
plot(lan,throughput);
subplot(1,2,2);
plot(lan,drop);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -