A Discrete-Event Network Simulator
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
14namespace 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 */
23{
24 public:
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
Class holding the azimuth and inclination angles of spherical coordinates.
Definition angles.h:107
interface for antenna radiation pattern models
Antenna model based on a parabolic approximation of the main lobe radiation pattern.
double m_geMax
maximum directional gain of the antenna element (G_{E,max}) [dBi]
double GetAntennaElementGain() const
Get the maximum directional gain of the antenna element.
static TypeId GetTypeId()
Get the type ID.
double m_horizontalBeamwidthDegrees
beamwidth in the horizontal direction [deg]
double GetVerticalBeamwidth() const
Get the vertical beamwidth of the antenna element.
double GetHorizontalBeamwidth() const
Get the horizontal beamwidth of the antenna element.
double m_verticalBeamwidthDegrees
beamwidth in the vertical direction [deg]
double GetGainDb(Angles a) override
this method is expected to be re-implemented by each antenna model
double m_aMax
maximum attenuation (A_{max}) [dB]
double GetMaxAttenuation() const
Get the maximum attenuation of the antenna element.
double GetSlaV() const
Get the side-lobe attenuation in the vertical direction of the antenna element.
double m_slaV
side-lobe attenuation in the vertical direction (SLA_V) [dB]
a unique identifier for an interface.
Definition type-id.h:48
Every class exported by the ns3 library is enclosed in the ns3 namespace.