#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
#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
#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))
#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);
#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)
#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);
#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);
#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
#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))
#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));
#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
#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))