author | Marco Miozzo <marco.miozzo@cttc.es> |
Wed, 13 Jul 2011 17:34:48 +0200 | |
changeset 8197 | d30c889fb0c2 |
parent 8195 | 62266d17165d |
child 8199 | c4a088b91ec8 |
permissions | -rw-r--r-- |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
1 |
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
2 |
/* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
3 |
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
4 |
* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
8 |
* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
13 |
* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
17 |
* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
18 |
* Author: Marco Miozzo <marco.miozzo@cttc.es> |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
19 |
* |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
20 |
*/ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
21 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
22 |
#include "ns3/propagation-loss-model.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
23 |
#include "ns3/log.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
24 |
#include "ns3/mobility-model.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
25 |
#include "ns3/double.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
26 |
#include "ns3/pointer.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
27 |
#include <math.h> |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
28 |
#include "buildings-propagation-loss-model.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
29 |
#include "ns3/buildings-mobility-model.h" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
30 |
|
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
31 |
NS_LOG_COMPONENT_DEFINE ("BuildingsPropagationLossModel"); |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
32 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
33 |
namespace ns3 { |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
34 |
|
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
35 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
36 |
NS_OBJECT_ENSURE_REGISTERED (BuildingsPropagationLossModel); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
37 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
38 |
TypeId |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
39 |
BuildingsPropagationLossModel::GetTypeId (void) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
40 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
41 |
static TypeId tid = TypeId ("ns3::BuildingsPropagationLossModel") |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
42 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
43 |
.SetParent<PropagationLossModel> () |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
44 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
45 |
.AddConstructor<BuildingsPropagationLossModel> () |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
46 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
47 |
.AddAttribute ("Lambda", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
48 |
"The wavelength (default is 2.3 GHz at 300 000 km/s).", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
49 |
DoubleValue (300000000.0 / 2.3e9), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
50 |
MakeDoubleAccessor (&BuildingsPropagationLossModel::m_lambda), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
51 |
MakeDoubleChecker<double> ()) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
52 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
53 |
.AddAttribute ("Frequency", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
54 |
"The Frequency (default is 2.3 GHz).", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
55 |
DoubleValue (2.3e9), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
56 |
MakeDoubleAccessor (&BuildingsPropagationLossModel::m_frequency), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
57 |
MakeDoubleChecker<double> ()) |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
58 |
|
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
59 |
.AddAttribute ("RooftopLevel", |
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
60 |
" The height of the rooftop [m].", |
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
61 |
DoubleValue (30.0), |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
62 |
MakeDoubleAccessor (&BuildingsPropagationLossModel::m_rooftopHeight), |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
63 |
MakeDoubleChecker<double> ()) |
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
64 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
65 |
.AddAttribute ("MinDistance", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
66 |
"The distance under which the propagation model refuses to give results (m) ", |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
67 |
DoubleValue (0.5), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
68 |
MakeDoubleAccessor (&BuildingsPropagationLossModel::SetMinDistance, &BuildingsPropagationLossModel::GetMinDistance), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
69 |
MakeDoubleChecker<double> ()); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
70 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
71 |
return tid; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
72 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
73 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
74 |
BuildingsPropagationLossModel::BuildingsPropagationLossModel () : |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
75 |
C (0), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
76 |
m_environment (Urban), |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
77 |
m_citySize (Large) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
78 |
{ |
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
79 |
NS_LOG_INFO (this << " BuildingsPropagationLossModel"); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
80 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
81 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
82 |
void |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
83 |
BuildingsPropagationLossModel::SetLambda (double frequency, double speed) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
84 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
85 |
m_lambda = speed / frequency; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
86 |
m_frequency = frequency; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
87 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
88 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
89 |
void |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
90 |
BuildingsPropagationLossModel::SetLambda (double lambda) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
91 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
92 |
m_lambda = lambda; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
93 |
m_frequency = 300000000 / lambda; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
94 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
95 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
96 |
double |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
97 |
BuildingsPropagationLossModel::GetLambda (void) const |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
98 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
99 |
return m_lambda; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
100 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
101 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
102 |
void |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
103 |
BuildingsPropagationLossModel::SetMinDistance (double minDistance) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
104 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
105 |
m_minDistance = minDistance; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
106 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
107 |
double |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
108 |
BuildingsPropagationLossModel::GetMinDistance (void) const |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
109 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
110 |
return m_minDistance; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
111 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
112 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
113 |
void |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
114 |
BuildingsPropagationLossModel::SetEnvironment (Environment env) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
115 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
116 |
m_environment = env; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
117 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
118 |
BuildingsPropagationLossModel::Environment |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
119 |
BuildingsPropagationLossModel::GetEnvironment (void) const |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
120 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
121 |
return m_environment; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
122 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
123 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
124 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
125 |
double |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
126 |
BuildingsPropagationLossModel::OkumuraHata (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
127 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
128 |
// Hp: a is the rooftop antenna (from GetLoss logic) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
129 |
double loss = 0.0; |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
130 |
if (m_frequency<=1.500e9) |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
131 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
132 |
// standard Okumura Hata (from wikipedia) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
133 |
double log_f = log10 (m_frequency); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
134 |
double log_aHeight = 13.82 * log10 (a->GetPosition ().z); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
135 |
double log_bHeight = 0.0; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
136 |
if (m_citySize == Large) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
137 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
138 |
if (m_frequency<200) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
139 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
140 |
log_bHeight = 8.29 * pow (log10 (1.54 * b->GetPosition ().z), 2) - 1.1; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
141 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
142 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
143 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
144 |
log_bHeight = 3.2 * pow (log10 (11.75 * b->GetPosition ().z), 2) - 4.97; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
145 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
146 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
147 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
148 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
149 |
log_bHeight = 0.8 + (1.1*log10(m_frequency) - 0.7)*b->GetPosition ().z - 1.56*log10(m_frequency); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
150 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
151 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
152 |
loss = 69.55 + (26.16 * log_f) - log_aHeight + (((44.9 - (6.55 * log_f) ))*log10 (a->GetDistanceFrom (b))) - log_bHeight; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
153 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
154 |
if (m_environment == SubUrban) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
155 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
156 |
loss += 2 * (pow(log10 (m_frequency / 28), 2)) - 5.4; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
157 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
158 |
else if (m_environment == OpenAreas) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
159 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
160 |
loss += -4.70*pow(log10(m_frequency),2) + 18.33*log10(m_frequency) - 40.94; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
161 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
162 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
163 |
} |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
164 |
else if (m_frequency <= 2.170e9) // max 3GPP freq EUTRA band #1 |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
165 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
166 |
// COST 231 Okumura model |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
167 |
double log_f = log10 (m_frequency); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
168 |
double log_aHeight = 13.83 * log10 (a->GetPosition ().z); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
169 |
double log_bHeight = 0.0; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
170 |
if (m_citySize == Large) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
171 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
172 |
log_bHeight = 3.2 * pow ((log10(11.75 * b->GetPosition ().z)),2); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
173 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
174 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
175 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
176 |
log_bHeight = 1.1*log10(m_frequency) - 0.7*b->GetPosition ().z - (1.56*log10(m_frequency) - 0.8); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
177 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
178 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
179 |
loss = 46.3 + (33.9 * log_f) - log_aHeight + (((44.9 - (6.55 * log_f) ))*log10 (a->GetDistanceFrom (b))) - log_bHeight; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
180 |
} |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
181 |
else if (m_frequency <= 2.690e9) // max 3GPP freq EUTRA band #1 |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
182 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
183 |
// Empirical model from |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
184 |
// "Path Loss Models for Suburban Scenario at 2.3GHz, 2.6GHz and 3.5GHz" |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
185 |
// Sun Kun, Wang Ping, Li Yingze |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
186 |
// Antennas, Propagation and EM Theory, 2008. ISAPE 2008. 8th International Symposium on |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
187 |
loss = 36 + 26*log10(a->GetDistanceFrom (b)); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
188 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
189 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
190 |
return (loss); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
191 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
192 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
193 |
|
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
194 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
195 |
double |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
196 |
BuildingsPropagationLossModel::ItuR1411 (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
197 |
{ |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
198 |
return (ItuR1411Los (a,b)); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
199 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
200 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
201 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
202 |
double |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
203 |
BuildingsPropagationLossModel::ItuR1411Los (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
204 |
{ |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
205 |
double dist = a->GetDistanceFrom (b); |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
206 |
double lossLow = 0.0; |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
207 |
double lossUp = 0.0; |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
208 |
double pi = 3.141592653589793; |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
209 |
double Lbp = 20*log10(m_lambda*m_lambda/(8*pi*a->GetPosition ().z*b->GetPosition ().z)); |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
210 |
double Rbp = (4 * a->GetPosition ().z * b->GetPosition ().z) / m_lambda; |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
211 |
// NS_LOG_INFO (this << " Lbp " << Lbp << " Rbp " << Rbp); |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
212 |
if (dist <= Rbp) |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
213 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
214 |
lossLow = Lbp + 20*log10(dist/Rbp); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
215 |
lossUp = Lbp + 20 + 25*log10(dist/Rbp); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
216 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
217 |
else |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
218 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
219 |
lossLow = Lbp + 40*log10(dist/Rbp); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
220 |
lossUp = Lbp + 20 + 40*log10(dist/Rbp); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
221 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
222 |
|
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
223 |
double loss = (lossUp + lossLow) / 2; |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
224 |
|
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
225 |
return (loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
226 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
227 |
|
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
228 |
double |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
229 |
BuildingsPropagationLossModel::ItuR1411Nlos (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
230 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
231 |
if ((a->GetPosition ().z>m_rooftopHeight) || (b->GetPosition ().z>m_rooftopHeight)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
232 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
233 |
return (ItuR1411NlosOverRooftop (a,b)); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
234 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
235 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
236 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
237 |
return (ItuR1411NlosStreetCanyons (a,b)); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
238 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
239 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
240 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
241 |
double |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
242 |
BuildingsPropagationLossModel::ItuR1411NlosOverRooftop (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
243 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
244 |
double Lori = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
245 |
if ((m_streetsOrientation>=0)&&(m_streetsOrientation<35)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
246 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
247 |
Lori = -10.0 + 0.354*m_streetsOrientation; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
248 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
249 |
else if ((m_streetsOrientation>=35)&&(m_streetsOrientation<55)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
250 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
251 |
Lori = 2.5 + 0.075*m_streetsOrientation; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
252 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
253 |
else if ((m_streetsOrientation>=55)&&(m_streetsOrientation<90)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
254 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
255 |
Lori = 2.5 + 0.075*m_streetsOrientation; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
256 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
257 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
258 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
259 |
NS_LOG_ERROR (this << " Street Orientation must be in [0,90]"); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
260 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
261 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
262 |
double Lrts = -8.2 -10*log10(m_streetsWidth) + 20*log10(m_rooftopHeight - b->GetPosition ().z) + Lori; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
263 |
double distance = a->GetDistanceFrom (b); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
264 |
double Dhb = a->GetPosition ().z - m_rooftopHeight; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
265 |
double ds = (m_lambda * distance * distance) / (Dhb * Dhb); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
266 |
double Lmsd = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
267 |
double pi = 3.141592653589793; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
268 |
if (ds < m_buildingsExtend) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
269 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
270 |
double Lbsh = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
271 |
double ka = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
272 |
double kd = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
273 |
double kf = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
274 |
if ((a->GetPosition ().z > m_rooftopHeight) || (b->GetPosition ().z > m_rooftopHeight)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
275 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
276 |
Lbsh = -18*log10(1+Dhb); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
277 |
ka = 54.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
278 |
kd = 18.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
279 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
280 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
281 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
282 |
Lbsh = 0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
283 |
kd = 18.0 - 15*Dhb/a->GetPosition ().z; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
284 |
if (distance <500) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
285 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
286 |
ka = 54.0 - 1.6*Dhb*distance/1000; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
287 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
288 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
289 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
290 |
ka = 54.0 - 0.8*Dhb; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
291 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
292 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
293 |
if ((m_environment==Urban)&&(m_citySize==Large)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
294 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
295 |
kf = 0.7*(m_frequency/925.0 -1); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
296 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
297 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
298 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
299 |
kf = 1.5*(m_frequency/925.0 -1); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
300 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
301 |
Lmsd = Lbsh + ka + kd*log10(distance/1000.0) + kf*log10(m_frequency) -9.0*log10(m_buildingSeparation); // CHECK last d (it's "b" in ITU) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
302 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
303 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
304 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
305 |
double theta = atan (Dhb/m_buildingSeparation); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
306 |
double rho = sqrt(Dhb*Dhb+m_buildingSeparation*m_buildingSeparation); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
307 |
double hb = a->GetPosition ().z; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
308 |
double Qm = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
309 |
if ((hb > m_rooftopHeight -1.0) && (hb < m_rooftopHeight + 1.0)) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
310 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
311 |
Qm = m_buildingSeparation / distance; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
312 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
313 |
else if (hb > m_rooftopHeight) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
314 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
315 |
Qm = 2.35*pow(Dhb/distance*sqrt(m_buildingSeparation/m_lambda), 0.9); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
316 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
317 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
318 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
319 |
Qm = m_buildingSeparation/(2*pi*distance)*sqrt(m_lambda/rho)*(1/theta-(1/(2*pi+theta))); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
320 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
321 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
322 |
Lmsd = -10*log10(Qm*Qm); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
323 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
324 |
double Lbf = 32.4 + 20*log10(distance/1000) + 20*log10(m_frequency); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
325 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
326 |
double loss = 0.0; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
327 |
if (Lrts + Lmsd > 0) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
328 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
329 |
loss = Lbf + Lrts + Lmsd; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
330 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
331 |
else |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
332 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
333 |
loss = Lbf; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
334 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
335 |
return (loss); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
336 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
337 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
338 |
double |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
339 |
BuildingsPropagationLossModel::ItuR1411NlosStreetCanyons (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
340 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
341 |
|
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
342 |
return (0.0); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
343 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
344 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
345 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
346 |
double |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
347 |
BuildingsPropagationLossModel::ItuR1238 (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
348 |
{ |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
349 |
double N = 0.0; |
8195
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
350 |
int n = abs (a->GetFloorNumber () - b->GetFloorNumber ()); |
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
351 |
NS_LOG_INFO (this << " A floor " << (uint16_t)a->GetFloorNumber () << " B floor " << (uint16_t)b->GetFloorNumber () << " n " << n); |
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
352 |
double Lf = 0.0; |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
353 |
Ptr<Building> aBuilding = a->GetBuilding (); |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
354 |
if (aBuilding->GetBuildingType () == Building::Residential) |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
355 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
356 |
N = 28; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
357 |
Lf = 4 * n; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
358 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
359 |
else if (aBuilding->GetBuildingType () == Building::Office) |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
360 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
361 |
N = 30; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
362 |
Lf = 15 + (4 * (n-1)); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
363 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
364 |
else if (aBuilding->GetBuildingType () == Building::Commercial) |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
365 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
366 |
N = 22; |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
367 |
Lf = 6 + (3 * (n-1)); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
368 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
369 |
else |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
370 |
{ |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
371 |
NS_LOG_ERROR (this << " Unkwnon Wall Type"); |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
372 |
} |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
373 |
|
8195
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
374 |
double loss = 20*log10(m_frequency) + N*log10(a->GetDistanceFrom (b)) + Lf - 28.0; |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
375 |
|
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
376 |
return (loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
377 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
378 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
379 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
380 |
double |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
381 |
BuildingsPropagationLossModel::BEWPL (Ptr<BuildingsMobilityModel> a) const |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
382 |
{ |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
383 |
double loss = 0.0; |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
384 |
Ptr<Building> aBuilding = a->GetBuilding (); |
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
385 |
if (aBuilding->GetExtWallsType () == Building::Wood) |
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
386 |
{ |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
387 |
loss = 4; |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
388 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
389 |
else if (aBuilding->GetExtWallsType () == Building::ConcreteWithWindows) |
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
390 |
{ |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
391 |
loss = 7; |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
392 |
} |
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
393 |
else if (aBuilding->GetExtWallsType () == Building::ConcreteWithoutWindows) |
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
394 |
{ |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
395 |
loss = 10; // 10 ~ 20 dB |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
396 |
} |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
397 |
else if (aBuilding->GetExtWallsType () == Building::StoneBlocks) |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
398 |
{ |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
399 |
loss = 12; |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
400 |
} |
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
401 |
|
8185
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
402 |
|
34b4d9b91019
Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8184
diff
changeset
|
403 |
return (loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
404 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
405 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
406 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
407 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
408 |
double |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
409 |
BuildingsPropagationLossModel::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
410 |
{ |
8187
92c99a893aa2
Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8185
diff
changeset
|
411 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
412 |
double distance = a->GetDistanceFrom (b); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
413 |
if (distance <= m_minDistance) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
414 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
415 |
return 0.0; |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
416 |
} |
8192
0d4ca39493cb
LtePathlossModelTestSuite first draft (compile and run)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8190
diff
changeset
|
417 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
418 |
// get the BuildingsMobilityModel pointers |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
419 |
Ptr<BuildingsMobilityModel> a1 = DynamicCast<BuildingsMobilityModel> (a); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
420 |
Ptr<BuildingsMobilityModel> b1 = DynamicCast<BuildingsMobilityModel> (b); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
421 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
422 |
double loss = 0.0; |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
423 |
NS_LOG_INFO (this << " rooftop " << m_rooftopHeight); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
424 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
425 |
if (a1->IsOutdoor ()) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
426 |
{ |
8192
0d4ca39493cb
LtePathlossModelTestSuite first draft (compile and run)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8190
diff
changeset
|
427 |
if (b1->IsOutdoor ()) |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
428 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
429 |
if (distance > 1000) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
430 |
{ |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
431 |
if ((a1->GetPosition ().z > m_rooftopHeight) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
432 |
|| (b1->GetPosition ().z > m_rooftopHeight)) |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
433 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
434 |
// Over the rooftop tranmission -> Okumura Hata |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
435 |
loss = OkumuraHata (a1, b1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
436 |
NS_LOG_INFO (this << " O-O (>1000): Over the rooftop -> OH : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
437 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
438 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
439 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
440 |
// TODO put a limit in distance (i.e., < 2000 for small cells) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
441 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
442 |
// short range outdoor communication within street canyon |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
443 |
loss = ItuR1411 (a1, b1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
444 |
NS_LOG_INFO (this << " 0-0 (>1000): down rooftop -> ITUR1411 : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
445 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
446 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
447 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
448 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
449 |
// short range outdoor communication within street canyon |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
450 |
loss = ItuR1411 (a1, b1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
451 |
NS_LOG_INFO (this << " 0-0 (<1000) Street canyon -> ITUR1411 : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
452 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
453 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
454 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
455 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
456 |
// b indoor |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
457 |
if (distance > 1000) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
458 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
459 |
loss = OkumuraHata (a1, b1) + BEWPL(b1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
460 |
NS_LOG_INFO (this << " 0-I (>1000) OH + BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
461 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
462 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
463 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
464 |
loss = ItuR1411 (a1, b1) + BEWPL(b1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
465 |
NS_LOG_INFO (this << " 0-I (<1000) ITUR1411 + BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
466 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
467 |
} // end b1->isIndoor () |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
468 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
469 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
470 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
471 |
// a is indoor |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
472 |
if (b1->IsIndoor ()) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
473 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
474 |
if (a1->GetBuilding () == b1->GetBuilding ()) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
475 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
476 |
// nodes are in same building -> indoor communication ITU-R P.1238 |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
477 |
loss = ItuR1238 (a1, b1); |
8195
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
478 |
NS_LOG_INFO (this << " I-I (same building) ITUR1238 : " << loss); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
479 |
|
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
480 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
481 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
482 |
{ |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
483 |
// nodes are in different buildings |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
484 |
loss = ItuR1411 (a1, b1) + BEWPL(a1) + BEWPL(b1); |
8195
62266d17165d
Add floor penetration loss in ITUP1238 model of BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8193
diff
changeset
|
485 |
NS_LOG_INFO (this << " I-I (different) ITUR1238 + 2*BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
486 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
487 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
488 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
489 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
490 |
// b is outdoor |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
491 |
if (distance > 1000) |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
492 |
{ |
8197
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
493 |
if ((a1->GetPosition ().z > m_rooftopHeight) |
d30c889fb0c2
Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8195
diff
changeset
|
494 |
|| (b1->GetPosition ().z > m_rooftopHeight)) |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
495 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
496 |
loss = OkumuraHata (a1, b1) + BEWPL(a1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
497 |
NS_LOG_INFO (this << " I-0 (>1000) over rooftop OH + BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
498 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
499 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
500 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
501 |
loss = ItuR1411 (a1, b1) + BEWPL(a1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
502 |
NS_LOG_INFO (this << " I-0 (>1000) down rooftop ITUR1411 + BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
503 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
504 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
505 |
else |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
506 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
507 |
loss = ItuR1411 (a1, b1) + BEWPL(a1); |
8193
4aa1c097a00e
LtePathlossModelTestSuite on-going work
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8192
diff
changeset
|
508 |
NS_LOG_INFO (this << " I-0 (<1000) ITUR1411 + BEL : " << loss); |
8184
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
509 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
510 |
} // end b1->IsIndoor () |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
511 |
} // end a1->IsOutdoor () |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
512 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
513 |
return (loss); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
514 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
515 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
516 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
517 |
double |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
518 |
BuildingsPropagationLossModel::DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
519 |
{ |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
520 |
return txPowerDbm + GetLoss (a, b); |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
521 |
} |
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
522 |
|
b2d61f172004
Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff
changeset
|
523 |
} // namespace ns3 |