Chapter 2: Teletraffic Engineering

Example 2.1, Page 25

In [2]:
#Variable declaration
LC=10.; #Lost calls
CC=380; #Carried calls

#Calculations
OC=LC+CC;  #Total offered calls
#Gos=Blocking probability=(number of Lost calls/Total number of offered calls)
Gos=LC/OC;

#Result
print 'The Gos during busy hour is %f \n '%Gos
The Gos during busy hour is 0.025641 
 

Example 2.2, Page 26

In [5]:
#Variable declaration
Ht=5; #Average holding time in seconds
PC=450; # Peg count for one hour period
OC=0;    # Overflow count

#Calculations&Results
# usage(Erlangs)=(peg count- overflow count)*Average holding time(in hrs)
U=(PC-OC)*(5./3600);   
print 'Usage = %.3f Erlangs'%U

# IN CCS
Uccs=U*36;  # usage in CCS
print '%.1f CCS'%Uccs

Ucs=Uccs *100;  #usage in call-seconds
print '%d call-seconds'%Ucs
Usage = 0.625 Erlangs
22.5 CCS
2250 call-seconds

Example 2.3, Page 27

In [8]:
#Variable declaration
B=0.05;  #Blocking(5%)
CL=3000.;  #Carried Load in CCS

#Calculations
#Offered Load=Carried Load/(1-Blocking);
OL=CL/(1-B);  #Offered Load in CCS

#Result
print 'Offered load is %d CCS'%OL
print 'Overflow is %d CCS'%((OL-CL))
Offered load is 3157 CCS
Overflow is 157 CCS

Example 2.4, Page 27

In [9]:
#Variable declaration
Ht=120;  #Holding time in seconds
CR=2.;  #call rate per hour

#Calculations
#Traffic Intensity(Erlangs) = call rate * Holding time(in hrs));
I=CR*Ht/3600; #Traffic Intensity

#Result
print 'Traffic Intensity is %.4f Erlangs = %.1f CCS \n'%(I,I*36);
Traffic Intensity is 0.0667 Erlangs = 2.4 CCS 

Example 2.5, Page 27

In [11]:
#Variable declaration
time=90.;  #in minutes
calls=10.;  #no of calls in 90mins

#Calculations
CR=calls/(time/60);    #call arrival rate in calls/hour
tavg=(60.+74+80+90+92+70+96+48+64+126)/10;    #average call holding time in sec per call
I= CR*(tavg/3600);     #traffic intensity in Erlangs

#Result
print 'Traffic Intensity is %.3f Erlangs = %.2f CCS \n '%(I,I*36)
Traffic Intensity is 0.148 Erlangs = 5.33 CCS 
 

Example 2.6, Page 28

In [14]:
#Variable declaration
time=8.;  #in hours
calls=11.;  #no of calls in 90mins period

#Calculations&Results
CR=calls/time;    #call arrival rate in calls/hour
tavg=(3+10.+7+10+5+5+1+5+15+34+5)/11;    #average call holding time in mins per call
I= CR*(tavg/60);     #traffic intensity in Erlangs
print 'Traffic Intensity during eight hour period is %.3f Erlangs = %.1f CCS \n'%(I,I*36);

#For Busy Hour i.e between 4:00PM and 5:00PM
CRB=2;       #call arrival rate during busy hour in calls/hour(from table 2.2)
tavgB=(34+5.)/2;  #average holding time during Busy Hour in mins/call (from table 2.2)
IB=CRB*(tavgB/60); #Traffic Intensity during Busy Hour
print 'Traffic Intensity during busy hour is %.2f Erlangs = %.1f CCS'%(IB,IB*36);
Traffic Intensity during eight hour period is 0.208 Erlangs = 7.5 CCS 

Traffic Intensity during busy hour is 0.65 Erlangs = 23.4 CCS

Example 2.7, Page 29

In [15]:
#Variable declaration
minutes=500.; #No of minutes used per month per user
Twork=0.9; #Traffic During Work day
TBH=0.1;  #Traffic during busy hour
Days=20;  #No of workdays in a month

#Calculations
#Avg BH usage per subscriber (in minutes) = minutes*Twork(TBH/Days);
Traffic=minutes*Twork*(TBH/Days);

#Result
print 'Traffic per user per BH is %.4f Erlangs \n'%(Traffic/60);
Traffic per user per BH is 0.0375 Erlangs 

Example 2.8, Page 29

In [16]:
#Variable declaration
minutes=500.; #No of minutes used per month per user
Twork=0.9; #Traffic During Work day
TBH=0.1;  #Traffic during busy hour
Days=20;  #No of workdays in a month
MeanHT=100;  #Mean holding time(in secs)

#Calculations
#Avg BH usage per subscriber (in minutes) = minutes*Twork(TBH/Days);
#BHCAs=traffic (in Erlangs) *3600/(meanHT)

Traffic=minutes*Twork*(TBH/Days);
BHCAs=(Traffic/60)*(3600/MeanHT);

#Result
print 'Average Busy Hour call attempts are %.2f'%BHCAs
Average Busy Hour call attempts are 1.35

Example 2.9, Page 35

In [18]:
#Variable declaration
Tpopu=200000;#Total population
SP=0.25; #subscriber penetration
HT1=100.;  #holding time for Mobile to Land line and vicecersa
c1=3;  #Avg calls/hr for Mobile to Land line and vicecersa
HT2=80.;  #For mobile to mobile
c2=4;   #For mobile to mobile
TMSC=1800;  #traffic one msc can hold
TrafDist=0.9 #Traffic distribution for Mobile to Land line and vicecersa

#Calculations
aM_L=c1*HT1/3600;  #Traffic Generated by Subscriber (M-L and  L-M).
aM_M=c2*HT2/3600;  #Traffic Generated by Subscriber (M-M).
WlessSub=SP*Tpopu;  #total wireless subscribers
TotalTraffic=WlessSub*TrafDist*aM_L+WlessSub*(1-TrafDist)*aM_M;
MSCreqd=TotalTraffic/TMSC;
if(MSCreqd-int(MSCreqd)>0):#for rounding of to next integer ef 2.33 to 3
    MSCreqd=MSCreqd+1;
     

#Result
print 'Total Traffic is %.1f Erlangs'%TotalTraffic;
print 'NO of MSCs Required are %d'%(int(MSCreqd))
Total Traffic is 4194.4 Erlangs
NO of MSCs Required are 3

Example 2.10, Page 37

In [23]:
#Variable declaration
Rlines=15000.;#Residential lines
Blines=80000.;#Business lines
PWElines=5000;#PBX, WATS, and Foreign Exchange (FX) lines
CR_R=2.;#Call rates for Rlines
CR_B=3.;# call rates for Blines
CR_PWE=10.;#call rates for PWElines
HT_R=140.;#average holding time for Rlines(sec)
HT_B=160.;#average holding time for Blines(sec)
HT_PWE=200.;#average holding time for PWE lines(sec)
Slines=100000.;# no of lines carried by switch
HD_ABS=1.5;# HD/ABS for the switch

#Calculations
percentR_lines=Rlines/Slines;
percentB_lines=Blines/Slines;
percentPWE_lines=PWElines/Slines;
CCSR=CR_R*HT_R/100;
CCSB=CR_B*HT_B/100;
CCSPWE=CR_PWE*HT_PWE/100;

CR=CR_R*percentR_lines+CR_B*percentB_lines+CR_PWE*percentPWE_lines;
print 'The call rate is %.1f calls per line \n '%CR
CCS=CCSR*percentR_lines+CCSB*percentB_lines+CCSPWE*percentPWE_lines;
AvgHTperline=CCS*100/CR;
ABS_BH_calls=CR*Slines;
ABS_BH_usage=CCS/36*Slines;
print 'Design cell capacity based on HD is %d calls \n'%(HD_ABS*ABS_BH_calls);
print 'DESIGN Erlangs based on HD is %d \n'%(round(HD_ABS*ABS_BH_usage)); 
The call rate is 3.2 calls per line 
 
Design cell capacity based on HD is 480000 calls 

DESIGN Erlangs based on HD is 21917 

Example 2.11, Page 43

In [27]:
#Variable declaration
maxcalls_hour=4000.;#maximum call per hour
avgHT=160.;#average holding time in sec
Gos=0.02;

#Calculations&Results
A=maxcalls_hour*avgHT/3600; #offered load
print 'Offered load A = %.2f Erlangs \n'%A
#Refering Appendix A i.e Erlang B table 
print "For calculated Offered load and referring Erlang B table we get Service channels as 182 giving 168.3 Erlangs at 2% blocking"
#Incorrect answer in textbook
Offered load A = 177.78 Erlangs 

For calculated Offered load and referring Erlang B table we get Service channels as 182 giving 168.3 Erlangs at 2% blocking

Example 2.12, Page 43

In [29]:
#Variable declaration
channels=50;
blocking=0.02;
HT=120;#average holding time inm sec
BHcall=1.2;# in calls  per hour

#Calculations
#Refering Erlang B table in appendix A, For 50 channels at 2% blocking, the offered load=40.26 Erlangs.
A=40.26;
B=A*(1-0.02); #carried load
Avgtraffic_user=BHcall*HT/3600;
No_users=B/Avgtraffic_user;

#Result
print 'NO of mobile subscribers supported are %d \n'%(round(No_users))
NO of mobile subscribers supported are 986