Generation of Integrated (ISDN) traffic [Matlab]
clc;
clear
all;
use=input('Enter the
Number of users: ');
ts=input('Enter the
Number of Time Slots: ');
on=0.35;
voiceuser=0;
datauser=0;
voipuser=0;
ton=zeros(use,ts);
n=ton;
for
i=1:use
for
j=1:ts
ton(i,:)=poissrnd((on*10),1,ts);
if
(ton(i,j)>=3.5)
n(i,j)=1;
end
end
end
userprob=randint(1,use,[1,10]);
useriden=ones(1,use);
for
i=1:use
if
(userprob(i)>=1 & userprob<=5)
useriden(i)=1;
voiceuser=voiceuser+1;
elseif
(userprob(i)>5 & userprob(i)<=8)
useriden(i)=2;
voipuser=voipuser+1;
else
useriden(i)=3;
datauser=datauser+1;
end
end
newuseriden=sort(useriden);
isdn=64000*n;
test=randint(voipuser,ts,[1,1000]);
for
i=voiceuser+1:voipuser+voiceuser
for
j=1:ts
if
n(i,j)==1
if
test(i-voiceuser,j)>=1 & test(i-voiceuser,j)<=800
isdn(i,j)=64000;
else
isdn(i,j)=384000;
end
end
end
end
test1=randint(datauser,ts,[1,1000]);
for
i=voiceuser+voipuser+1:use
for
j=1:ts
if
n(i,j)==1
if
test1(i-(voiceuser+voipuser),j)>=1 &
test1(i-(voiceuser+voipuser),j)<=800
isdn(i,j)=64000;
elseif
test1(i-(voiceuser+voipuser),j)>800 &
test1(i-(voiceuser+voipuser),j)<=900
isdn(i,j)=128000;
elseif
test1(i-(voiceuser+voipuser),j)>900 &
test1(i-(voiceuser+voipuser),j)<=950
isdn(i,j)=256000;
else
isdn(i,j)=512000;
end
end
end
end
%Time
Slots Vs Bandwidth
d=sum(isdn);
figure(1);
bar(d);
xlabel('Time
Slots');
ylabel('Bandwidth(bps)');
%Time
Slots Vs Error Rate
e=zeros(1,ts);
bm=1984000;
for
i=1:ts
if
d(i)>bm
e(i)=d(i)-bm;
end
end
figure(2);
bar(e);
xlabel('Time
Slots');
ylabel('Error
Rate(bps)');
buff=0;
newbw=1984000+buff;
prisdn=isdn(1:voiceuser,:);
voipsort=isdn(voiceuser+1:voiceuser+voipuser,:);
prisdn(voiceuser+1:voiceuser+voipuser,:)=sort(voipsort,1);
datasort=isdn(voiceuser+voipuser+1:use,:);
prisdn(voiceuser+voipuser+1:use,:)=sort(datasort,1);
%To Find
How many users go unserved with or without buffer?
unservedvoice=zeros(1,ts);
unservedvoip=zeros(1,ts);
unserveddata=zeros(1,ts);
for
i=1:ts
j=0;
bwalloc=0;
while
(bwalloc<=newbw & j
j=j+1;
bwalloc=bwalloc+prisdn(j,i);
end
ch=j;
if
ch
unservedvoice(i)=voiceuser-ch;
unservedvoip(i)=voipuser;
unserveddata(i)=datauser;
elseif
ch>=(voiceuser) & ch<(voiceuser+voipuser)
unservedvoip(i)=voiceuser+voipuser-ch;
unserveddata(i)=datauser;
elseif
ch>=(voipuser+voiceuser) & ch
unserveddata(i)=use-ch;
end
end
figure(3);
bar(unservedvoice);
xlabel('Time
Slot');
ylabel('Unserved
Voice User');
figure(4);
bar(unservedvoip);
xlabel('Time
Slot');
ylabel('Unserved
VOIP User');
figure(5);
bar(unserveddata);
xlabel('Time
Slot');
ylabel('Unserved
Data User');
No comments:
Post a Comment