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
three-gpp-antenna-model.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020 University of Padova, Dep. of Information Engineering, SIGNET lab.
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*/
6
7
#ifndef THREE_GPP_ANTENNA_MODEL_H
8
#define THREE_GPP_ANTENNA_MODEL_H
9
10
#include "
antenna-model.h
"
11
12
#include <ns3/object.h>
13
14
namespace
ns3
15
{
16
17
/**
18
* \brief Antenna model based on a parabolic approximation of the main lobe radiation pattern.
19
*
20
* This class implements the parabolic model as described in 3GPP TR 38.901 v15.0.0
21
*/
22
class
ThreeGppAntennaModel
:
public
AntennaModel
23
{
24
public
:
25
ThreeGppAntennaModel
();
26
~ThreeGppAntennaModel
()
override
;
27
28
/**
29
* \brief Get the type ID.
30
* \return The object TypeId.
31
*/
32
static
TypeId
GetTypeId
();
33
34
// inherited from AntennaModel
35
double
GetGainDb
(
Angles
a)
override
;
36
37
/**
38
* Get the vertical beamwidth of the antenna element.
39
* \return the vertical beamwidth in degrees
40
*/
41
double
GetVerticalBeamwidth
()
const
;
42
43
/**
44
* Get the horizontal beamwidth of the antenna element.
45
* \return the horizontal beamwidth in degrees
46
*/
47
double
GetHorizontalBeamwidth
()
const
;
48
49
/**
50
* Get the side-lobe attenuation in the vertical direction of the antenna element.
51
* \return side-lobe attenuation in the vertical direction in dB
52
*/
53
double
GetSlaV
()
const
;
54
55
/**
56
* Get the maximum attenuation of the antenna element.
57
* \return the maximum attenuation in dB
58
*/
59
double
GetMaxAttenuation
()
const
;
60
61
/**
62
* Get the maximum directional gain of the antenna element.
63
* \return the maximum directional gain in dBi
64
*/
65
double
GetAntennaElementGain
()
const
;
66
67
private
:
68
double
m_verticalBeamwidthDegrees
;
//!< beamwidth in the vertical direction \f$(\theta_{3dB})\f$
69
//!< [deg]
70
double
m_horizontalBeamwidthDegrees
;
//!< beamwidth in the horizontal direction
71
//!< \f$(\phi_{3dB})\f$ [deg]
72
double
m_aMax
;
//!< maximum attenuation (A_{max}) [dB]
73
double
m_slaV
;
//!< side-lobe attenuation in the vertical direction (SLA_V) [dB]
74
double
m_geMax
;
//!< maximum directional gain of the antenna element (G_{E,max}) [dBi]
75
};
76
77
}
// namespace ns3
78
79
#endif
// THREE_GPP_ANTENNA_MODEL_H
antenna-model.h
ns3::Angles
Class holding the azimuth and inclination angles of spherical coordinates.
Definition
angles.h:107
ns3::AntennaModel
interface for antenna radiation pattern models
Definition
antenna-model.h:44
ns3::ThreeGppAntennaModel
Antenna model based on a parabolic approximation of the main lobe radiation pattern.
Definition
three-gpp-antenna-model.h:23
ns3::ThreeGppAntennaModel::m_geMax
double m_geMax
maximum directional gain of the antenna element (G_{E,max}) [dBi]
Definition
three-gpp-antenna-model.h:74
ns3::ThreeGppAntennaModel::GetAntennaElementGain
double GetAntennaElementGain() const
Get the maximum directional gain of the antenna element.
Definition
three-gpp-antenna-model.cc:71
ns3::ThreeGppAntennaModel::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
three-gpp-antenna-model.cc:24
ns3::ThreeGppAntennaModel::ThreeGppAntennaModel
ThreeGppAntennaModel()
Definition
three-gpp-antenna-model.cc:33
ns3::ThreeGppAntennaModel::~ThreeGppAntennaModel
~ThreeGppAntennaModel() override
Definition
three-gpp-antenna-model.cc:42
ns3::ThreeGppAntennaModel::m_horizontalBeamwidthDegrees
double m_horizontalBeamwidthDegrees
beamwidth in the horizontal direction [deg]
Definition
three-gpp-antenna-model.h:70
ns3::ThreeGppAntennaModel::GetVerticalBeamwidth
double GetVerticalBeamwidth() const
Get the vertical beamwidth of the antenna element.
Definition
three-gpp-antenna-model.cc:47
ns3::ThreeGppAntennaModel::GetHorizontalBeamwidth
double GetHorizontalBeamwidth() const
Get the horizontal beamwidth of the antenna element.
Definition
three-gpp-antenna-model.cc:53
ns3::ThreeGppAntennaModel::m_verticalBeamwidthDegrees
double m_verticalBeamwidthDegrees
beamwidth in the vertical direction [deg]
Definition
three-gpp-antenna-model.h:68
ns3::ThreeGppAntennaModel::GetGainDb
double GetGainDb(Angles a) override
this method is expected to be re-implemented by each antenna model
Definition
three-gpp-antenna-model.cc:77
ns3::ThreeGppAntennaModel::m_aMax
double m_aMax
maximum attenuation (A_{max}) [dB]
Definition
three-gpp-antenna-model.h:72
ns3::ThreeGppAntennaModel::GetMaxAttenuation
double GetMaxAttenuation() const
Get the maximum attenuation of the antenna element.
Definition
three-gpp-antenna-model.cc:65
ns3::ThreeGppAntennaModel::GetSlaV
double GetSlaV() const
Get the side-lobe attenuation in the vertical direction of the antenna element.
Definition
three-gpp-antenna-model.cc:59
ns3::ThreeGppAntennaModel::m_slaV
double m_slaV
side-lobe attenuation in the vertical direction (SLA_V) [dB]
Definition
three-gpp-antenna-model.h:73
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
antenna
model
three-gpp-antenna-model.h
Generated on Fri Nov 8 2024 13:58:58 for ns-3 by
1.11.0