Collapse All | Expand All

(-)a/src/propagation/doc/propagation.rst (-50 / +339 lines)
1
.. include:: replace.txt
1
.. include:: replace.txt
2
.. highlight:: cpp
2
3
3
.. _Propagation:
4
Propagation
5
-----------
4
6
5
###########
7
The |ns3| propagation module defines two generic interfaces, namely :cpp:class:PropagationLossModel
6
Propagation
8
and :cpp:class:PropagationDelayModel, for the modeling of respectively propagation loss and propagation delay.
7
###########
8
9
9
The |ns3| propagation module defines two generic interfaces, namely PropagationLossModel and PropagationDelayModel, for the modeling of respectively propagation loss and propagation delay.
10
PropagationLossModel
11
********************
10
12
13
Propagation loss models calculate the Rx signal power considering the Tx signal power and the
14
mutual Rx and Tx antennas positions.
11
15
12
++++++++++++++++++++
16
A propagation loss model can be "chained" to another one, making a list. The final Rx power
13
PropagationLossModel
17
takes into account all the chained models. In this way one can use a slow fading and a fast
14
++++++++++++++++++++
18
fading model (for example), or model separately different fading effects.
15
19
20
The following propagation delay models are implemented:
21
22
* Cost231PropagationLossModel
23
* FixedRssLossModel
24
* FriisPropagationLossModel
25
* ItuR1411LosPropagationLossModel
26
* ItuR1411NlosOverRooftopPropagationLossModel
27
* JakesPropagationLossModel
28
* Kun2600MhzPropagationLossModel
29
* LogDistancePropagationLossModel
30
* MatrixPropagationLossModel
31
* NakagamiPropagationLossModel
32
* OkumuraHataPropagationLossModel
33
* RandomPropagationLossModel
34
* RangePropagationLossModel
35
* ThreeLogDistancePropagationLossModel
36
* TwoRayGroundPropagationLossModel
37
38
Other models could be available thanks to other modules, e.g., the building module.
16
39
17
Each of the available propagation loss models of ns-3 is explained in
40
Each of the available propagation loss models of ns-3 is explained in
18
one of the following subsections.
41
one of the following subsections.
19
42
43
FriisPropagationLossModel
44
=========================
20
45
46
This model implements the Friis propagation loss model. This model was first described in [friis]_.
47
The original equation was described as:
21
48
22
FriisPropagationLossModel
49
.. math::
23
++++++++++++++++++++++++++++++++++++
50
51
  \frac{P_r}{P_t} = \frac{A_r A_t}{d^2\lambda^2}
52
53
with the following equation for the case of an isotropic antenna with no heat loss:
54

55
.. math::
56
57
  A_{isotr.} = \frac{\lambda^2}{4\pi}
58
59
The final equation becomes:
60
61
.. math::
62
63
  \frac{P_r}{P_t} = \frac{\lambda^2}{(4 \pi d)^2}
64
65
Modern extensions to this original equation are:
66
67
.. math::
68
69
  P_r = \frac{P_t G_t G_r \lambda^2}{(4 \pi d)^2 L}
70
71
With:
72
73
  :math:P_t : transmission power (W)
74

75
  :math:P_r : reception power (W)
76

77
  :math:G_t : transmission gain (unit-less)
78

79
  :math:G_r : reception gain (unit-less)
80

81
  :math:\lambda : wavelength (m)
82

83
  :math:d : distance (m)
84

85
  :math:L : system loss (unit-less)
86
87
In the implementation, :math:\lambda is calculated as
88
:math:\frac{C}{f}, where :math:C = 299792458 m/s is the speed of light in
89
vacuum, and :math:f is the frequency in Hz which can be configured by
90
the user via the Frequency attribute.
91
92
The Friis model is valid only for propagation in free space within
93
the so-called far field region, which can be considered
94
approximately as the region for :math:d > 3 \lambda.
95
The model will still return a value for :math:d > 3 \lambda, as
96
doing so (rather than triggering a fatal error) is practical for
97
many simulation scenarios. However, we stress that the values
98
obtained in such conditions shall not be considered realistic.
99
100
Related with this issue, we note that the Friis formula is
101
undefined for :math:d = 0, and results in
102
:math:P_r > P_t for :math:d < \lambda / 2 \sqrt{\pi}.
103
104
Both these conditions occur outside of the far field region, so in
105
principle the Friis model shall not be used in these conditions.
106
In practice, however, Friis is often used in scenarios where accurate
107
propagation modeling is not deemed important, and values of
108
:math:d = 0 can occur.
109
110
To allow practical use of the model in such
111
scenarios, we have to 1) return some value for :math:d = 0, and
112
2) avoid large discontinuities in propagation loss values (which
113
could lead to artifacts such as bogus capture effects which are
114
much worse than inaccurate propagation loss values). The two issues
115
are conflicting, as, according to the Friis formula,
116
:math:\lim_{d \to 0}  P_r = +\infty;
117
so if, for :math:d = 0, we use a fixed loss value, we end up with an infinitely large
118
discontinuity, which as we discussed can cause undesirable
119
simulation artifacts.
120
121
To avoid these artifact, this implementation of the Friis model
122
provides an attribute called MinLoss which allows to specify the
123
minimum total loss (in dB) returned by the model. This is used in
124
such a way that
125
:math:P_r continuously increases for :math:d \to 0, until
126
MinLoss is reached, and then stay constant; this allow to
127
return a value for :math:d = 0 and at the same time avoid
128
discontinuities. The model won't be much realistic, but at least
129
the simulation artifacts discussed before are avoided. The default value of
130
MinLoss is 0 dB, which means that by default the model will return
131
:math:P_r = P_t for :math:d <= \lambda / 2 \sqrt{\pi}.
132
We note that this value of :math:d is outside of the far field
133
region, hence the validity of the model in the far field region is
134
not affected.
24
135
25
136
26
TwoRayGroundPropagationLossModel
137
TwoRayGroundPropagationLossModel
27
++++++++++++++++++++++++++++++++
138
================================
139
140
This model implements a Two-Ray Ground propagation loss model ported from NS2
141
142
The Two-ray ground reflection model uses the formula
143
144
.. math::
145
146
  P_r = \frac{P_t * G_t * G_r * (H_t^2 * H_r^2)}{d^4 * L}
147
148
The original equation in Rappaport's book assumes :math:L = 1.
149
To be consistent with the free space equation, :math:L is added here.
150
151
:math:H_t and :math:H_r are set at the respective nodes :math:z coordinate plus a model parameter
152
set via SetHeightAboveZ.
153
154
The two-ray model does not give a good result for short distances, due to the
155
oscillation caused by constructive and destructive combination of the two
156
rays. Instead the Friis free-space model is used for small distances.
157
158
The crossover distance, below which Friis is used, is calculated as follows:
159
160
.. math::
161
162
  dCross = \frac{(4 * \pi * H_t * H_r)}{\lambda}
163
164
In the implementation,  :math:\lambda is calculated as
165
:math:\frac{C}{f}, where :math:C = 299792458 m/s is the speed of light in
166
vacuum, and :math:f is the frequency in Hz which can be configured by
167
the user via the Frequency attribute.
28
168
29
169
30
LogDistancePropagationLossModel
170
LogDistancePropagationLossModel
31
+++++++++++++++++++++++++++++++
171
===============================
172
173
This model implements a log distance propagation model.
174
175
The reception power is calculated with a so-called
176
log-distance propagation model:
177
178
.. math::
179
180
  L = L_0 + 10 n \log(\frac{d}{d_0})
181
182
where:
183
184
  :math:n : the path loss distance exponent
185

186
  :math:d_0 : reference distance (m)
187

188
  :math:L_0 : path loss at reference distance (dB)
189

190
  :math:d :  - distance (m)
191

192
  :math:L : path loss (dB)
193
194
When the path loss is requested at a distance smaller than
195
the reference distance, the tx power is returned.
32
196
33
ThreeLogDistancePropagationLossModel
197
ThreeLogDistancePropagationLossModel
34
++++++++++++++++++++++++++++++++++++
198
====================================
199
200
This model implements a log distance path loss propagation model with three distance
201
fields. This model is the same as ns3::LogDistancePropagationLossModel
202
except that it has three distance fields: near, middle and far with
203
different exponents.
204
205
Within each field the reception power is calculated using the log-distance
206
propagation equation:
207
208
.. math::
209
210
  L = L_0 + 10 \cdot n_0 \log_{10}(\frac{d}{d_0})
211
212
Each field begins where the previous ends and all together form a continuous function.
213
214
There are three valid distance fields: near, middle, far. Actually four: the
215
first from 0 to the reference distance is invalid and returns txPowerDbm.
216
217
.. math::
218
219
  \underbrace{0 \cdots\cdots}_{=0} \underbrace{d_0 \cdots\cdots}_{n_0} \underbrace{d_1 \cdots\cdots}_{n_1} \underbrace{d_2 \cdots\cdots}_{n_2} \infty
220
221
Complete formula for the path loss in dB:
222
223
224
.. math::
225
226
  \displaystyle L =
227
  \begin{cases}
228
  0 & d < d_0 \\
229
  L_0 + 10 \cdot n_0 \log_{10}(\frac{d}{d_0}) & d_0 \leq d < d_1 \\
230
  L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d}{d_1}) & d_1 \leq d < d_2 \\
231
  L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d_2}{d_1}) + 10 \cdot n_2 \log_{10}(\frac{d}{d_2})& d_2 \leq d
232
  \end{cases}
233
234
where:
235
236

237
  :math:d_0, d_1, d_2 : three distance fields (m)
238

239
  :math:n_0, n_1, n_2 : path loss distance exponent for each field (unitless)
240

241
  :math:L_0 : path loss at reference distance (dB)
242

243
  :math:d :  - distance (m)
244

245
  :math:L : path loss (dB)
246
247
When the path loss is requested at a distance smaller than the reference
248
distance :math:d_0, the tx power (with no path loss) is returned. The
249
reference distance defaults to 1m and reference loss defaults to
250
:cpp:class:FriisPropagationLossModel with 5.15 GHz and is thus :math:L_0 = 46.67 dB.
35
251
36
JakesPropagationLossModel
252
JakesPropagationLossModel
37
+++++++++++++++++++++++++
253
=========================
38
254
39
PropagationLossModel
255
ToDo
40
++++++++++++++++++++
256

41
257
42
RandomPropagationLossModel
258
RandomPropagationLossModel
43
++++++++++++++++++++++++++
259
==========================
260
261
The propagation loss is totally random, and it changes each time the model is called.
262
As a consequence, all the packets (even those between two fixed nodes) experience a random
263
propagation loss.
44
264
45
NakagamiPropagationLossModel
265
NakagamiPropagationLossModel
46
++++++++++++++++++++++++++++
266
============================
267
268
This propagation loss model implements Nakagami-m fast fading propagation loss model.
269
270
The Nakagami-m distribution is applied to the power level. The probability density function is defined as
271
272
.. math::
273
274
  p(x; m, \omega) = \frac{2 m^m}{\Gamma(m) \omega^m} x^{2m - 1} e^{-\frac{m}{\omega} x^2} = 2 x \cdot p_{\text{Gamma}}(x^2, m, \frac{m}{\omega})
275

276
with :math:m the fading depth parameter and :math:\omega the average received power.
277
278
It is implemented by either a :cpp:class:GammaRandomVariable or a :cpp:class:ErlangRandomVariable
279
random variable.
280
281
Like in :cpp:class:ThreeLogDistancePropagationLossModel, the :math:m parameter is varied
282
over three distance fields:
283
284
.. math::
285
286
  \underbrace{0 \cdots\cdots}_{m_0} \underbrace{d_1 \cdots\cdots}_{m_1} \underbrace{d_2 \cdots\cdots}_{m_2} \infty
287
288
For :math:m = 1 the Nakagami-m distribution equals the Rayleigh distribution. Thus
289
this model also implements Rayleigh distribution based fast fading.
47
290
48
FixedRssLossModel
291
FixedRssLossModel
49
+++++++++++++++++
292
=================
293
294
This model sets a constant received power level independent of the transmit power.
295
296
The received power is constant independent of the transmit power; the user
297
must set received power level.  Note that if this loss model is chained to other loss
298
models, it should be the first loss model in the chain. 
299
Else it will disregard the losses computed by loss models that precede it in the chain. 
50
300
51
MatrixPropagationLossModel
301
MatrixPropagationLossModel
52
++++++++++++++++++++++++++
302
==========================
303
304
The propagation loss is fixed for each pair of nodes and doesn't depend on their actual positions.
305
This model shoud be useful for synthetic tests. Note that by default the propagation loss is 
306
assumed to be symmetric.
53
307
54
RangePropagationLossModel
308
RangePropagationLossModel
55
+++++++++++++++++++++++++
309
=========================
56
310
311
This propagation loss depends only on the distance (range) between transmitter and receiver.
57
312
58
313
The single MaxRange attribute (units of meters) determines path loss.
314
Receivers at or within MaxRange meters receive the transmission at the
315
transmit power level. Receivers beyond MaxRange receive at power
316
-1000 dBm (effectively zero).
59
317
60
OkumuraHataPropagationLossModel
318
OkumuraHataPropagationLossModel
61
+++++++++++++++++++++++++++++++
319
===============================
62
320
63
This model is used to model open area pathloss for long distance (i.e., > 1 Km). In order to include all the possible frequencies usable by LTE we need to consider several variants of the well known Okumura Hata model. In fact, the original Okumura Hata model [hata]_ is designed for frequencies ranging from 150 MHz to 1500 MHz, the COST231 [cost231]_ extends it for the frequency range from 1500 MHz to 2000 MHz. Another important aspect is the scenarios considered by the models, in fact the all models are originally designed for urban scenario and then only the standard one and the COST231 are extended to suburban, while only the standard one has been extended to open areas. Therefore, the model cannot cover all scenarios at all frequencies. In the following we detail the models adopted.
321
This model is used to model open area pathloss for long distance (i.e., > 1 Km). 
64
322
In order to include all the possible frequencies usable by LTE we need to consider 
65
323
several variants of the well known Okumura Hata model. In fact, the original Okumura 
324
Hata model [hata]_ is designed for frequencies ranging from 150 MHz to 1500 MHz, 
325
the COST231 [cost231]_ extends it for the frequency range from 1500 MHz to 2000 MHz. 
326
Another important aspect is the scenarios considered by the models, in fact the all 
327
models are originally designed for urban scenario and then only the standard one and 
328
the COST231 are extended to suburban, while only the standard one has been extended 
329
to open areas. Therefore, the model cannot cover all scenarios at all frequencies. 
330
In the following we detail the models adopted.
66
331
67
The pathloss expression of the COST231 OH is:
332
The pathloss expression of the COST231 OH is:
68
333
76
341
77
  F(h_\mathrm{M}) = \left\{\begin{array}{ll} (1.1\log(f))-0.7 \times h_\mathrm{M} - (1.56\times \log(f)-0.8) & \mbox{for medium and small size cities} \\ 3.2\times (\log{(11.75\times h_\mathrm{M}}))^2 & \mbox{for large cities}\end{array} \right.
342
  F(h_\mathrm{M}) = \left\{\begin{array}{ll} (1.1\log(f))-0.7 \times h_\mathrm{M} - (1.56\times \log(f)-0.8) & \mbox{for medium and small size cities} \\ 3.2\times (\log{(11.75\times h_\mathrm{M}}))^2 & \mbox{for large cities}\end{array} \right.
78
343
79
80
.. math::
344
.. math::
81
345
82
  C = \left\{\begin{array}{ll} 0dB & \mbox{for medium-size cities and suburban areas} \\ 3dB & \mbox{for large cities}\end{array} \right.
346
  C = \left\{\begin{array}{ll} 0dB & \mbox{for medium-size cities and suburban areas} \\ 3dB & \mbox{for large cities}\end{array} \right.
131
  L_\mathrm{O} = L_\mathrm{U} - 4.70 (\log{f})^2 + 18.33\log{f} - 40.94
395
  L_\mathrm{O} = L_\mathrm{U} - 4.70 (\log{f})^2 + 18.33\log{f} - 40.94
132
396
133
397
134
The literature lacks of extensions of the COST231 to open area (for suburban it seems that we can just impose C = 0); therefore we consider it a special case fo the suburban one.
398
The literature lacks of extensions of the COST231 to open area (for suburban it seems that 
399
we can just impose C = 0); therefore we consider it a special case fo the suburban one.
135
400
136
401
402
Cost231PropagationLossModel
403
===========================
137
404
405
ToDo
406

138
407
139
ItuR1411LosPropagationLossModel
408
ItuR1411LosPropagationLossModel
140
+++++++++++++++++++++++++++++++
409
===============================
141
410
142
This model is designed for Line-of-Sight (LoS) short range outdoor communication in the frequency range 300 MHz to 100 GHz.  This model provides an upper and lower bound respectively according to the following formulas
411
This model is designed for Line-of-Sight (LoS) short range outdoor communication in the 
412
frequency range 300 MHz to 100 GHz.  This model provides an upper and lower bound 
413
respectively according to the following formulas
143
414
144
.. math::
415
.. math::
145
416
175
446
176
447
177
ItuR1411NlosOverRooftopPropagationLossModel
448
ItuR1411NlosOverRooftopPropagationLossModel
178
+++++++++++++++++++++++++++++++++++++++++++
449
===========================================
179
450
180
This model is designed for Non-Line-of-Sight (LoS) short range outdoor communication over rooftops in the frequency range 300 MHz to 100 GHz. This model includes several scenario-dependent parameters, such as average street width, orientation, etc. It is advised to set the values of these parameters manually (using the ns-3 attribute system) according to the desired scenario. 
451
This model is designed for Non-Line-of-Sight (LoS) short range outdoor communication over 
452
rooftops in the frequency range 300 MHz to 100 GHz. This model includes several scenario-dependent 
453
parameters, such as average street width, orientation, etc. It is advised to set the values of 
454
these parameters manually (using the ns-3 attribute system) according to the desired scenario. 
181
455
182
In detail, the model is based on [walfisch]_ and [ikegami]_, where the loss is expressed as the sum of free-space loss (:math:L_{bf}), the diffraction loss from rooftop to street (:math:L_{rts}) and the reduction due to multiple screen diffraction past rows of building (:math:L_{msd}). The formula is:
456
In detail, the model is based on [walfisch]_ and [ikegami]_, where the loss is expressed 
457
as the sum of free-space loss (:math:L_{bf}), the diffraction loss from rooftop to 
458
street (:math:L_{rts}) and the reduction due to multiple screen diffraction past 
459
rows of building (:math:L_{msd}). The formula is:
183
460
184
.. math::
461
.. math::
185
462
216
  :math:\varphi : is the street orientation with respect to the direct path (degrees)
493
  :math:\varphi : is the street orientation with respect to the direct path (degrees)
217
494
218
495
219
The multiple screen diffraction loss depends on the BS antenna height relative to the building height and on the incidence angle. The former is selected as the higher antenna in the communication link. Regarding the latter, the "settled field distance" is used for select the proper model; its value is given by
496
The multiple screen diffraction loss depends on the BS antenna height relative to the building 
497
height and on the incidence angle. The former is selected as the higher antenna in the communication 
498
link. Regarding the latter, the "settled field distance" is used for select the proper model; 
499
its value is given by
220
500
221
.. math::
501
.. math::
222
502
226
506
227
  :math:\Delta h_b = h_b - h_m
507
  :math:\Delta h_b = h_b - h_m
228
508
229
Therefore, in case of :math:l > d_s (where l is the distance over which the building extend), it can be evaluated according to
509
Therefore, in case of :math:l > d_s (where l is the distance over which the building extend), 
510
it can be evaluated according to
230
511
231
.. math::
512
.. math::
232
513
279
  \rho = \sqrt{\Delta h_b^2 + b^2}
560
  \rho = \sqrt{\Delta h_b^2 + b^2}
280
561
281
562
563
Kun2600MhzPropagationLossModel
564
==============================
282
565
283
Kun2600MhzPropagationLossModel
566
This is the empirical model for the pathloss at 2600 MHz for urban areas which is described in [kun2600mhz]_. 
284
++++++++++++++++++++++++++++++
567
The model is as follows. Let :math:d be the distance between the transmitter and the receiver 
285
568
in meters; the pathloss :math:L in dB is calculated as:
286
This is the empirical model for the pathloss at 2600 MHz for urban areas which is described in [kun2600mhz]_. The model is as follows. Let :math:d be the distance between the transmitter and the receiver in meters; the pathloss :math:L in dB is calculated as:
287
569
288
.. math::
570
.. math::
289
571
290
  L = 36 + 26\log{d}
572
  L = 36 + 26\log{d}
291
573
292
574
293
294
295
+++++++++++++++++++++
296
PropagationDelayModel
575
PropagationDelayModel
297
+++++++++++++++++++++
576
*********************
298
299
577
300
The following propagation delay models are implemented:
578
The following propagation delay models are implemented:
301
579
302
PropagationDelayModel
580
* ConstantSpeedPropagationDelayModel
303
+++++++++++++++++++++
581
* RandomPropagationDelayModel
582
583
ConstantSpeedPropagationDelayModel
584
==================================
585
586
In this model, the signal travels with constant speed.
587
The delay is calculated according with the trasmitter and receiver positions.
588
The Euclidean distance between the Tx and Rx antennas is used.
589
Beware that, according to this model, the Earth is flat.
304
590
305
RandomPropagationDelayModel
591
RandomPropagationDelayModel
306
+++++++++++++++++++++++++++
592
===========================
307
593
308
ConstantSpeedPropagationDelayModel
594
The propagation delay is totally random, and it changes each time the model is called.
309
++++++++++++++++++++++++++++++++++
595
All the packets (even those between two fixed nodes) experience a random delay.
596
As a consequence, the packets order is not preserved. 
310
597
311
598
599
References
600
**********
312
601
313
602
.. [friis] Friis, H.T., "A Note on a Simple Transmission Formula," Proceedings of the IRE , vol.34, no.5, pp.254,256, May 1946
314
603
315
.. [hata] M.Hata, "Empirical formula for propagation loss in land mobile radio
604
.. [hata] M.Hata, "Empirical formula for propagation loss in land mobile radio
316
   services", IEEE Trans. on Vehicular Technology, vol. 29, pp. 317-325, 1980
605
   services", IEEE Trans. on Vehicular Technology, vol. 29, pp. 317-325, 1980
(-)a/src/propagation/model/propagation-loss-model.cc (-1 / +1 lines)
125
                                           Ptr<MobilityModel> b) const
125
                                           Ptr<MobilityModel> b) const
126
{
126
{
127
  double rxc = -m_variable->GetValue ();
127
  double rxc = -m_variable->GetValue ();
128
  NS_LOG_DEBUG ("attenuation coefficent="<<rxc<<"Db");
128
  NS_LOG_DEBUG ("attenuation coefficient="<<rxc<<"Db");
129
  return txPowerDbm + rxc;
129
  return txPowerDbm + rxc;
130
}
130
}
131
131
(-)a/src/propagation/model/propagation-loss-model.h (-4 / +4 lines)
239
 * are conflicting, as, according to the Friis formula, 
239
 * are conflicting, as, according to the Friis formula, 
240
 * \f$\lim_{d \to 0 } P_r = +\infty \f$;
240
 * \f$\lim_{d \to 0 } P_r = +\infty \f$;
241
 * so if, for \f$d = 0 \f$, we use a fixed loss value, we end up with an infinitely large
241
 * so if, for \f$d = 0 \f$, we use a fixed loss value, we end up with an infinitely large
242
 * discontinuity, which as we discussed can cause undesireable
242
 * discontinuity, which as we discussed can cause undesirable
243
 * simulation artifacts.
243
 * simulation artifacts.
244
 *
244
 *
245
 * To avoid these artifact, this implmentation of the Friis model
245
 * To avoid these artifact, this implementation of the Friis model
246
 * provides an attribute called MinLoss which allows to specify the
246
 * provides an attribute called MinLoss which allows to specify the
247
 * minimum total loss (in dB) returned by the model. This is used in
247
 * minimum total loss (in dB) returned by the model. This is used in
248
 * such a way that 
248
 * such a way that 
350
 *
350
 *
351
 * Two-ray ground reflection model.
351
 * Two-ray ground reflection model.
352
 *
352
 *
353
 * \f$Pr = \frac{Pt * Gt * Gr * (ht^2 * hr^2)}{d^4 * L} \f$
353
 * \f$Pr = \frac{P_t * G_t * G_r * (H_t^2 * H_r^2)}{d^4 * L} \f$
354
 *
354
 *
355
 * The original equation in Rappaport's book assumes L = 1.
355
 * The original equation in Rappaport's book assumes L = 1.
356
 * To be consistent with the free space equation, L is added here.
356
 * To be consistent with the free space equation, L is added here.
364
 *
364
 *
365
 * The crossover distance, below which Friis is used, is calculated as follows:
365
 * The crossover distance, below which Friis is used, is calculated as follows:
366
 *
366
 *
367
 * \f$dCross = \frac{(4 * pi * Ht * Hr)}{lambda} \f$
367
 * \f$dCross = \frac{(4 * \pi * H_t * H_r)}{\lambda} \f$
368
 *
368
 *
369
 * In the implementation,  \f$\lambda \f$ is calculated as 
369
 * In the implementation,  \f$\lambda \f$ is calculated as 
370
 * \f$\frac{C}{f} \f$, where  \f$C = 299792458\f$ m/s is the speed of light in
370
 * \f$\frac{C}{f} \f$, where  \f$C = 299792458\f$ m/s is the speed of light in`