A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
cost231-propagation-loss-model.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008, 2009 INRIA, UDcast
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
18 * <amine.ismail@udcast.com>
19 */
20
21#ifndef COST231_PROPAGATION_LOSS_MODEL_H
22#define COST231_PROPAGATION_LOSS_MODEL_H
23
25
26#include "ns3/nstime.h"
27
28namespace ns3
29{
30
31/**
32 * \ingroup propagation
33 *
34 * \brief The COST-Hata-Model is the most often cited of the COST 231 models.
35 *
36 * Also called the Hata Model PCS Extension, it is a radio propagation model
37 * that extends the Hata Model (which in turn is based on the Okumura Model)
38 * to cover a more elaborated range of frequencies. COST (COperation
39 * europ�enne dans le domaine de la recherche Scientifique et Technique)
40 * is a European Union Forum for cooperative scientific research which has
41 * developed this model accordingly to various experiments and researches.
42 * This model is applicable to urban areas. To further evaluate Path Loss
43 * in Suburban or Rural Quasi-open/Open Areas.
44 * Frequency: 1500 MHz to 2000 MHz
45 * Mobile Station Antenna Height: 1 up to 10m
46 * Base station Antenna Height: 30m to 200m
47 * Link Distance:up to 20 km
48 *
49 */
50
52{
53 public:
54 /**
55 * \brief Get the type ID.
56 * \return the object TypeId
57 */
58 static TypeId GetTypeId();
60
61 // Delete copy constructor and assignment operator to avoid misuse
64
65 /**
66 * Get the propagation loss
67 * \param a the mobility model of the source
68 * \param b the mobility model of the destination
69 * \returns the propagation loss (in dBm)
70 */
72
73 /**
74 * Set the BS antenna height
75 * \param height BS antenna height [m]
76 */
77 void SetBSAntennaHeight(double height);
78 /**
79 * Set the SS antenna height
80 * \param height SS antenna height [m]
81 */
82 void SetSSAntennaHeight(double height);
83
84 /**
85 * Set the wavelength
86 * \param lambda the wavelength
87 */
88 void SetLambda(double lambda);
89 /**
90 * Set the wavelength
91 * \param frequency the signal frequency [Hz]
92 * \param speed the signal speed [m/s]
93 */
94 void SetLambda(double frequency, double speed);
95 /**
96 * Set the minimum model distance
97 * \param minDistance the minimum model distance
98 */
99 void SetMinDistance(double minDistance);
100 /**
101 * Get the BS antenna height
102 * \returns BS antenna height [m]
103 */
104 double GetBSAntennaHeight() const;
105 /**
106 * Get the SS antenna height
107 * \returns SS antenna height [m]
108 */
109 double GetSSAntennaHeight() const;
110 /**
111 * Get the minimum model distance
112 * \returns the minimum model distance
113 */
114 double GetMinDistance() const;
115 /**
116 * Get the wavelength
117 * \returns the wavelength
118 */
119 double GetLambda() const;
120 /**
121 * Get the shadowing value
122 * \returns the shadowing value
123 */
124 double GetShadowing() const;
125 /**
126 * Set the shadowing value
127 * \param shadowing the shadowing value
128 */
129 void SetShadowing(double shadowing);
130
131 private:
132 double DoCalcRxPower(double txPowerDbm,
134 Ptr<MobilityModel> b) const override;
135 int64_t DoAssignStreams(int64_t stream) override;
136
137 double m_BSAntennaHeight; //!< BS Antenna Height [m]
138 double m_SSAntennaHeight; //!< SS Antenna Height [m]
139 double m_lambda; //!< The wavelength
140 double m_minDistance; //!< minimum distance [m]
141 double m_frequency; //!< frequency [Hz]
142 double m_shadowing; //!< Shadowing loss [dB]
143};
144
145} // namespace ns3
146
147#endif /* COST231PROPAGATIONMODEL_H */
The COST-Hata-Model is the most often cited of the COST 231 models.
double GetShadowing() const
Get the shadowing value.
void SetShadowing(double shadowing)
Set the shadowing value.
double m_SSAntennaHeight
SS Antenna Height [m].
double GetLambda() const
Get the wavelength.
void SetBSAntennaHeight(double height)
Set the BS antenna height.
static TypeId GetTypeId()
Get the type ID.
int64_t DoAssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
Cost231PropagationLossModel(const Cost231PropagationLossModel &)=delete
double GetBSAntennaHeight() const
Get the BS antenna height.
double GetSSAntennaHeight() const
Get the SS antenna height.
double GetMinDistance() const
Get the minimum model distance.
void SetSSAntennaHeight(double height)
Set the SS antenna height.
void SetLambda(double lambda)
Set the wavelength.
void SetMinDistance(double minDistance)
Set the minimum model distance.
double m_BSAntennaHeight
BS Antenna Height [m].
double GetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Get the propagation loss.
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
PropagationLossModel.
Cost231PropagationLossModel & operator=(const Cost231PropagationLossModel &)=delete
Models the propagation loss through a transmission medium.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.