A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
three-gpp-v2v-propagation-loss-model.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2020 SIGNET Lab, Department of Information Engineering,
4
* University of Padova
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation;
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*/
19
20
#ifndef THREE_GPP_V2V_PROPAGATION_LOSS_MODEL_H
21
#define THREE_GPP_V2V_PROPAGATION_LOSS_MODEL_H
22
23
#include "
three-gpp-propagation-loss-model.h
"
24
25
namespace
ns3
{
26
33
class
ThreeGppV2vUrbanPropagationLossModel
:
public
ThreeGppPropagationLossModel
34
{
35
public
:
40
static
TypeId
GetTypeId
(
void
);
41
45
ThreeGppV2vUrbanPropagationLossModel
();
46
50
virtual
~ThreeGppV2vUrbanPropagationLossModel
()
override
;
51
57
ThreeGppV2vUrbanPropagationLossModel
(
const
ThreeGppV2vUrbanPropagationLossModel
&) =
delete
;
58
65
ThreeGppV2vUrbanPropagationLossModel
&
operator =
(
const
ThreeGppV2vUrbanPropagationLossModel
&) =
delete
;
66
67
private
:
77
virtual
double
GetLossLos
(
double
distance2D,
double
distance3D,
double
hUt,
double
hBs)
const override
;
78
88
virtual
double
GetLossNlosv
(
double
distance2D,
double
distance3D,
double
hUt,
double
hBs)
const override
;
89
99
virtual
double
GetLossNlos
(
double
distance2D,
double
distance3D,
double
hUt,
double
hBs)
const override
;
100
108
double
GetAdditionalNlosvLoss
(
double
distance3D,
double
hUt,
double
hBs)
const
;
109
117
virtual
double
GetShadowingStd
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b,
ChannelCondition::LosConditionValue
cond)
const override
;
118
124
virtual
double
GetShadowingCorrelationDistance
(
ChannelCondition::LosConditionValue
cond)
const override
;
125
126
double
m_percType3Vehicles
;
127
Ptr<UniformRandomVariable>
m_uniformVar
;
128
Ptr<LogNormalRandomVariable>
m_logNorVar
;
129
};
130
137
class
ThreeGppV2vHighwayPropagationLossModel
:
public
ThreeGppV2vUrbanPropagationLossModel
138
{
139
public
:
144
static
TypeId
GetTypeId
(
void
);
145
149
ThreeGppV2vHighwayPropagationLossModel
();
150
154
virtual
~ThreeGppV2vHighwayPropagationLossModel
()
override
;
155
156
private
:
166
virtual
double
GetLossLos
(
double
distance2D,
double
distance3D,
double
hUt,
double
hBs)
const override
;
167
};
168
169
}
// namespace ns3
170
171
#endif
/* THREE_GPP_V2V_PROPAGATION_LOSS_MODEL_H */
ns3::ThreeGppV2vUrbanPropagationLossModel::~ThreeGppV2vUrbanPropagationLossModel
virtual ~ThreeGppV2vUrbanPropagationLossModel() override
Destructor.
Definition:
three-gpp-v2v-propagation-loss-model.cc:61
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
ns3::ThreeGppV2vHighwayPropagationLossModel::~ThreeGppV2vHighwayPropagationLossModel
virtual ~ThreeGppV2vHighwayPropagationLossModel() override
Destructor.
Definition:
three-gpp-v2v-propagation-loss-model.cc:219
ns3::ThreeGppV2vHighwayPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition:
three-gpp-v2v-propagation-loss-model.cc:203
ns3::ThreeGppV2vUrbanPropagationLossModel::GetLossNlos
virtual double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed by a building.
Definition:
three-gpp-v2v-propagation-loss-model.cc:144
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::ThreeGppV2vUrbanPropagationLossModel
Implements the pathloss model defined in 3GPP TR 37.885, Table 6.2.1-1 for the Urban scenario.
Definition:
three-gpp-v2v-propagation-loss-model.h:34
ns3::ThreeGppV2vUrbanPropagationLossModel::m_logNorVar
Ptr< LogNormalRandomVariable > m_logNorVar
log normal random variable
Definition:
three-gpp-v2v-propagation-loss-model.h:128
ns3::ThreeGppV2vHighwayPropagationLossModel
Implements the pathloss model defined in 3GPP TR 37.885, Table 6.2.1-1 for the Highway scenario.
Definition:
three-gpp-v2v-propagation-loss-model.h:138
ns3::ThreeGppV2vUrbanPropagationLossModel::ThreeGppV2vUrbanPropagationLossModel
ThreeGppV2vUrbanPropagationLossModel()
Constructor.
Definition:
three-gpp-v2v-propagation-loss-model.cc:49
ns3::ThreeGppV2vUrbanPropagationLossModel::GetAdditionalNlosvLoss
double GetAdditionalNlosvLoss(double distance3D, double hUt, double hBs) const
Computes the additional loss due to an obstruction caused by a vehicle.
Definition:
three-gpp-v2v-propagation-loss-model.cc:89
ns3::ChannelCondition::LosConditionValue
LosConditionValue
Possible values for Line-of-Sight condition.
Definition:
channel-condition-model.h:49
ns3::ThreeGppV2vHighwayPropagationLossModel::ThreeGppV2vHighwayPropagationLossModel
ThreeGppV2vHighwayPropagationLossModel()
Constructor.
Definition:
three-gpp-v2v-propagation-loss-model.cc:213
ns3::Ptr< MobilityModel >
ns3::ThreeGppV2vUrbanPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition:
three-gpp-v2v-propagation-loss-model.cc:34
ns3::ThreeGppV2vHighwayPropagationLossModel::GetLossLos
virtual double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
Definition:
three-gpp-v2v-propagation-loss-model.cc:225
ns3::ThreeGppV2vUrbanPropagationLossModel::GetShadowingCorrelationDistance
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading correlation distance.
Definition:
three-gpp-v2v-propagation-loss-model.cc:176
ns3::ThreeGppV2vUrbanPropagationLossModel::GetShadowingStd
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading standard deviation.
Definition:
three-gpp-v2v-propagation-loss-model.cc:154
ns3::ThreeGppV2vUrbanPropagationLossModel::operator=
ThreeGppV2vUrbanPropagationLossModel & operator=(const ThreeGppV2vUrbanPropagationLossModel &)=delete
Copy constructor.
ns3::ThreeGppV2vUrbanPropagationLossModel::m_percType3Vehicles
double m_percType3Vehicles
percentage of Type 3 vehicles in the scenario (i.e., trucks)
Definition:
three-gpp-v2v-propagation-loss-model.h:126
ns3::ThreeGppPropagationLossModel
Base class for the 3GPP propagation models.
Definition:
three-gpp-propagation-loss-model.h:32
ns3::ThreeGppV2vUrbanPropagationLossModel::GetLossLos
virtual double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
Definition:
three-gpp-v2v-propagation-loss-model.cc:67
ns3::ThreeGppV2vUrbanPropagationLossModel::GetLossNlosv
virtual double GetLossNlosv(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed by a vehicle.
Definition:
three-gpp-v2v-propagation-loss-model.cc:78
ns3::ThreeGppV2vUrbanPropagationLossModel::m_uniformVar
Ptr< UniformRandomVariable > m_uniformVar
uniform random variable
Definition:
three-gpp-v2v-propagation-loss-model.h:127
three-gpp-propagation-loss-model.h
ns3::ThreeGppV2vUrbanPropagationLossModel::ThreeGppV2vUrbanPropagationLossModel
ThreeGppV2vUrbanPropagationLossModel(const ThreeGppV2vUrbanPropagationLossModel &)=delete
Copy constructor.
src
propagation
model
three-gpp-v2v-propagation-loss-model.h
Generated on Fri Oct 1 2021 17:03:34 for ns-3 by
1.8.20