diff options
Diffstat (limited to 'sample_notebooks/VivekMaindola/Chap3.ipynb')
-rw-r--r-- | sample_notebooks/VivekMaindola/Chap3.ipynb | 618 |
1 files changed, 618 insertions, 0 deletions
diff --git a/sample_notebooks/VivekMaindola/Chap3.ipynb b/sample_notebooks/VivekMaindola/Chap3.ipynb new file mode 100644 index 00000000..0865879b --- /dev/null +++ b/sample_notebooks/VivekMaindola/Chap3.ipynb @@ -0,0 +1,618 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No.3 : The cellular concept system design fundamentals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.1 Page No.61" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " The number of channels available per cell for 4-cell reuse system = 165 channels\n", + "\n", + " One control channel and 160 voice channels would be assigned to each cell.\n", + "\n", + " \n", + " The number of channels available per cell for 7-cell reuse system = 95 channels\n", + "\n", + " Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\n", + "\n", + " \n", + " The number of channels available per cell for 12-cell reuse system = 55 channels\n", + "\n", + " Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\n" + ] + } + ], + "source": [ + "from math import ceil\n", + "# To compute the number of channels available per cell for a)four-cell reuse system a)seven-cell reuse system a)12-cell reuse system\n", + "\n", + "# Given data\n", + "B=33*10**6# # Total bandwidth allocated to particular FDD system in Hz\n", + "Bc=25*10**3# # Bandwidth per channel in Hz\n", + "Nc=2# # Number of simplex channels\n", + "Bc=Bc*Nc# # Channel bandwidth in Hz\n", + "\n", + "Ntotal=B/Bc# # Total number of channels\n", + "\n", + "#a) To compute the number of channels available per cell for four-cell reuse system\n", + "N=4# # frequency reuse factor\n", + "chpercell=Ntotal/N# # number of channels available per cell for four-cell reuse system\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n The number of channels available per cell for 4-cell reuse system = %0.0f channels\"%(chpercell)\n", + "print \"\\n One control channel and 160 voice channels would be assigned to each cell.\"\n", + "\n", + "# b) To compute the number of channels available per cell for seven-cell reuse system\n", + "N=7# # frequency reuse factor\n", + "chpercell=ceil(Ntotal/N)# # number of channels available per cell for seven-cell reuse system\n", + "\n", + "# Answer is varrying due to round-off error\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n The number of channels available per cell for 7-cell reuse system = %0.0f channels\"%(chpercell)\n", + "print \"\\n Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\"\n", + "\n", + "# c) To compute the number of channels available per cell for 12-cell reuse system\n", + "N=12# # frequency reuse factor\n", + "chpercell=Ntotal/N# # number of channels available per cell for seven-cell reuse system\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n The number of channels available per cell for 12-cell reuse system = %0.0f channels\"%(chpercell)\n", + "print \"\\n Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.2 Page No.72" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Signal to noise ratio for n=4 with frequency reuse factor N=7 = 18.66 dB\n", + "\n", + " Signal to noise ratio for n=3 with frequency reuse factor N=7 = 12.05 dB\n", + "\n", + " Signal to noise ratio for n=3 with frequency reuse factor N=12 = 15.56 dB\n", + "\n", + " Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\n" + ] + } + ], + "source": [ + "from math import sqrt, log10\n", + "from __future__ import division\n", + "# To find frequency reuse factor for path loss exponent (n) a)n=4 b)n=3\n", + "\n", + "# Given data\n", + "SIdB=15# # Signal to interference(dB)\n", + "io=6# # Number of cochannel cell\n", + "\n", + "# For n=4\n", + "n1=4# # Path loss exponent\n", + "N1=7# # First consideration: frequency reuse factor N=7\n", + "DR1=sqrt(3*N1)# # Co-channel reuse ratio\n", + "si1=(1/io)*(DR1)**n1# # Signal to interference\n", + "sidB1=10*log10(si1)# # Signal to interference(dB)\n", + "\n", + "# For n=3\n", + "n2=3# # Path loss exmponent\n", + "si=(1/io)*(DR1)**n2# # Signal to interference for first consideration: frequency reuse factor N=7\n", + "sidB=10*log10(si)# # Signal to interference(dB)\n", + "\n", + "N2=12# # second consideration : frequency reuse factor N=12 since sidB<SIdB \n", + "DR2=sqrt(3*N2)# # Co-channel reuse ratio\n", + "si2=(1/io)*(DR2)**n2# # Signal to interference\n", + "sidB2=10*log10(si2)# # Signal to interference(dB)\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Signal to noise ratio for n=4 with frequency reuse factor N=7 = %0.2f dB\"%(sidB1)\n", + "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=7 = %0.2f dB\"%(sidB)\n", + "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=12 = %0.2f dB\"%(sidB2)\n", + "print \"\\n Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.4 Page No.80" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Total number of users for 1 channel = 1\n", + "\n", + " Total number of users for 5 channel = 11\n", + "\n", + " Total number of users for 10 channel = 40\n", + "\n", + " Total number of users for 20 channel = 111\n", + "\n", + " Total number of users for 100 channel = 809\n" + ] + } + ], + "source": [ + "# To find number of users for Number of channels (C) a)C=1 b)C=5 c)C=10 d)C=20 e)C=100\n", + "\n", + "# Given data\n", + "GOS=0.005# #G rade of Service\n", + "Au=0.1# # Traffic intensity per user\n", + "\n", + "# a)To find number of users for C=1\n", + "C1=1# # Number of channels\n", + "A1=0.005# # Total traffic intensity from Erlangs B chart\n", + "U1=(A1/Au)# # Number of users\n", + "U1=1# # Since one user could be supported on one channel\n", + "\n", + "# b)To find number of users for C=5\n", + "C2=5# # Number of channels\n", + "A2=1.13# # Total traffic intensity from Erlangs B chart\n", + "U2=round(A2/Au)# # Number of users\n", + "\n", + "# c)To find number of users for C=10\n", + "C3=10# # Number of channels\n", + "A3=3.96# # Total traffic intensity from Erlangs B chart\n", + "U3=round(A3/Au)# # Number of users\n", + "\n", + "# Answer is varrying due to round off error\n", + "\n", + "# d)To find number of users for C=20\n", + "C4=20# # Number of channels\n", + "A4=11.10# # Total traffic intensity from Erlangs B chart\n", + "U4=round(A4/Au)# # Number of users\n", + "\n", + "# Answer is varrying due to round off error\n", + "\n", + "# e)To find number of users for C=100\n", + "C5=100# # Number of channels\n", + "A5=80.9# # Total traffic intensity from Erlangs B chart\n", + "U5=round(A5/Au)# # Number of users\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Total number of users for 1 channel = %0.0f\"%(U1)\n", + "print \"\\n Total number of users for 5 channel = %0.0f\"%(U2)\n", + "print \"\\n Total number of users for 10 channel = %0.0f\"%(U3)\n", + "print \"\\n Total number of users for 20 channel = %0.0f\"%(U4)\n", + "print \"\\n Total number of users for 100 channel = %0.0f\"%(U5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.5 Page No.83" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Total number of users in system A = 47280\n", + "\n", + " The percentage market penetration of system A = 2.36\n", + "\n", + " \n", + " Total number of users in system B = 44100\n", + "\n", + " The percentage market penetration of system B = 2.205\n", + "\n", + " \n", + " Total number of users in system C = 43120\n", + "\n", + " The percentage market penetration of system C = 2.156\n", + "\n", + " \n", + " Total number of users in all 3 systems = 134500\n", + "\n", + " The combined Market penetration percentage of all systems = 6.725\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "# To find number of users for a)system A b)system B c)system C\n", + "\n", + "# Given data\n", + "GOS=0.02# # Grade of Service (Probability of bloacking)\n", + "lamda=2# # Average calls per hour\n", + "H=(3/60)# # Call duration in seconds\n", + "\n", + "Au=lamda*H# # Traffic intensity per user\n", + "\n", + "# a)To find number of users for System A\n", + "C1=19# # Number of channels used\n", + "A1=12# # Traffic intensity from Erlang B chart\n", + "U1=round(A1/Au)# # Number of users per cell\n", + "cells1=394\n", + "TU1=U1*cells1# # Total number of users\n", + "MP1=TU1/(2*10**6)*100# # Market penetration percentage\n", + "\n", + "# b)To find number of users for System B\n", + "C2=57# # No. of channels used\n", + "A2=45# # Traffic intensity from Erlang B chart\n", + "U2=round(A2/Au)# # Number of users per cell\n", + "cells2=98\n", + "TU2=U2*cells2# # Total no. of users\n", + "MP2=TU2/(2*10**6)*100# # Market penetration percentage\n", + "\n", + "# c)To find number of users for System C\n", + "C3=100# # Number of channels used\n", + "A3=88# # traffic intensity from Erlang B chart\n", + "U3=round(A3/Au)# # Number of users per cell\n", + "cells3=49\n", + "TU3=U3*cells3# # Total no. of users\n", + "MP3=TU3/(2*10**6)*100# # Market penetration percentage\n", + "\n", + "TU=TU1+TU2+TU3# # Total number of users in all 3 systems\n", + "MP=TU/(2*10**6)*100# # Combined Market penetration percentage\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Total number of users in system A = %0.0f\"%(TU1)\n", + "print \"\\n The percentage market penetration of system A = %0.2f\"%(MP1)\n", + "print \"\\n \\n Total number of users in system B = %0.0f\"%(TU2)\n", + "print \"\\n The percentage market penetration of system B = %0.3f\"%(MP2)\n", + "print \"\\n \\n Total number of users in system C = %0.0f\"%(TU3)\n", + "print \"\\n The percentage market penetration of system C = %0.3f\"%(MP3)\n", + "print \"\\n \\n Total number of users in all 3 systems = %0.0f\"%(TU)\n", + "print \"\\n The combined Market penetration percentage of all systems = %0.3f\"%(MP)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.6 Page No.84" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Number of cells in given system = 31 cells\n", + "\n", + " \n", + " Number of channels per cell in given system = 95 channels/cell\n", + "\n", + " \n", + " Traffic intensity in given system = 84 Erlangs/cell\n", + "\n", + " \n", + " Maximum carried traffic in given system = 2604 Erlangs\n", + "\n", + " \n", + " Total number of users = 86800 users\n", + "\n", + " \n", + " Number of mobiles per unique channel = 130 mobiles/channel\n", + "\n", + " \n", + " Theoretically maximum number of served mobiles is the number of available channels in the system.\n", + "\n", + " Theoretical Maximum number of users could be served at one time = 2945 users\n", + "It is 3.4% of customer base.\n" + ] + } + ], + "source": [ + "# To find a)Number of cells in given area b)Number of channels/cell c)Traffic intensity per cell d)Maximum carried traffic e)Total number of users for 2% GOS f) Number of mobiles per unique channel g)Maximum number of users could be served at one time\n", + "\n", + "# Given data\n", + "Area=1300# # Total coverage area in m**2\n", + "R=4# # Radius of cell in m\n", + "N=7# # Frequecy reuse factor\n", + "S=40*10**6# # Allocated spectrum in Hz\n", + "Ch=60*10**3# # Channel width in Hz\n", + "\n", + "# a)Number of cells\n", + "CA=2.5981*R**2# # Area of hexagonal cell in m**2\n", + "Nc=round(Area/CA)# # Number of cells\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Number of cells in given system = %0.0f cells\"%(Nc)\n", + "\n", + "# b)Number of channels/cell\n", + "C1=round(S/(Ch*N))# # Number of channels\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Number of channels per cell in given system = %0.0f channels/cell\"%(C1)\n", + "\n", + "# c) Traffic intensity per cell\n", + "C1=95# # Number of channels from b)\n", + "GOS=0.02# # Grade of service\n", + "A=84# # Traffic intensity from Erlang B chart\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Traffic intensity in given system = %0.0f Erlangs/cell\"%(A)\n", + "\n", + "# d)Maximum carried traffic\n", + "traffic=Nc*A# # Maximum carried traffic\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Maximum carried traffic in given system = %0.0f Erlangs\"%(traffic)\n", + "\n", + "# e)Total number of users for 2% GOS \n", + "trafficperuser=0.03# # Given traffic per user\n", + "U=traffic/trafficperuser# # Total number of users\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Total number of users = %0.0f users\"%(U)\n", + "\n", + "# f) Number of mobiles per unique channel\n", + "C=666# # Number of channels\n", + "mobilesperchannel=round(U/C)# # Number of mobiles per unique channel\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Number of mobiles per unique channel = %0.0f mobiles/channel\"%(mobilesperchannel)\n", + "\n", + "# g)Maximum number of users could be served at one time\n", + "print \"\\n \\n Theoretically maximum number of served mobiles is the number of available channels in the system.\"\n", + "C=C1*Nc# # Maximum number of users could be served at one time\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Theoretical Maximum number of users could be served at one time = %0.0f users\"%(C)\n", + "print \"It is 3.4% of customer base.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.7 Page 85" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Number of users per square km in given system = 62 users/sq km\n", + "\n", + " \n", + " Percentage of probability that delayed call have to wait longer than t=10 sec = 56.29 percent\n", + "\n", + " \n", + " Percentage of probability that call is delayed more than 10 sec = 2.81 percent\n" + ] + } + ], + "source": [ + "from math import exp\n", + "# To find a)number of users per square km b)probability that delayed call have to wait longer than t=10sec c)probability that call is delayed more than 10 sec\n", + "\n", + "# Given data\n", + "R=1.387# # Radius of cell in m\n", + "Area=2.598*R**2# # Area of hexagonal cell in m**2\n", + "cellpercluster=4# # Number of cells/cluster\n", + "channels=60# # Number of channels\n", + "\n", + "channelspercell=channels/cellpercluster# # Number of channels per cell\n", + "\n", + "# a)To find number of users per square km\n", + "A=0.029# # Traffic intensity per user\n", + "delayprob=0.05# # Grade of service\n", + "traffic=9# # Traffic intensity from Erlang chart C\n", + "U1=traffic/A# # Total number of users in 5sq.km.\n", + "U=round(U1/Area)# # Number of users per square km\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Number of users per square km in given system = %0.0f users/sq km\"%(U)\n", + "\n", + "# b)To find the probability that delayed call have to wait longer than t=10sec\n", + "lamda=1# # Holding time\n", + "H1=A/lamda# # Duration of call\n", + "H=H1*3600# # Duration of call in second\n", + "t=10\n", + "Pr=exp(-(channelspercell-traffic)*t/H)*100# # probability that delayed call have to wait longer than t=10sec.\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Percentage of probability that delayed call have to wait longer than t=10 sec = %0.2f percent\"%(Pr)\n", + "\n", + "# c)To find the probability that call is delayed more than 10 sec\n", + "Pr10=delayprob*Pr# # probability that call is delayed more than 10 sec\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n \\n Percentage of probability that call is delayed more than 10 sec = %0.2f percent\"%(Pr10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.8 Page 89" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Number of channels without use of microcell = 300 channels\n", + "\n", + " \n", + " Number of channels with the use of lettered microcells = 660 channels\n", + "\n", + " \n", + " Number of channels if all base stations are replaced by microcells = 1020 channels\n" + ] + } + ], + "source": [ + "# To find number of channels in 3 km by 3 km square centered around A in Figure 3.9 for a)without use of microcell b)with the use of lettered microcells c)all base stations are replaced by microcells\n", + "\n", + "# Given data\n", + "R=1# # Cell radius in km\n", + "r=0.5# # Micro-cell radius in km\n", + "Nc=60# # Number of channels in base station\n", + "\n", + "# a)To find number of channels without use of microcell\n", + "Nb1=5# # Number of base stations in given area\n", + "N1=Nb1*Nc# # Number of channels without use of microcell\n", + "\n", + "# b)To find number of channels with the use of lettered microcells\n", + "Nb2=6# # Number of lettered microcells\n", + "Nb2=Nb1+Nb2# # Total number of base stations in given area\n", + "N2=Nb2*Nc# # Number of channels with the use of lettered microcells\n", + "\n", + "# c)To find number of channels if all base stations are replaced by microcells\n", + "Nb3=12# # Number of all the microcells\n", + "Nb3=Nb1+Nb3# # Total number of base stations in given area\n", + "N3=Nb3*Nc# # Number of channels if all base stations are replaced by microcells\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Number of channels without use of microcell = %0.0f channels\"%(N1)\n", + "print \"\\n \\n Number of channels with the use of lettered microcells = %0.0f channels\"%(N2)\n", + "print \"\\n \\n Number of channels if all base stations are replaced by microcells = %0.0f channels\"%(N3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.9 Page 92" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Cell capacity of unsectored system = 1326 calls/hour\n", + "\n", + " \n", + " Cell capacity of 120 degree sectored system = 1008 calls/hour\n", + "\n", + " \n", + " Decrease in cell capacity in 120 degree sectored system = 0 percent\n" + ] + } + ], + "source": [ + "# To analyze trunking efficiency capacity of sectoring and unsectoring\n", + "\n", + "# Given data\n", + "H=2/60# # Average call duration in hour\n", + "GOS=0.01# # Probability of blocking\n", + "\n", + "# Unsectored system\n", + "C1=57# # Number of traffic channels per cell in unsectored system\n", + "A=44.2# # Carried traffic in unsectored system\n", + "calls1=1326# # Number of calls per hour in unsectored system from Erlangs B table\n", + "\n", + "# 120 degree sectored system\n", + "C2=C1/3# # Number of traffic channels per antenna sector in 120 degree sectored system\n", + "calls2=336# # Number of calls per hour in 120 degree sectored system from Erlangs B table\n", + "Ns1=3# # Number of sectors\n", + "capacity=Ns1*calls2# # Cell capacity or number of calls handled by system per hour\n", + "\n", + "dif=calls1-capacity# # decrease in cell capacity in 120 degree sectored system\n", + "percentdif=(dif/calls1)*100# # decrease in cell capacity in 120 degree sectored system in percentage\n", + "\n", + "# Displaying the result in command window\n", + "print \"\\n Cell capacity of unsectored system = %0.0f calls/hour\"%(calls1)\n", + "print \"\\n \\n Cell capacity of 120 degree sectored system = %0.0f calls/hour\"%(capacity)\n", + "print \"\\n \\n Decrease in cell capacity in 120 degree sectored system = %0.0f percent\"%(percentdif)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |