Professional Documents
Culture Documents
Saturn FinalReport v6.1
Saturn FinalReport v6.1
Page 2 27/04/2020
Glossary
ANDC Advanced Network Development Centre
CDMA 1X Code Division Multiple Access
FDMA Frequency Division Multiple Access
GUI Graphical User Interface
JUPITER Motorola’s UMTS Simulation tool
MHA Mast Head Amplifier
OVSF Orthogonal Variable Spreading Factor
TDMA Time Division Multiple Access
UMTS Universal Mobile Terrestrial Service
RAN Radio Access Network
WDM Wideband Digital Modem
Page 3 27/04/2020
Objectives
The defined objective is to create a single web-based tool for the dimensioning of UMTS radio
access networks. The primary requirement is to accurately compute an optimum number of cells
required to cater for coverage and capacity requirements specified by a user.
However, experience has demonstrated that in order for it to be an effective tool, Saturn must be
designed to be capable of the following:
Dimension for a wide variety of services each with specific quality of service requirements
such as delay, frame erasure rates, blocking etc. Also, each service should consist of a
maximum and minimum bearer rate.
Dimension for varying (increasing) traffic volumes year on year
Dimension for different type environments (e.g. Urban, Suburban) and coverage areas.
Dimension for minimum and maximum loadings, separately on the uplink and downlink
and subsequently determine the optimum.
Assess the impacts of capacity and coverage enhancing features such as multiple
carriers per sector, transmit diversity, mast head amplifiers etc
Account for Overheads such as packet headers, control information and handover, and
hence distinguish between gross throughputs and actual user throughputs.
Also, a crucial requirement of Saturn is the ability to cope with data entry from the user in a
number of different formats. This is necessary because information provided by the operators is
often very dissimilar and indeed rarely complete. A prime example is in the definition of the
volume of traffic, specified either in erlangs or kbps. It is essential that Saturn accommodate the
following modes:
The first gives a quick estimate of the load and throughput, where no additional information is
available whereas the other two modes are obviously more accurate. Also, because, information
on each service isn’t always readily available, Saturn must be flexible enough to allow every
service to be defined as circuit switched with an activity factor or packet switched with a profile of
packet calls separated by reading times.
Page 4 27/04/2020
Project Outline
In the first chapter, an attempt is made to emphasise the important concepts in WCDMA systems
particularly the principle that neither the cell radius nor its capacity is fixed. The approach used
was to highlight the differences between the well-understood GSM concepts and these new
principles.
The second chapter describes analytically how, based on a number of simple assumptions the
load of a cell is determined. It then explains how the inaccuracy incurred due to the limitations in
the assumptions can be countered.
Chapter 3 describes how the range of a cell is calculated, based on certain pathloss models. The
way in which the range varies depending on the type of terrain and clutter in the coverage area
and the limitations in the assumptions that need to be made is explained.
Also gains and losses of the equipment used and and how they affect the cell range are briefly
described. To conclude the chapter, the concept of coverage reliability, to counter the basic
assumption of a uniform coverage area is explained.
Chapter 4 introduces the services and their characteristics. It explains how the user can use the
flexibility of Saturn to define the desired bearer rates, error rates, delays etc.
Chapter 5 explains the link budget that is the core of Saturn. With an uplink example the objective
of trying to obtain a cell count that would simulatneously cater for both the coverage and
throughput requirements is described.
Chapter 6 describes the architecture of the software. Detailed flow charts are used to describe the
way in which the code is written. Also the original UML class diagram drawn up as a part of the
project specification is included.
Chapter 7 draws conclusions as to what how the objectives have been achieved and the benefits
of Saturn as a dimensioning tool .
Finally, in the annex a portion of the code is attached, showing the most important functions such
as load and pathloss calculations. Also the piece of code accompanying the flow charts in chapter
6 is attached.
Page 5 27/04/2020
1. Introduction to WCDMA
Cellular mobile telecommunications is now in its third generation, UMTS - Universal Mobile
Terrestrial System. It was intended to build upon the successes of the now very ubiquitous GSM
mobile system.
However its primary requirement, allowing for the support of multiple services each of a different
bearer rate and quality, plus an increase in the overall capacity of the network, resulted in the fact
that an all-together new technology was necessary.
Primarily, UMTS strives to maximise the use of the limited bandwidth available across the radio
interface, by recognising the fact that reserving a fixed size communication channel for use by a
single user for the duration of his/her call, as is essentially the case is GSM is inefficient.
The limitation to the GSM mobile technology is best understood when it’s multiple access
technology, i.e. Frequency / Time Division Multiple Access (FD/TDMA) is examined. Here the
basic resource is known as a time slot, which is a square within the frequency and time grid of
fixed duration (5.77s) and frequency (200Kz).
A user is periodically allocated one such slot, as a result of which, a single well-defined base-
band bearer rate (14.4kbps) is achievable, no more, no less. This is illustrated in [Figure 1] below:
Frequency
……
User slots (1 in 8)
Time
Major improvements have been made to GSM in the Generalised Packet Radio System (GPRS),
whereby timeslots may be concatenated to allow for a certain degree of flexibility in the bearer
rates and hence accommodating a variety of services. Also by varying the delay requirements in
the set-up / and tear-down duration for traffic channels, sometimes during the periods of inactivity,
some element of quality has been added, and the obvious inefficiency in relation to bursty traffic
has been improved upon.
1
In its most basic form
Page 6 27/04/2020
However, understandably, GPRS is not the all-encompassing flexible system, with the capability
of doing everything, hence the window of opportunity for UMTS.
UMTS utilizes Wideband Code Division Multiple Access technology (WCDMA), as opposed to the
frequency / time grid. Here, every user channel is assigned all of the available frequency for all of
the time, each user separated from the other by a unique code.
Power /
Interferenc
Power / Power /
“Wasted slot”
Interference Interference
t
t
Also, there is no fixed slot size; the user can take up as much of the resources as he wants,
hence flexibility in the type of services supportable.
Following on from the third point above, one of the cornerstones of the UMTS is the concept of
power control; the idea that a user shall only ever transmit the minimum amount power
necessary to successfully demodulate and decode his signal. It is directly related to the quality of
the signal, which as we know is in turn directly related to the number of bits in error in a received
frame i.e. the Frame Erasure Rate (FER). The more stringent the requirement – i.e. the fewer the
number of bits in error per frame, the higher the power requirement, see [Figure 3, right]. In other
words the higher the signal-to-noise ratio necessary and this implies the ratio of the energy per bit
Eb, to the total noise present NT, would be increased. From [Figure 2] however, it is apparent that
the higher the transmitted power per user the higher the interference levels in the system.
We can imagine that there are two tiers of the power control scheme, a higher level one in which
we associate the FER to an Eb/NT target, known as the Outer Loop Power Control. This target is
determined at the Radio Network Controller (RNC) and sent to the Node B. There is also a lower
level where we increase or decrease the transmit power to meet the Eb/NT target, known as the
Inner loop power control.
Page 7 27/04/2020
EbNo @
Cell
FER
Outer Loop
Inner Loop Power Control
Power Control
EbNo /
EbNo @ Power
Mobile Figure 3: FER and Power Control
Once again going back to [Figure 2], we establish that the limitation to the system is no longer a
fixed resource, i.e. time slots, but rather, interference, a so-called soft-limit, as it is a subjective
resource. A very telling analogy for a UMTS system is the cocktail-party scenario: With only a
handful of guests present, conversations held between guests are clearly audible, but as more
guests arrive, the noise in the room increases; and in turn everyone needs to talk a little louder in
order to be heard. There comes a point where the noise is just about bearable and the arrival of
one more would result in chaos, whereby, some people may decide to stop talking altogether and
others may result to screaming.
As aforementioned, the user in the network is oblivious to the existence of all other users in the
network, as he doesn’t know their unique codes. Instead, he only perceives them as noise and
the more users the more noise.
Therefore, the amount of noise a user at the edge of a cell needs to overcome varies with the cell
load. Assuming a certain cell range can be achieved with the maximum transmit power of a
mobile station at zero loading, that range would reduce proportionally with increasing cell loads,
until the maximum is achieved.
Page 8 27/04/2020
Figure 7: Cell Breathing
This proportionality between the range of a cell and its capacity is known as cell breathing –
another vital concept for UMTS network dimensioning. It is absolutely essentially that the network
is dimensioned such that even as loads increase, no holes result in the network coverage. This is
the second important concept to bear in mind in dimensioning of UMTS radio access networks.
The third important concept relates to the services. To the consumer faster bit rates are desirable
as it implies that they can send and receive more data within shorter time intervals. However from
the perspective of the network provider, this implies shipping more data within a shorter time
period, which means that the load on the system is increased. This is illustrated in the figure
below:
load
144kbps
64kbps
32kbps
time
It is often said that there is no gain without pain. For the planning / dimensioning engineer for the
UMTS radio network, there is hardly a more applicable idiom.
Any gain in network capacity is bound to come at a loss to the overall coverage area of the
system and/or the quality on each of the connections. To increase the coverage area, the loading
of the system must be minimised, and so too the quality. And finally, the more stringent the quality
Page 9 27/04/2020
specification, the less traffic the cells would support and/or the smaller the coverage area. The
figure below illustrates the balancing act.
Traffic
Cost
Coverage Quality
Generally, the system design and cell planning process can be broken down into three stages
with increasing degree of accuracy. The first level consists of the RF link budget computation that
provides an estimate for the coverage and capacity of a cell, and the number of cells required
based on the user-defined parameters.
In the second stage, the accuracy of the design is improved upon at the expense of increased
complexity, by including the actual site locations and a detailed description of the terrain, clutter
types and pathloss.
And finally, once the network is in place we can accurately simulate its capacity and performance.
Hence we can assess the effect of load and quality requirements, the impact of the introduction of
new applications or the effectiveness of our call admission control algorithms.
The task of Saturn is to determine the first level estimation that provides us with a good indication
of the ideal operating point, that balances the traffic, coverage and quality requirements at
minimum cost!!
Page 10 27/04/2020
2. WCDMA Capacity
The previous section introduced the notion that the loading on a cell is proportional to its capacity,
but is simultaneously proportional to the interference level in the cell.
Therefore, to estimate the capacity of a cell, we need to understand how much noise over thermal
noise due to interference, is present in the cell.
For accurate results, one would normally have to perform hours of system-level capacity
simulations. However, for our purposes, a good estimate, based on semi-analytical methods,
assuming some basic principles, can be obtained.
With these assumptions in mind we can now attempt to describe the capacity of a cell and its
relationship to the noise created in a cell.
2.1 Uplink
First we shall begin with the uplink: for the Node B to accurately demodulate any received signal,
it needs to receive the UE signal at a given energy level above the thermal floor plus any
interference present in the cell. This is know as the Eb/NT and is defined as follows:
W Pi
( Eb / N T ) i
i Ri I total Pi
[Equation 2]
Where:
2
When calculating range however we assume a worst case scenario, where the user is
positioned at the edge of the cell
3
This is the sum of the transmitted powers of all the other users in the cell
Page 11 27/04/2020
W is the chip rate. For UMTS the chip rate is equal to 3.84x10 6 chip/s.
Pi is the received signal power from user I
i is the activity factor of user I. This is the percentage of time that a user transmits on an
active traffic channel.
Ri is the bit rate of user I
Gp = W / Ri. This is the processing gain achieved as a result of spreading the information
bit rate over the full frequency band i.e. spreading the information bit rate to 3.84x10 6
chip/s.
Itotal is the total received wide band power including thermal noise power in the Node B,
the powers of own-cell users (Iin) and other-cell users (Iout)
[Equation 3]
Solving for Pi gives:
1
Pi I total
W
1
( Eb / N T ) i Ri i
[Equation 4]
Now, we define the f factor as the ratio of the out-of-cell interference to the in-cell interference, Iout
/ Iin, and hence we can write the F factor as:
I in 1
F
I in I out 1 f
[Equation 5]
Simulations have shown that F-factor varies with the antenna types, the user distribution and
propagation index. The following F-factors, assumed in Motorola’s radio dimensioning tools, have
been obtained from system simulations:
Table 1: F-factor
Antenna type F-factor
Omni 0.65
3-Sector 0.45
Iin+Iout = (1+f)Iin
[Equation 6]
where Iin is the sum of all Pi of all active users in the cell. Therefore taking [Equation 2 & 3] and
summing for all N mobiles in the cell we obtain:
Page 12 27/04/2020
N N
1
I total PN I in I out (1 f ) Pi (1 f ) I total
W
i 1 i 1
1
( Eb / N T ) i Ri i
[Equation 7]
The uplink noise rise is defined as the ratio of the total received power to the noise power:
I total
NR
PN
[Equation 8]
I total 1 1
NR
PN N
1 1
1 (1 f )
W
i 1
1
( Eb / N T ) i Ri i
[Equation 9]
where is the load factor, defined as the sum of all the load factors from all the individual
connections, taking into account the interference from the other cells:
It can be written as:
N
1
(1 f )
PGi
i 1
1
( Eb / N T ) i vi
[Equation 10]
N
( Eb / N T ) i vi
i 1 PGi F
[Equation 11]
gives us the number of users N, for a given load factor .
So far we have assumed that users are of a single service type. Extending [Equation 11]
To accommodate, multiple services all we have to do is sum over all services of each service
type. Hence we say:
M Lm
Eb m , l
vm , l
m,l
l 1 PG13 F
m 1 Page NT 27/04/2020
[Equation 12]
To obtain the noise rise expressed in dB, in terms of cell loading we can write:
1
NR 10 log( )
1
[Equation 13]
From [Equation 13], we see that the pole capacity, i.e. theoretical maximum is reached when =
1. However, for dimensioning purposes, we generally do not exceed, = 0.75, equivalent to a
noise Rise of 6dB.
2.2 Downlink
When modelling the downlink, there are a number of differences that need to be considered
compared with the uplink:
Therefore calculating the base station capacity based on a multiple of point-to-point connections
is not very accurate4.
Each Node B within a WCDMA cellular network has a finite power resource that has to be shared
amongst a number of users. In order to maximise downlink capacity, it is essential that each Node
B allocate only sufficient power to maintain the quality
of service (QoS) requirements of each mobile. An important parameter, therefore, that is used to
determine capacity is the total power requirement of each Node B, for a given user/traffic
distribution.
4
However, we do assume that a number of point-to-point connections provide us with a good
estimate for the average pathloss the users experiences.
Page 14 27/04/2020
In order to determine this power requirement, as in the uplink, we first consider the received
energy per bit to total interference at the lth mobile owing to the link from the kth Node B. This is
given as:
[Equation 14]
where:
[Equation 15]
Where PG(k,l) is the processing gain of the lth mobile connected to the k th Node B. Using the above
equation, we can write
[Equation 16]
Page 15 27/04/2020
Now the traffic power requirement of the k th Node B is given by
[Equation 17]
Where v k,l and Lk are the activity factor of the l- th user and the number of radio links served by
the k- th Node B, respectively. On rearranging we obtain
[Equation 18]
In essence, this provides the traffic power requirement of the kth Node B in a non-homogeneous
WCDMA cellular network.
And:
Page 16 27/04/2020
Then a simplified version of the above equation is given by:
[Equation 19]
This is rearranged to give:
[Equation 20]
We can now define the location-dependent f factor
[Equation 21]
Which is a measure of the out-of-cell to in-cell interference density observed at the lth mobile
which is served by the kth Node B.
To further simplify [Equation 19], as we have in the uplink, we shall assume that:
Page 17 27/04/2020
Therefore we can now group the connections based on service types. So, if we define
[Equation 22]
Where L is the total number of connections and Lm the number of connections for each service
type and replace PK with Ptraffic we now obtain a simple equation for the total
Power the node B requires to cater for L connections
[Equation 23]
Finally, we need to account for the fact that a number of the radio links served within each cell will
be associated with mobiles in soft handover. This overhead can be incorporated in the above
equation by increasing the number of links L by 1 + Sm, where (Sm <1) is the percentage of
mobiles within the mth service-type that are in soft handover, so that [Equation 22] be expanded
to:
[Equation 24]
On examining this equation, we find that the traffic power requirement of the Node B becomes
infinitely large when
[Equation 25]
Page 18 27/04/2020
At which point the Node B is said to have reached the pole condition. Therefore
[Equation 26]
Defines the pole capacity. Compared to [Equation 12] of the uplink, it is obvious that the term
[Equation 27]
Is equivalent to the downlink loading factor. And hence the downlink noise rise can be written as:
NR DL 10 log10 (1 X )
[Equation 28]
However, we know that fast fading causes quick variations in the behaviour of the propagation
channel for which the power control algorithm may not be able to compensate. To account for this
error in the power control, which degrades user capacity, a margin is added in the link budget.
The power control error is log-normally distributed, and hence the Eb/NT. Therefore we assume
that for each bearer rate the Eb/NT consists of a mean and a variance:
Page 19 27/04/2020
Eb ( ) 2
E exp
2
N T
[Equation 29]
Eb
Var exp 2 ( ) 2 (exp( ) 2 1)
N T
[Equation 30]
Where and are the mean and standard deviation of 10log10 [Eb/NT] and = loge(10)/10.
Therefore for all bearer rates we allow for a variation in the Eb/NT such that the total becomes:
Eb Eb Eb
E Var = +
N T TOTAL N T N T
[Equation 31]
Therefore we need to account for this variation and we do so by elaborating on the assumption
that the QoS achieved by each user at the Node B is log normally distributed; We assume that
the noise rise does likewise.
0 .0 6
5 0 % p e r c e n t ile
6 dB
0 .0 5
Probability Density function
0 .0 4 P r o b (Z > z )
9 8 % p e r c e n t ile
0 .0 3
0 .0 2
0 .0 1
0 6 9
dB
Page 20 27/04/2020
Figure 20: Noise Rise Probability Density Function
The figure above shows an example, where for a mean noise rise of 6dB for the cell, the
probability that the noise rise of this cell does not exceed 6dB more than 2% of the time assumes
that the cell has a peak noise rise of 9dB.
1
Pr ob( Z dB z ) Pr ob log e (1 X ) z
Pr ob( X 1 exp[ z ]
[Equation 32]
Where Pr ob( Z dB z ) is the probability that the noise rise ZdB, exceeds z which is equivalent to
the probability of the load factor X exceeding { 1 exp[ z ] }.
We can therefore define r = exp[ z ] as the probability for which we cannot guarantee that ZdB,
exceeds z.
Page 21 27/04/2020
3. WCDMA Coverage
This section describes the fundamental concepts involved in the cell range calculation.
Accuracy in determining the cell range is essential as the smaller the radius the more the number
of cells would be required to cover a given area.
Basically, when determining the range of a cell, we want to consider all the gains and losses that
a mobile needs to overcome in order that his transmitted signal is decoded successfully at the
Node B. These are now briefly described:
In Saturn we are limited by the assumption of uniformity 5 of the geographic area. Therefore to
obtain accurate results the user would have to breakdown his total area into a number of
environment types and treat each separately. By default we broadly distinguish between rural,
suburban, urban or dense urban environments and associate each with a penetration loss for
example 5, 10, 15 and 20dB respectively.
Body Loss
This is the loss incurred as a result of the degradation of the RF signal strength due to the close
proximity of the subscriber’s handset antenna to his body. For a voice service, this is often
referred to as the “head loss”; with a typical value is 2 dB.
Cable Loss
This is the loss of the cable from the antenna to the base-station. This loss will depend on the
type and length of the cable. A typical value for the cable loss is 3 dB.
UE power
The UE maximum output power is specified in the UMTS standards (3GPP 25.101), depending
on the Power Classes:
5
We compensate for the inaccuracy of this assumption by introducing a percentile coverage
reliability (to be discussed) in addition to the EbNT standard variation and the percentile noise rise
discussed above.
Page 22 27/04/2020
Antenna Gain
Antennas can be either omni or directional. Different sites may use different types of antennas. In
general, the more sectors on the antenna, the higher the antenna gain, but conversely the higher
the cost. Typical antenna gains are illustrated in the table below:
This results in an overall reduction in the interference that the mobile introduces into the cell and
indeed neighbouring cells. Also transmit power required by the mobile to meet its EbNT target is
reduced, hence enhancing its battery life.
From simulations we find that a typical value for the soft handover gain is 3.5 dB.
The propagation models currently used by Motorola are the COST 231 Hata models for
frequencies above 1500 MHz with the following assumptions: 2000 MHz frequency, 1.5 m MS
antenna height and for macro cellular Node B, 30m Node B antenna height in urban environment,
35 m in suburban and rural. The propagation models for different cell morphologies and site
configurations are summarized in table below:
Page 23 27/04/2020
Table 4: Propagation Models
Where:
The maximum path loss will correspond to a distance equal to the radius of the cell.
By calculating the Maximum allowable path loss, the cell range can be derived. For example, for
an urban cell:
Lp=137.74+35.22*Log(d)
[Equation 33]
So, we can derive d (cell radius):
Lp 137.74
d 10 35.22
[Equation 34]
Where d is the radius of the cell given in km.
Note that generally, in mobile networks we assume cells to be of hexagonal shape. Therefore the
area covered by a cell of d (km) radius is calculated as follows:
d
x
o
60
x = sin (6 0 º)d
A r e a = 1 2 .½ x .y
y = c o s (6 0 º)d = d /2
A r e a = 6 .½ d . s in (6 0 º )d
A r e a o f tria n g le = ½ x .y
A r e a = 2 . 5 9 8 .d 2
Hence the total number of cells required to cover the defined area is given as:
[Equation 35]
Page 24 27/04/2020
3.1 Coverage Variation
3.1.1 Percentile Reliability (Shadow Fade Margin)
In analogy to the percentile noise rise and EbNT standard deviation introduced to account for load
variation we compensate for the fact that the propagation environment is not entirely uniform, by
introducing percentile coverage reliability.
First, we define the shadow fade margin or lognormal fading as the margin over which the signal
measurements at one location over varies in time. Here too, the lognormal distribution has been
found to be a good estimate of the statistical nature of shadowing and is used to calculate the
probability of RF coverage at each point in the cell.
The total probability of coverage for the cell is determined by integrating the point probabilities
over the cell area. The desired coverage area reliability (e.g. 90%) can be guaranteed by
increasing the fade margin to the necessary level as illustrated in the figure below:
1
0.98
0.96
0.94
Area reliability
0.92
6dB STD
0.9 8dB STD
0.88 10 dB STD
0.86
0.84
0.82
0.8
3 4 5 6 7 8 9 10 11 12 13 14
Lognormal fade margin
Figure 12: Lognormal fading against shadowing standard deviation and area reliability
The lognormal fade margin increases with increasing lognormal standard deviation, which
typically varies between 5 and 9 dB. The greater the standard deviation, the lower the edge
reliability assuming a constant fade margin.
Page 25 27/04/2020
4. Services
This section attempts to describe a service, its characteristics and how they can be modelled in
Saturn.
Understanding the characteristics and classification of services is important for the network
operator because, the type and mixture of services accommodated within the network has a
direct impact on the revenues.
Page 26 27/04/2020
Random bits Closed pipe
pipe
Here the overall activity factor is simply estimated as the time ratio for which bits are being
transported to the overall call duration.
Most Conversational and Streaming type services such as voice are circuit switched. Due to the
stringent quality requirements, such services are carried exclusively within a closed dedicated
channel
.
Packet Packet Inter-arrival Time
Session Duration
In fact there is a well-defined WWW model to describe the flow of packets used in Saturn, as
illustrated above. A number of packets arriving within a specified inter-arrival time are contained
in a packet call each of which are separated by reading times. The packet arrivals within a packet
call still follow the Poisson distribution and so to do the arrival of packet calls in the session. Now,
packets from different sources may be multiplexed within a packet call, or as is more often the
case, because of the relatively long reading times packet calls from different sources may be
multiplexed. This sharing of the channel results in an increased activity factor, i.e. better
efficiency, however, the activity factor for each service on the same channel may be different.
Page 27 27/04/2020
As their delay and delay jitter requirements here are less stringent, Interactive and Background
services, are generally modeled as packet switched. The figure below illustrates how a packet
service may be defined on the graphical user interface of Saturn.
Activity Factor =
(x*( PacketSize / Rb)) / ((x*( PacketSize / Rb))+ ((((y -1)*z) * (tInterarrival - tDuration)) + ((z -1)* tReading)));
[Equation 366]
Where
Rb = Bearer Rate
PacketSize = Size of a packet in bits
tDuration = Duration of a Packet = (size*8)/ Rb
tInterarrival = transmission time interval in seconds
tReading = Reading time
z = Number of Packets Calls In Session
y = Number of Packets In a Packet Call = Round Up (y *(1+ Packet Loss Ratio));
x = Number of Packets In a Session = y *z ;
Page 28 27/04/2020
4.3 Dedicated and Shared Channels
Because UMTS is designed to accommodate any service type irrespective of whether packet or
circuit switched, it needs to have a mixture of dedicated and shared channels 6 available.
As argued in the previous section, Conversational and Streaming type services are typically
circuit switched and are generally assigned dedicated channels whereas Interactive and
Background Services are generally packet switched and may be multiplexed onto Shared
channels.
However this is not a hard and fast definition: so long its specifications are met a circuit switched
service7 may be mapped onto a shared channel and nothing stops one from mapping a packet
switched service onto a dedicated channel.
In fact shared channels are an optional part of the 3GPP UMTS specifications and most vendors
do not intend to deploy them in the very first releases of their equipment.
Likewise, for this version on Saturn, shared channels are not implemented. Therefore all services
including Interactive and Background services are mapped onto dedicated channels. However for
packet switched services with long reading times, Saturn accounts for the fact that the it may be
more efficient to close down the channel and re-open it rather than allow a user to unnecessarily
hold on to a code that could be used by other users hence the activity factor is improved.
6
The shared channels are particularly important in the downlink because of its point-to-multipoint
nature.
7
A circuit switched service can very easily be described by the WWW model of figure XXXX, with
short inter-arrival times and reading times equal to an inter-arrival time.
Page 29 27/04/2020
Figure 16: Traffic Mix Defnition
From this information, the engineer can determine the percentage ratio of Erlangs of each service
type to be supported. This is known as the service mix and is essential in determining the
resultant number of users of each service type in a cell.
4.5 Quality
The main quality parameter in Saturn is the FER target i.e. to the outer loop power control target.
Within Saturn there is a library of EbNT tables8 associated with each target, e.g. 1%, 2%, 5% or
10% and along with this, the actual EbNT to be used depends on the bearer rate and user speed
as shown below:
8
Gathered from Motorola link level simulations
Page 30 27/04/2020
Figure 17: Saturn EbNo Tables
Each EbNT also has an associated standard deviation See section 8.3.1, and an implementation
margin to take into account the inaccuracy of the equipment may be defined.
Also for packet switched services, the user may define a percentile delay requirement, and an
overall Erlang B blocking parameter may be defined to guarantee channel availability. These shall
be discussed in section 10.7.
4.6 Overheads
There are a number of steps involved before a stream of bits can be mapped onto a UMTS radio
frame. First they are grouped into blocks to which Cyclic Redundancy Check (CRC) bits are
attached. These blocks are then concatenated or segmented as necessary, then encoded, rate
matched and interleaved. And finally these blocks can be multiplexed with those from another
stream. This is illustrated in the figure below [right]:
In Saturn this process is much simplified. Basically, the EbNT figure provided is computed for the
standard a UMTS radio bearer e.g. the EbNT for a 12.2kbps is the energy per bit required above
total noise not for 12.2kbps but rather for the standard UMTS 30kbps bearer onto which it is
mapped after the CRC, encoding, rate matching etc. Therefore all the overheads in the
multiplexing chain are already taken into account except for one: The DPCCH bits.
Page 31 27/04/2020
Figure 18: Reverse Link Multiplexing tree TS 25.212
Page 32 27/04/2020
Table 5: DPDCH and DPCCH fields (Downlink)
Slot Channel Channel SF Bits/ DPDCH DPCCH (Control) User Information Rate
Format #i Bit Rate Symbol Slot Bits/Slot Bits/Slot
(kbps) Rate
(ksps) NData1 NData2 NTPC NTFCI NPilot
0 15 7.5 512 10 0 4 2 0 4
1 15 7.5 512 10 0 2 2 2 4
2 30 15 256 20 2 14 2 0 2
3 30 15 256 20 2 12 2 2 2 8 kbps
4 30 15 256 20 2 12 2 0 4
5 30 15 256 20 2 10 2 2 4
6 30 15 256 20 2 8 2 0 8
7 30 15 256 20 2 6 2 2 8
8 60 30 128 40 6 28 2 0 4
9 60 30 128 40 6 26 2 2 4 12.2 kbps
10 60 30 128 40 6 24 2 0 8
11 60 30 128 40 6 22 2 2 8
12 120 60 64 80 12 48 4 8* 8 32 kbps
13 240 120 32 160 28 112 4 8* 8 64 kbps
14 480 240 16 320 56 232 8 8* 16 144 kbps
15 960 480 8 640 120 488 8 8* 16 384 kbps
16 1920 960 4 1280 248 1000 8 8* 16
Effective Activity Factor = (data bits/total bits * activityFactor) + control bits/total bits
[Equation 377]
It is this effective activity factor that is subsequently used to calculate the load equations.
Page 33 27/04/2020
5. The Link Budget
Saturn is a tool that facilitates the first level in the design and planning process. Its core is a Link
budget engine that continuously calculates until an optimum number of cells required to cater
simultaneously for both the coverage and throughput requirements is found.
Inputs:
Traffic Volume
Quality Requirements
Coverage Area
OPTIM
SATURN UM
Link Budget Engine
Then based on the assumptions of uniformity in the propagation conditions experienced by each
of the mobiles in the system (discussed in the previous sections), it proceeds with calculation and
continues adjusting the cell load and range until an optimised number of cells is achieved.
First, the basic requirements of throughput and coverage area need to be defined. Here we
assume a coverage area of 300 km2 and we dimension for coverage reliability of 90% at the cell
edge for a 144kbps bearer. For throughput we assume a total network throughput of 544400
Kbps and we allow for any load variations by using the 70 th%ile. [Table 6].
Page 34 27/04/2020
Percentile Noise Rise 70 %
Once we know the coverage and throughput requirements, we now need to take a closer look at
the services. First, using [Equations 36 & 37] we calculate the effective activity factors from the
user defined activity factors for the service.
And then for each bearer onto which the services are mapped we define a quality requirement i.e.
the EbNo necessary to meet the defined outer loop control target; here an FER of 1% at 3 km/h.
Then for each Ebon we include a standard deviation using [Equation 30].
Page 35 27/04/2020
UMTS Link Budget (Uplink) Units Value Comments
Chip Rate (W) cps 3.84E+06 System standard
Coverage Bit Rate (Rb) bps 144000 Input: User
Base Station Noise Figure (NF) dB 3 Input: Equipment manufacturer
Bolztmann's constant (k) W/(Hz K) 1.38E-23 System Input
Room Temperature (T) K 2.90E+02 System Input
Thermal Noise Density (ND) dB/Hz -203.98 10*LOG10 (kT)
KTW dB -138.13 10*LOG10 (kTW)
NthW dB -135.13 (NF + kTW)
Base Ant. Gain (GBTS) dBi 17 Input: Equipment manufacturer
Mobile Ant. Gain (GUE) dBi 0 Input: Equipment manufacturer
Body Loss (LBODY) dB 0 Input: User
Building/Vehicle Penetration Loss (LPEN) dB 20 Input: Environment Dependent
Base Cable Loss (LCABLE) dB 0 Input: Equipment manufacturer
Total Effective Antenna Gain (GTOTAL) dB -3 (GBTS + GUE - LBODY - LPEN - LCABLE)
Interference Margin (PNoiseRise) dB 4.84 Calculated: see 8.3.2, Annex 11.7
Eb/NT (3% FER) (inc Eb/NT STD) dB 2.2 Input: User
Processing Gain (Gp) dB 14.26 10*LOG10 (W/ Rb)
Signal to Noise Ratio (SNR) dB -7.22 (PNoiseRise + Eb/NT + Gp)9
Mean Cell Loading (Load) 58.1% (1-(10^(- NoiseRise /10)))
BTS Rx sensitivity (S) dBm -117.19 (ND + 10*LOG10 (Rb) + Eb/NT + NF)
Mean Noise rise (NoiseRise) dB 3.78 Input: User
Soft Handoff Gain (GSHO) dB 3.5 Input: User
Max Handset Power (200mW) (PUE) dBW -6 System Input
Shadow Fade Margin (single cell) (FM) dB 5.41 Calculated: see section 9.1.1
Lognormal STD dB 8 Input: User see section 9.1.1
Max Isotropic Pathloss (Ploss) dB 131.44 - (NthW - GTOTAL + SNR - PUE + FM - GSHO)
Pathloss exponent (Plossexp) 141.47 Input: Environment Dependent see Table 4
Pathloss index (Plossindex) 35.74 Input: Environment Dependent see Table 4
Outputs
Max Range (Radius) km 0.524 10^((Ploss - Plossexp)/(Plossindex))
Area of one Site (Areasite) km2 0.714 2.598*(Radius * Radius)
Area of one cell (Areacell) km2 0.238 Areasite / Number of Sectors (=3)
Area required km2 300.00 Input: User
No of cells req'd based on Area 1260.7 Area required / Areacell
Users mapping per carrier per cell No. Users 15.00 Calculated see Section 10.7
Throughput per Carrier per cell Kbps 435.08 Calculated: see Section 10.7
Total throughput required Kbps 544400 Input: User
Cells req'd based on throughput 1251.3 (Total required / Throughput /Carrier)
9
The percentile noise rise in the pathloss calculation allows for variations in the propagation
conditions that affect range.
Page 36 27/04/2020
To improve on the link budget, which means increasing the cell radius, or reducing the number of
Node Bs required for the throughput, there are a number of things that could be done. First the
quality of the equipment used could be improved upon by:
Improving the base station baseband algorithms, thereby reducing the Eb/No.
Reducing the base station noise figure in the RF section.
Reducing the cable loss between the antenna and the base station LNA.
Increasing the antenna gain.
Carriers
Sectorisation
Transmit Diversity
Mast Head Amplifiers
Saturn allows the user to assess the cost vs. benefit of each feature.
Page 37 27/04/2020
6. Software Architecture and Code flow
Initial Uplink
Increase Users
Calculate Calculate
Noise Rise Range
No
Noise Rise > Min
Final Uplink
Increase Users
No
Rates@ Min
Yes
Yes
Reduce > Max
Rates; No
Yes
Cellsdiff > 0
Cellsdiff <= 0 OR
Cellsdiff > 0 @ Max
Uplink: Throughput, NoiseRise, Max Carriers
Range, and Carriers
Uplink Results
Page 38 27/04/2020
Initial Downlink
Increase Users
Calculate Calculate
Loading Range
BTS Power
Reduce Yes
Range > Max
No
No
Load > Min
Yes
Final Downlink
Increase Users
Loading Range
Yes No
Load < Max; Rates @ Min
Yes
No Yes
Reduce Rates > Max
Yes No
Carriers < Max; Yes
No Load > Max
No
Yes
Cellsdiff > 0
Cellsdiff <= 0 OR
Downlink: Throughput, Cellsdiff > 0 @ Max Load,
Range, and Carriers Max Carriers
Downlink Results
Page 39 27/04/2020
No
Carriers
X >Y
Yes
No
Range X >
Range Y
Yes
Carriers -= 1
Increase Users
Loading Range
Yes No
Load > Max
OR Power > Max
Rates @ Min
No Yes Cells Throughput X Cells Range X
No Yes
Range X > Cellsdiff > 0
Range Y
Carrier Re-added
Reduce No Yes
Rates Yes
Add Carrier
(Reset) Range X,
Reduce Throughput X
Range Carriers X
Yes
Carriers Y = X
Throuput X
No
Carriers Y = X
No Yes
Cellsdiff >= 0 Range Y,
Throughput Y
Reset Rates Carriers Y
Throuput X
Loading Reduce
Rates
No Yes
Reduce Users Load > Max
OR Power > Max Range X.Y,
Throughput X, Y
Carriers X, Y
Throuput X
Figure 16: Optimise for Carriers -> (Reduce Carriers on link X if possible)
Page 40 27/04/2020
Cells Throughput X >
(Cells Range X &
Cells Range Y &
Cells Throughput Y)
Yes
Increase Users
Loading
Yes
Loading X < Max
No
Yes
Cellsdiff > 0
No
Cells Range X,
Cells Throughput X
Carriers X, Y
Throuput X
No
Cells Throughput >
Cells Range Y &
Cells Throughput Y &
Load Y > Min
Loading
Cells Throughput Y
Cells Range Y
Range X.Y,
Throughput X, Y
Carriers X, Y
Throuput X
Figure 17: Final Optimisation - Example I
Cells Required Throughput X >
(Cells Required Range X & Cell Required Range Y& Cells Required Throughput Y)
Page 41 27/04/2020
Range X.Y,
Throughput X, Y
Carriers X, Y
Cells Range X >
(Cells Throughput X &
Cells Range Y &
Cells Throughput Y)
Yes
Yes
Noise Rise X < Min
No
Reduce Users
Loading
No
Cellsdiff > 0
Yes
Cells Range X,
Cells Throughput X
Carriers X, Y
Throuput X
No
Cells Range X >
Cells Range Y &
Cells Throughput Y &
Load Y > Min
Loading
Cells Throughput Y
Cells Range Y
Range X.Y,
Throughput X, Y
Carriers X, Y
Throuput X
Page 42 27/04/2020
Figure 19: UML Classes Diagram
Page 43 27/04/2020
Page 44 27/04/2020
7. Annex I
Cch,4,0 =(1,1,1,1)
Cch,2,0 = (1,1)
Cch,4,1 = (1,1,-1,-1)
Cch,1,0 = (1)
Cch,4,2 = (1,-1,1,-1)
Cch,2,1 = (1,-1)
Cch,4,3 = (1,-1,-1,1)
SF = 1 SF = 2 SF = 4
Page 45 27/04/2020
Annex II – Uplink
7.3 Uplink Mean Load Factor – (Circuit Switched)
double ulCalcLoadmeanCS (double ulConnections)
{
double ulLoadmeanCS = 0;
double beta = Math.log(10)/10;
double simConnections = ulCalcSimultaneousConnections (ulConnections) ;
// CS.
Iterator csTrafficQuantitiesIterator =
data.environment.year.ulTrafficQuantityRepository.getCSTrafficQuantities() ;
while (csTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)csTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.csServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double ff = data.environment.ffactor;
double s_pg = ulCalcProcessingGain(trafficQuantity.getActualBearerRate());
double arg1 =
(simConnectionsPerService)/((s_pg*data.variables.fractionalRecoveredPower)*ff);
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).ulStdDev ;
Page 46 27/04/2020
7.4 Uplink Mean Load Factor – (Packet Switched)
double ulCalcLoadmeanPS (double ulConnections)
{
double ulLoadmeanPS = 0;
double beta = Math.log(10)/10;
double simConnections = ulCalcSimultaneousConnections (ulConnections) ;
// PS.
Iterator psTrafficQuantitiesIterator =
data.environment.year.ulTrafficQuantityRepository.getPSTrafficQuantities() ;
while (psTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)psTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.psServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double ff = data.environment.ffactor;
double s_pg = ulCalcProcessingGain(trafficQuantity.getActualBearerRate());
double arg1 =
(simConnectionsPerService)/((s_pg*data.variables.fractionalRecoveredPower)*ff);
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).ulStdDev ;
Page 47 27/04/2020
7.5 Uplink Load Variance (Circuit Switched)
double ulCalcLoadVarCS (double ulConnections)
{
double ulLoadVarCS = 0;
double beta = Math.log(10)/10;
double simConnections = ulCalcSimultaneousConnections (ulConnections) ;
// CS.
Iterator csTrafficQuantitiesIterator =
data.environment.year.ulTrafficQuantityRepository.getCSTrafficQuantities() ;
while (csTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)csTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.csServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double ff = data.environment.ffactor;
double s_pg = ulCalcProcessingGain(trafficQuantity.getActualBearerRate());
double arg1 =
(simConnectionsPerService)/((s_pg*data.variables.fractionalRecoveredPower)*ff);
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.userSpeedDistributio
n, trafficQuantity).ulStdDev ;
Page 48 27/04/2020
7.6 Uplink Mean Load Variance – (Packet Switched)
double ulCalcLoadVarPS (double ulConnections)
{
double ulLoadVarPS = 0;
double beta = Math.log(10)/10;
double simConnections = ulCalcSimultaneousConnections (ulConnections) ;
// PS.
Iterator psTrafficQuantitiesIterator =
data.environment.year.ulTrafficQuantityRepository.getPSTrafficQuantities() ;
while (psTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)psTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.psServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double ff = data.environment.ffactor;
double s_pg = ulCalcProcessingGain(trafficQuantity.getActualBearerRate());
double arg1 =
(simConnectionsPerService)/((s_pg*data.variables.fractionalRecoveredPower)*ff);
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).ulStdDev ;
Page 49 27/04/2020
7.7 Uplink Noise Rise Calculation
double ulCalcNoiseRise (double ulConnections)
{
double ulNoiseRise = 0 ;
double noiserisepercentile=data.variables.noiseRisePercentile;
noiserisepercentile=1-2*(1-0.01*noiserisepercentile);
double pa=Math.sqrt(2)*erfinv(noiserisepercentile);
double noiserisepercentile=data.variables.noiseRisePercentile;
noiserisepercentile=1-2*(1-0.01*noiserisepercentile);
double pa=Math.sqrt(2)*erfinv(noiserisepercentile);
ulPercentileNoiseRise = (-10*(Math.log(1-pa*Math.sqrt(ulLoadvar)-
(ulLoadmean))/Math.log(10)));
return ulPercentileNoiseRise ;
}
Page 50 27/04/2020
7.9 Uplink Percentile Pathloss
double ulCalcPercentilepathloss(double ulPercentileNoiseRise, double fade_margin, double
ulPathlossDiff)
{
// Calculate base station Noise figure with/ without Mast Head Amplifier
double bsfig = data.variables.bsNoiseFigure + data.variables.cableLoss;
if (data.environment.year.usingMHA == true)
{
bsfig = 10*Math.log (Math.pow(10,(data.variables.mhaNoiseFigure)/10) + (Math.pow(10,
(data.variables.cableLoss)/10) -1)/ Math.pow(10,(data.variables.mhaGain)/10) +
Math.pow(10,(data.variables.bsNoiseFigure)/10) -1) / Math.pow(10,
(data.variables.mhaGain - data.variables.cableLoss)/10))/Math.log(10);
}
double ulPercentilepathloss=(MSEirp+data.environment.bsAntennaGain-bssens-
data.environment.penetrationLoss-fade_margin-ulPercentileNoiseRise
+data.variables.softHandOverGain-ulPathlossDiff);
return ulPercentilepathloss ;
}
Page 51 27/04/2020
// Calculate Gross Throughput (ulThroughputpercell) &
// Useful Throughput (ulUsefulThroughputpercell)
library.ulCalcThroughputPerCell(ulConnections, ulCarriers);
ulCellsrequiredThroughput=(ulTotalRequiredThroughput/(ulUsefulThroughputpercell
*ulCarriers));
Page 52 27/04/2020
ultotalNetworkThroughput = ulCellsrequiredThroughput * (ulThroughputpercell*ulCarriers) ;
ulCellsrequiredRange=data.environment.year.areaRequired/ulAreacell;
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange) ;
}
Page 53 27/04/2020
Annex III – Downlink
// CS.
Iterator csTrafficQuantitiesIterator =
data.environment.year.dlTrafficQuantityRepository.getCSTrafficQuantities() ;
while (csTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)csTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.csServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
// Note that here, the Nth user experiences the noise created by the other (N-1) users
// i.e it does not suffer from the nnoise it introduces into the system
double simConnections = dlCalcSimultaneousConnections (dlConnections) ;
if (data.environment.year.usingTXDiversity == true)
{
double SHOLinks = (data.environment.getSoftHandOverLinks() +
data.environment.getSofterHandOverLinks());
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).dlWithTxDivStdDev ;
Page 54 27/04/2020
environment.userSpeedDistribution, trafficQuantity).downLink)/10)+
(SHOLinks)*Math.pow(10,(serviceProfile.eBNoRepository.getActualRateEbNo(data.
environment.userSpeedDistribution, trafficQuantity).downLinkWithTxDiv)/10))/Math.log(10)))
+ EbNoStdVar);
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).dlStdDev ;
// PS.
Iterator psTrafficQuantitiesIterator =
data.environment.year.dlTrafficQuantityRepository.getPSTrafficQuantities() ;
Page 55 27/04/2020
while (psTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)psTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.psServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
// Note that here, the Nth user experiences the noise created by the other (N-1) users
// i.e it does not suffer from the nnoise it introduces into the system
double simConnections = dlCalcSimultaneousConnections (dlConnections) ;
if (data.environment.year.usingTXDiversity == true)
{
double SHOLinks = (data.environment.getSoftHandOverLinks() +
data.environment.getSofterHandOverLinks());
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).dlWithTxDivStdDev ;
double actualRateEbNoStdDev =
serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
Page 56 27/04/2020
userSpeedDistribution, trafficQuantity).dlStdDev ;
double noiserisepercentile=data.variables.noiseRisePercentile;
noiserisepercentile=1-2*(1-0.01*noiserisepercentile);
double pa=Math.sqrt(2)*erfinv(noiserisepercentile);
dlPercentileNoiseRise = (-10*(Math.log(1-pa*Math.sqrt(dlLoadvar)-
(dlLoadmean))/Math.log(10)));
Page 57 27/04/2020
return dlPercentileNoiseRise ;
}
if (data.environment.year.usingMHA==true)
{
dlTotalAntennaGain = data.environment.bsAntennaGain +
data.environment.year.msAntennaGain - data.environment.penetrationLoss -
data.environment.year.dlBodyLoss - data.variables.cableLoss - MHA_loss;
}
double dlPercentilepathloss = - UEsens + dlTotalAntennaGain- dlPercentileNoiseRise -
fade_margin + (data.variables.dlTransmitPowerPerTCH - 30) -
data.environment.year.coverageEbNtDL + dlCoverageRatePG - dlPathlossDiff;
return dlPercentilepathloss ;
}
double BTSPWR = 0 ;
double PGain = 0 ;
double MHA_loss = 0.5;
Page 58 27/04/2020
double UEsens = tnp+data.variables.ueNoiseFigure ;
if (data.environment.year.usingMHA==true)
{
dlTotalAntennaGain = data.environment.bsAntennaGain +
data.environment.year.msAntennaGain - data.environment.penetrationLoss -
data.environment.year.dlBodyLoss - data.variables.cableLoss -MHA_loss;
}
// CS.
Iterator csTrafficQuantitiesIterator =
data.environment.year.dlTrafficQuantityRepository.getCSTrafficQuantities() ;
while (csTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)csTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.csServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double connectionsPerService =
(dlConnections*trafficQuantity.getLink()*trafficQuantity.getEffectiveActivityFactorDL()) ;
PGain = 10*Math.log
(dlCalcProcessingGain(trafficQuantity.getActualBearerRate()))/Math.log(10);
// Here we do not apply a StdDev on the coverage EbNo as we assume that its already taken
into account in pNoiseRiseDL
if (data.environment.year.usingTXDiversity == true)
{
double SHOLinks = (data.environment.getSoftHandOverLinks() +
data.environment.getSofterHandOverLinks());
// Here the resultant EbNo in dB is averaged for connections with and without soft handover.
// It does not include an EbNo standard deviation as this is already accounted for in the
dlMeanload and the Percentile Noise Rise
Page 59 27/04/2020
double resultantEbNoWithTxDiv = (10*Math.log((1-SHOLinks)* Math.pow(10,
(serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).downLinkWithTxDiv)/10)+ (SHOLinks)* Math.pow(10,
(serviceProfile.eBNoRepository.getActualRateEbNo(data.environment.
userSpeedDistribution, trafficQuantity).downLinkWithTxDiv)/10))/Math.log(10));
// Here the resultant EbNo in dB is averaged for connections with and without soft handover.
// It does not include an EbNo standard deviation as this is already accounted for in the
dlMeanload and the Percentile Noise Rise
// PS.
Iterator psTrafficQuantitiesIterator =
data.environment.year.dlTrafficQuantityRepository.getPSTrafficQuantities() ;
while (psTrafficQuantitiesIterator.hasNext())
{
TrafficQuantity trafficQuantity = (TrafficQuantity)psTrafficQuantitiesIterator.next() ;
ServiceProfile serviceProfile =
data.psServiceProfileRepository.getServiceProfile(trafficQuantity.name) ;
double connectionsPerService =
(dlConnections*trafficQuantity.getLink()*trafficQuantity.getEffectiveActivityFactorDL()) ;
PGain = 10*Math.log
(dlCalcProcessingGain(trafficQuantity.getActualBearerRate()))/Math.log(10);
Page 60 27/04/2020
double dlCoverageRatePG = 10*Math.log
(dlCalcProcessingGain(data.environment.year.coverageRateDL*1000))/Math.log(10);
if (data.environment.year.usingTXDiversity == true)
{
double SHOLinks = (data.environment.getSoftHandOverLinks() +
data.environment.getSofterHandOverLinks());
return BTSPWR ;
}
Page 61 27/04/2020
7.15 Downlink Dimensioning
// Increase number of Downlink Users until min loading
stopopti = false ;
while ((library.cont() == true) & (dlMeanload< data.environment.dlMinLoad)
& (stopopti == false))
{
// Users & Useful Connections
dlActiveUsers = dlActiveUsers + incActiveUsers;
dlConnections = library.dlCalcActiveConnections(dlActiveUsers);
if (data.calcOVSF == true)
{
dlCodeAvailable = true ;
double sumCodes = library.dlCodeAvailability(dlConnections);
percentageNumberofCodesUsed = sumCodes / data.numberOfOVSFCodeTreesPerCarrier;
if (percentageNumberofCodesUsed > data.OVSFCodeTreeUtilisation)
dlCodeAvailable = false ;
}
dlMeanload = library.dlCalcMeanLoad(dlConnections) ;
dlPercentileNoiseRise = library.dlCalcPercentileNoiseRise(dlConnections) ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise, fade_margin,
dlPathlossDiff) ;
// Initial BTSPWR
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
// Reduce Range - Ensures that at least the min loading would be achieved
while ((library.cont() == true) & (BTSPWR > (data.variables.maxBTSPWR-
data.variables.maxPilot)))
{
dlPathlossDiff = dlPathlossDiff + decPathloss ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise, fade_margin,
dlPathlossDiff) ;
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
}
}
double dlMinActiveUsers = dlActiveUsers ;
Page 62 27/04/2020
dlMaxrange =Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
dlAreasite=dlMaxrange*dlMaxrange*2.598;
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
stopopti=false;
double dlCellsdiff=dlCellsrequiredThroughput-dlCellsRequiredRange;
if (data.calcOVSF == true)
{
dlCodeAvailable = true ;
double sumCodes = library.dlCodeAvailability(dlConnections);
percentageNumberofCodesUsed = sumCodes /data.numberOfOVSFCodeTreesPerCarrier ;
if (percentageNumberofCodesUsed > data.OVSFCodeTreeUtilisation)
dlCodeAvailable = false ;
}
dlMeanload = library.dlCalcMeanLoad(dlConnections) ;
dlPercentileNoiseRise = library.dlCalcPercentileNoiseRise(dlConnections) ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise, fade_margin,
dlPathlossDiff) ;
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
Page 63 27/04/2020
// Reduce Range - Ensures a cell is always loaded to max before the addition of a
carrier
while ((library.cont() == true) & (BTSPWR > (data.variables.maxBTSPWR
- data.variables.maxPilot)))
{
dlPathlossDiff = dlPathlossDiff + decPathloss ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise, fade_margin,
dlPathlossDiff) ;
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
}
dlCellsrequiredThroughput=(dlTotalRequiredThroughput/(dlUsefulThroughputpercell*dlCarriers));
dltotalNetworkThroughput= dlCellsrequiredThroughput * (dlThroughputpercell*dlCarriers) ;
dlMaxrange=Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
dlAreasite=dlMaxrange*dlMaxrange*2.598;
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
dlCellsdiff= (dlCellsrequiredThroughput-dlCellsRequiredRange);
}
Page 64 27/04/2020
Annex IV
7.16 Optimise for Carriers (Uplink > Downlink)
stopopti=false;
exit = false ;
if (ulCarriers>dlCarriers)
{
double tempCarriers = ulCarriers ;
ulCellsrequiredThroughput=(ulTotalRequiredThroughput/(ulUsefulThroughputpercell
*ulCarriers));
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange) ;
double tempPathlossDiff = ulPathlossDiff;
if (ulCellsdiff <= 0)
{
ulCarriers = ulCarriers + 1 ;
ulCellsrequiredThroughput=(ulTotalRequiredThroughput/(ulUsefulThroughputpercell
*ulCarriers));
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange) ;
exit = true ;
}
Page 65 27/04/2020
ulConnections = library.ulCalcActiveConnections(ulActiveUsers) ;
ulNoiseRise = library.ulCalcNoiseRise (ulConnections) ;
ulPercentileNoiseRise = library.ulCalcPercentileNoiseRise(ulConnections) ;
ulPercentilepathloss = library.ulCalcPercentilepathloss(ulPercentileNoiseRise,
fade_margin, ulPathlossDiff) ;
//DOWNLINK
//Increase number of carriers on the downlink to equal that of the uplink
if (dlCarriers != ulCarriers)
{
stopopti = false ;
dlCarriers= ulCarriers;
dlCellsrequiredThroughput=(dlTotalRequiredThroughput/(dlUsefulThroughputpercell
*dlCarriers));
dlCellsdiff= (dlCellsrequiredThroughput-dlCellsRequiredRange);
Page 66 27/04/2020
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
dlCellsrequiredThroughput=(dlTotalRequiredThroughput/(dlUsefulThroughputpercell
*dlCarriers));
dltotalNetworkThroughput=dlCellsrequiredThroughput * (dlThroughputpercell*dlCarriers);
dlMaxrange=Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
dlAreasite=dlMaxrange*dlMaxrange*2.598;
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
dlCellsdiff= (dlCellsrequiredThroughput-dlCellsRequiredRange);
}
}
else // prevents unnecessary re-dimensioning
stopopti = true ;
// While dlMeanLoad is > minimum and cellsdiff < 0 then reduce loading
while ((library.cont() == true) & (dlCellsdiff <0) & ((dlMeanload >
data.environment.dlMinLoad)|BTSPWR > (data.variables.maxBTSPWR-
data.variables.maxPilot))& (stopopti==false))
{
dlActiveUsers = dlActiveUsers - incActiveUsers;
if (dlActiveUsers > incActiveUsers)
{ dlActiveUsers = dlActiveUsers - incActiveUsers ; }
else
{ stopopti = true ;}
dlConnections = library.dlCalcActiveConnections(dlActiveUsers);
if (data.calcOVSF == true)
Page 67 27/04/2020
{
dlCodeAvailable = true ;
double sumCodes = library.dlCodeAvailability(dlConnections);
percentageNumberofCodesUsed = sumCodes
/ data.numberOfOVSFCodeTreesPerCarrier ;
if (percentageNumberofCodesUsed > data.OVSFCodeTreeUtilisation)
dlCodeAvailable = false ;
}
dlMeanload = library.dlCalcMeanLoad(dlConnections) ;
// BTSPWR
dlPercentileNoiseRise = library.dlCalcPercentileNoiseRise(dlConnections) ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise,
fade_margin, dlPathlossDiff) ;
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
ulConnections = library.ulCalcActiveConnections(ulActiveUsers) ;
Page 68 27/04/2020
ulNoiseRise = library.ulCalcNoiseRise (ulConnections) ;
ulPercentileNoiseRise = library.ulCalcPercentileNoiseRise(ulConnections) ;
ulPercentilepathloss = library.ulCalcPercentilepathloss(ulPercentileNoiseRise,
fade_margin, ulPathlossDiff) ;
library.ulCalcThroughputPerCell(ulConnections, ulCarriers);
ulCellsrequiredThroughput=(ulTotalRequiredThroughput/(ulUsefulThroughputpercell
*ulCarriers));
ultotalNetworkThroughput = ulCellsrequiredThroughput * (ulThroughputpercell*ulCarriers) ;
ulMaxrange=Math.pow(10,((ulPercentilepathloss-pathconst)/pathexp));
ulAreasite=ulMaxrange*ulMaxrange*2.598;
ulAreacell=ulAreasite/data.environment.numOfSectors;
ulCellsrequiredRange=data.environment.year.areaRequired/ulAreacell;
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange) ;
}
// Downlink
// decrease number of users
// For cases where DL range >= UL Range
exit = false ;
while (
(library.cont() == true) &
(ulCellsrequiredRange>dlCellsRequiredRange) &
(ulCellsrequiredRange>dlCellsrequiredThroughput) &
(dlMeanload>data.environment.dlMinLoad) &
(exit == false)
)
{
if (dlActiveUsers > incActiveUsers)
{ dlActiveUsers = dlActiveUsers - incActiveUsers; }
else
{ exit = true ;}
dlConnections = library.dlCalcActiveConnections(dlActiveUsers);
if (data.calcOVSF == true)
{
dlCodeAvailable = true ;
double sumCodes = library.dlCodeAvailability(dlConnections);
percentageNumberofCodesUsed = sumCodes
/ data.numberOfOVSFCodeTreesPerCarrier ;
if (percentageNumberofCodesUsed > data.OVSFCodeTreeUtilisation)
dlCodeAvailable = false ;
}
dlMeanload = library.dlCalcMeanLoad(dlConnections) ;
Page 69 27/04/2020
dlCellsrequiredThroughput=(dlTotalRequiredThroughput/(dlUsefulThroughputpercell
*dlCarriers));
dltotalNetworkThroughput= dlCellsrequiredThroughput * (dlThroughputpercell*dlCarriers) ;
dlPercentileNoiseRise = library.dlCalcPercentileNoiseRise(dlConnections) ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise,
fade_margin, dlPathlossDiff) ;
dlMaxrange=Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
dlAreasite=dlMaxrange*dlMaxrange*2.598;
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
// BTSPWR
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
}
if (ulMaxrange>dlMaxrange)
{
while (ulMaxrange>dlMaxrange) // Limit UL range if still greater than DL
{
ulPathlossDiff = ulPathlossDiff + decPathloss ;
ulPercentilepathloss = library.ulCalcPercentilepathloss(ulPercentileNoiseRise,
fade_margin, ulPathlossDiff) ;
ulMaxrange=Math.pow(10,((ulPercentilepathloss-pathconst)/pathexp));
}
ulAreasite=ulMaxrange*ulMaxrange*2.598;
ulAreacell=ulAreasite/data.environment.numOfSectors;
ulCellsrequiredRange=data.environment.year.areaRequired/ulAreacell;
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange);
}
else if (dlMaxrange>ulMaxrange)
{
while ((dlMaxrange>ulMaxrange)) // Limit DL range if still > UL at min loading
{
dlPathlossDiff = dlPathlossDiff + decPathloss ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise,
fade_margin, dlPathlossDiff) ;
dlMaxrange=Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
}
dlAreasite=dlMaxrange*dlMaxrange*2.598;
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
// BTSPWR
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
}
Page 70 27/04/2020
stopopti= true;
}
library.ulCalcThroughputPerCell(ulConnections, ulCarriers);
ulCellsrequiredThroughput=(ulTotalRequiredThroughput/
(ulUsefulThroughputpercell*ulCarriers));
ultotalNetworkThroughput = ulCellsrequiredThroughput * (ulThroughputpercell*ulCarriers) ;
ulMaxrange=Math.pow(10,((ulPercentilepathloss-pathconst)/pathexp));
ulAreasite=ulMaxrange*ulMaxrange*2.598;
ulAreacell=ulAreasite/data.environment.numOfSectors;
ulCellsrequiredRange=data.environment.year.areaRequired/ulAreacell;
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange) ;
}
// Reduce DL loading
exit = false ;
while ((library.cont() == true) &
(ulCellsrequiredThroughput>dlCellsrequiredThroughput) &
(ulCellsrequiredThroughput>dlCellsRequiredRange) &
(dlMeanload>data.environment.dlMinLoad) &
(exit == false))
{
if (dlActiveUsers > incActiveUsers)
{ dlActiveUsers = dlActiveUsers - incActiveUsers; }
else
{ exit = true ;}
dlConnections = library.dlCalcActiveConnections(dlActiveUsers);
if (data.calcOVSF == true)
{
Page 71 27/04/2020
dlCodeAvailable = true ;
double sumCodes = library.dlCodeAvailability(dlConnections);
percentageNumberofCodesUsed = sumCodes
/ data.numberOfOVSFCodeTreesPerCarrier ;
if (percentageNumberofCodesUsed > data.OVSFCodeTreeUtilisation)
dlCodeAvailable = false ;
}
dlMeanload = library.dlCalcMeanLoad(dlConnections) ;
dlPercentileNoiseRise = library.dlCalcPercentileNoiseRise(dlConnections) ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise,
fade_margin, dlPathlossDiff) ;
// BTSPWR
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot); // Total BTS Power
}
if (ulMaxrange>dlMaxrange)
{
while (ulMaxrange>dlMaxrange) // Limit UL range if still greater than DL
{
ulPathlossDiff = ulPathlossDiff + decPathloss ;
ulPercentilepathloss = library.ulCalcPercentilepathloss(ulPercentileNoiseRise,
fade_margin, ulPathlossDiff) ;
ulMaxrange=Math.pow(10,((ulPercentilepathloss-pathconst)/pathexp));
}
ulAreasite=ulMaxrange*ulMaxrange*2.598;
ulAreacell=ulAreasite/data.environment.numOfSectors;
ulCellsrequiredRange=data.environment.year.areaRequired/ulAreacell;
ulCellsdiff= (ulCellsrequiredThroughput-ulCellsrequiredRange);
}
else if (dlMaxrange>ulMaxrange)
{
while ((dlMaxrange>ulMaxrange)) // Limit DL range if still > UL at min loading
{
dlPathlossDiff = dlPathlossDiff + decPathloss ;
dlPercentilepathloss = library.dlCalcPercentilepathloss(dlPercentileNoiseRise,
fade_margin, dlPathlossDiff) ;
dlMaxrange=Math.pow(10,((dlPercentilepathloss-pathconstDL)/pathexp));
}
dlAreasite=dlMaxrange*dlMaxrange*2.598;
Page 72 27/04/2020
dlAreacell=dlAreasite/data.environment.numOfSectors;
dlCellsRequiredRange=data.environment.year.areaRequired/dlAreacell;
// BTSPWR
BTSPWR = library.dlCalcBTSPower(fade_margin, dlPercentileNoiseRise, dlPathlossDiff,
dlConnections, dlMeanload) ;
total_BTSPWR =(BTSPWR + data.variables.maxPilot);
}
stopopti= true;
}
Page 73 27/04/2020
References
Page 74 27/04/2020