A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
hybrid-buildings-propagation-loss-model.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Marco Miozzo <marco.miozzo@cttc.es>
7
* Nicola Baldo <nbaldo@cttc.es>
8
*
9
*/
10
11
#ifndef HYBRID_BUILDINGS_PROPAGATION_LOSS_MODEL_H_
12
#define HYBRID_BUILDINGS_PROPAGATION_LOSS_MODEL_H_
13
14
#include "
buildings-propagation-loss-model.h
"
15
16
#include "ns3/propagation-environment.h"
17
18
namespace
ns3
19
{
20
21
class
OkumuraHataPropagationLossModel
;
22
class
ItuR1411LosPropagationLossModel
;
23
class
ItuR1411NlosOverRooftopPropagationLossModel
;
24
class
ItuR1238PropagationLossModel
;
25
class
Kun2600MhzPropagationLossModel
;
26
27
/**
28
* @ingroup buildings
29
* @ingroup propagation
30
*
31
* @brief The HybridBuildingsPropagationModel is a compound of different models able to evaluate
32
* the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and
33
* outdoor communications).
34
*
35
* This model includes Hata model, COST231, ITU-R P.1411 (short range
36
* communications), ITU-R P.1238 (indoor communications), which are combined in order
37
* to be able to evaluate the pathloss under different scenarios, in detail:
38
* - Environments: urban, suburban, open-areas;
39
* - frequency: from 200 uo to 2600 MHz
40
* - short range communications vs long range communications
41
* - Node position respect to buildings: indoor, outdoor and hybrid (indoor <-> outdoor)
42
* - Building penetration loss
43
* - floors, etc...
44
*
45
* @warning This model works only with MobilityBuildingInfo
46
*
47
*/
48
49
class
HybridBuildingsPropagationLossModel
:
public
BuildingsPropagationLossModel
50
{
51
public
:
52
/**
53
* @brief Get the type ID.
54
* @return The object TypeId.
55
*/
56
static
TypeId
GetTypeId
();
57
HybridBuildingsPropagationLossModel
();
58
~HybridBuildingsPropagationLossModel
()
override
;
59
60
/**
61
* set the environment type
62
*
63
* @param env
64
*/
65
void
SetEnvironment
(
EnvironmentType
env);
66
67
/**
68
* set the size of the city
69
*
70
* @param size
71
*/
72
void
SetCitySize
(
CitySize
size);
73
74
/**
75
* set the propagation frequency
76
*
77
* @param freq
78
*/
79
void
SetFrequency
(
double
freq);
80
81
/**
82
* set the rooftop height
83
*
84
* @param rooftopHeight
85
*/
86
void
SetRooftopHeight
(
double
rooftopHeight);
87
88
/**
89
* @brief Compute the path loss according to the nodes position
90
* using the appropriate model.
91
*
92
* @param a the mobility model of the source
93
* @param b the mobility model of the destination
94
* @returns the propagation loss (in dBm)
95
*/
96
double
GetLoss
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const override
;
97
98
private
:
99
/**
100
* Compute the path loss using either OkumuraHataPropagationLossModel
101
* or Kun2600MhzPropagationLossModel.
102
*
103
* @param a The mobility model of the source.
104
* @param b The mobility model of the destination.
105
* @returns the propagation loss (in dBm).
106
*/
107
double
OkumuraHata
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const
;
108
/**
109
* Compute the path loss using either ItuR1411LosPropagationLossModel or
110
* ItuR1411NlosOverRooftopPropagationLossModel.
111
*
112
* @param a The mobility model of the source.
113
* @param b The mobility model of the destination.
114
* @returns the propagation loss (in dBm).
115
*/
116
double
ItuR1411
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const
;
117
/**
118
* Compute the path loss using ItuR1238PropagationLossModel.
119
*
120
* @param a The mobility model of the source.
121
* @param b The mobility model of the destination.
122
* @returns the propagation loss (in dBm).
123
*/
124
double
ItuR1238
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const
;
125
126
/// OkumuraHataPropagationLossModel
127
Ptr<OkumuraHataPropagationLossModel>
m_okumuraHata
;
128
/// ItuR1411LosPropagationLossModel
129
Ptr<ItuR1411LosPropagationLossModel>
m_ituR1411Los
;
130
/// ItuR1411NlosOverRooftopPropagationLossModel
131
Ptr<ItuR1411NlosOverRooftopPropagationLossModel>
m_ituR1411NlosOverRooftop
;
132
/// ItuR1238PropagationLossModel
133
Ptr<ItuR1238PropagationLossModel>
m_ituR1238
;
134
/// Kun2600MhzPropagationLossModel
135
Ptr<Kun2600MhzPropagationLossModel>
m_kun2600Mhz
;
136
137
double
m_itu1411NlosThreshold
;
///< in meters (switch Los -> NLoS)
138
double
m_rooftopHeight
;
///< Roof Height (in meters)
139
double
m_frequency
;
///< Operation frequency
140
};
141
142
}
// namespace ns3
143
144
#endif
/* HYBRID_BUILDINGS_PROPAGATION_LOSS_MODEL_H_ */
buildings-propagation-loss-model.h
ns3::BuildingsPropagationLossModel::BuildingsPropagationLossModel
BuildingsPropagationLossModel()
Definition
buildings-propagation-loss-model.cc:96
ns3::HybridBuildingsPropagationLossModel::SetCitySize
void SetCitySize(CitySize size)
set the size of the city
Definition
hybrid-buildings-propagation-loss-model.cc:111
ns3::HybridBuildingsPropagationLossModel::OkumuraHata
double OkumuraHata(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Compute the path loss using either OkumuraHataPropagationLossModel or Kun2600MhzPropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.cc:254
ns3::HybridBuildingsPropagationLossModel::m_rooftopHeight
double m_rooftopHeight
Roof Height (in meters)
Definition
hybrid-buildings-propagation-loss-model.h:138
ns3::HybridBuildingsPropagationLossModel::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
hybrid-buildings-propagation-loss-model.cc:49
ns3::HybridBuildingsPropagationLossModel::m_ituR1411NlosOverRooftop
Ptr< ItuR1411NlosOverRooftopPropagationLossModel > m_ituR1411NlosOverRooftop
ItuR1411NlosOverRooftopPropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.h:131
ns3::HybridBuildingsPropagationLossModel::SetFrequency
void SetFrequency(double freq)
set the propagation frequency
Definition
hybrid-buildings-propagation-loss-model.cc:118
ns3::HybridBuildingsPropagationLossModel::SetRooftopHeight
void SetRooftopHeight(double rooftopHeight)
set the rooftop height
Definition
hybrid-buildings-propagation-loss-model.cc:128
ns3::HybridBuildingsPropagationLossModel::m_ituR1411Los
Ptr< ItuR1411LosPropagationLossModel > m_ituR1411Los
ItuR1411LosPropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.h:129
ns3::HybridBuildingsPropagationLossModel::m_frequency
double m_frequency
Operation frequency.
Definition
hybrid-buildings-propagation-loss-model.h:139
ns3::HybridBuildingsPropagationLossModel::HybridBuildingsPropagationLossModel
HybridBuildingsPropagationLossModel()
Definition
hybrid-buildings-propagation-loss-model.cc:35
ns3::HybridBuildingsPropagationLossModel::m_itu1411NlosThreshold
double m_itu1411NlosThreshold
in meters (switch Los -> NLoS)
Definition
hybrid-buildings-propagation-loss-model.h:137
ns3::HybridBuildingsPropagationLossModel::ItuR1411
double ItuR1411(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Compute the path loss using either ItuR1411LosPropagationLossModel or ItuR1411NlosOverRooftopPropagat...
Definition
hybrid-buildings-propagation-loss-model.cc:267
ns3::HybridBuildingsPropagationLossModel::~HybridBuildingsPropagationLossModel
~HybridBuildingsPropagationLossModel() override
Definition
hybrid-buildings-propagation-loss-model.cc:44
ns3::HybridBuildingsPropagationLossModel::m_kun2600Mhz
Ptr< Kun2600MhzPropagationLossModel > m_kun2600Mhz
Kun2600MhzPropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.h:135
ns3::HybridBuildingsPropagationLossModel::ItuR1238
double ItuR1238(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Compute the path loss using ItuR1238PropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.cc:280
ns3::HybridBuildingsPropagationLossModel::m_okumuraHata
Ptr< OkumuraHataPropagationLossModel > m_okumuraHata
OkumuraHataPropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.h:127
ns3::HybridBuildingsPropagationLossModel::SetEnvironment
void SetEnvironment(EnvironmentType env)
set the environment type
Definition
hybrid-buildings-propagation-loss-model.cc:104
ns3::HybridBuildingsPropagationLossModel::GetLoss
double GetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Compute the path loss according to the nodes position using the appropriate model.
Definition
hybrid-buildings-propagation-loss-model.cc:135
ns3::HybridBuildingsPropagationLossModel::m_ituR1238
Ptr< ItuR1238PropagationLossModel > m_ituR1238
ItuR1238PropagationLossModel.
Definition
hybrid-buildings-propagation-loss-model.h:133
ns3::ItuR1238PropagationLossModel
This class implements the ITU-R 1238 propagation loss model.
Definition
itu-r-1238-propagation-loss-model.h:28
ns3::ItuR1411LosPropagationLossModel
the ITU-R 1411 LOS propagation model
Definition
itu-r-1411-los-propagation-loss-model.h:31
ns3::ItuR1411NlosOverRooftopPropagationLossModel
the ITU-R 1411 NLOS over rooftop propagation model
Definition
itu-r-1411-nlos-over-rooftop-propagation-loss-model.h:32
ns3::Kun2600MhzPropagationLossModel
Empirical propagation model for the 2.6 GHz frequency.
Definition
kun-2600-mhz-propagation-loss-model.h:30
ns3::OkumuraHataPropagationLossModel
this class implements the Okumura Hata propagation loss model
Definition
okumura-hata-propagation-loss-model.h:32
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
ptr.h:66
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:49
ns3::EnvironmentType
EnvironmentType
The type of propagation environment.
Definition
propagation-environment.h:24
ns3::CitySize
CitySize
The size of the city in which propagation takes place.
Definition
propagation-environment.h:37
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
buildings
model
hybrid-buildings-propagation-loss-model.h
Generated on Wed Jun 11 2025 13:15:27 for ns-3 by
1.13.2