INET Framework for OMNeT++/OMNEST
inet::physicallayer::LogNormalShadowing Class Reference

This class implements the log normal shadowing model. More...

#include <LogNormalShadowing.h>

Inheritance diagram for inet::physicallayer::LogNormalShadowing:
inet::physicallayer::FreeSpacePathLoss inet::physicallayer::PathLossBase inet::physicallayer::IPathLoss inet::physicallayer::IPrintableObject

Public Member Functions

 LogNormalShadowing ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level) const override
 Prints this object to the provided output stream. More...
 
virtual double computePathLoss (mps propagationSpeed, Hz frequency, m distance) const override
 Returns the loss factor as a function of propagation speed, carrier frequency and distance. More...
 
- Public Member Functions inherited from inet::physicallayer::FreeSpacePathLoss
 FreeSpacePathLoss ()
 
virtual m computeRange (mps propagationSpeed, Hz frequency, double loss) const override
 Returns the range for the given loss factor. More...
 
- Public Member Functions inherited from inet::physicallayer::PathLossBase
virtual double computePathLoss (const ITransmission *transmission, const IArrival *arrival) const override
 Returns the loss factor for the provided transmission and arrival. More...
 
- Public Member Functions inherited from inet::physicallayer::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string getInfoStringRepresentation () const
 
virtual std::string getDetailStringRepresentation () const
 
virtual std::string getDebugStringRepresentation () const
 
virtual std::string getTraceStringRepresentation () const
 
virtual std::string getCompleteStringRepresentation () const
 

Protected Member Functions

virtual void initialize (int stage) override
 
- Protected Member Functions inherited from inet::physicallayer::FreeSpacePathLoss
virtual double computeFreeSpacePathLoss (m waveLength, m distance, double alpha, double systemLoss) const
 

Protected Attributes

double sigma
 
- Protected Attributes inherited from inet::physicallayer::FreeSpacePathLoss
double alpha
 
double systemLoss
 

Additional Inherited Members

- Public Types inherited from inet::physicallayer::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 

Detailed Description

This class implements the log normal shadowing model.

Constructor & Destructor Documentation

inet::physicallayer::LogNormalShadowing::LogNormalShadowing ( )
26  :
27  sigma(1)
28 {
29 }
double sigma
Definition: LogNormalShadowing.h:33

Member Function Documentation

double inet::physicallayer::LogNormalShadowing::computePathLoss ( mps  propagationSpeed,
Hz  frequency,
m  distance 
) const
overridevirtual

Returns the loss factor as a function of propagation speed, carrier frequency and distance.

The value is in the range [0, 1] where 1 means no loss at all and 0 means all power is lost.

Reimplemented from inet::physicallayer::FreeSpacePathLoss.

50 {
51  m d0 = m(1.0);
52  // reference path loss
53  double freeSpacePathLoss = computeFreeSpacePathLoss(propagationSpeed / frequency, d0, alpha, systemLoss);
54  double PL_d0_db = 10.0 * log10(1 / freeSpacePathLoss);
55  // path loss at distance d + normal distribution with sigma standard deviation
56  double PL_db = PL_d0_db + 10 * alpha * log10(unit(distance / d0).get()) + normal(0.0, sigma);
57  return math::dB2fraction(-PL_db);
58 }
virtual double computeFreeSpacePathLoss(m waveLength, m distance, double alpha, double systemLoss) const
Definition: FreeSpacePathLoss.cc:49
double systemLoss
Definition: FreeSpacePathLoss.h:36
double alpha
Definition: FreeSpacePathLoss.h:35
double dB2fraction(double dB)
Converts a dB value to fraction.
Definition: INETMath.h:166
pow< internal::none, 0 > unit
Definition: Units.h:60
double sigma
Definition: LogNormalShadowing.h:33
value< double, units::m > m
Definition: Units.h:1047
void inet::physicallayer::LogNormalShadowing::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::physicallayer::FreeSpacePathLoss.

32 {
34  if (stage == INITSTAGE_LOCAL) {
35  sigma = par("sigma");
36  }
37 }
Local initializations.
Definition: InitStages.h:35
virtual void initialize(int stage) override
Definition: FreeSpacePathLoss.cc:32
double sigma
Definition: LogNormalShadowing.h:33
std::ostream & inet::physicallayer::LogNormalShadowing::printToStream ( std::ostream &  stream,
int  level 
) const
overridevirtual

Prints this object to the provided output stream.

Function calls to operator<< with pointers or references either const or not are all forwarded to this function.

Reimplemented from inet::physicallayer::FreeSpacePathLoss.

40 {
41  stream << "LogNormalShadowing";
42  if (level <= PRINT_LEVEL_TRACE)
43  stream << ", alpha = " << alpha
44  << ", systemLoss = " << systemLoss
45  << ", sigma = " << sigma;
46  return stream;
47 }
double systemLoss
Definition: FreeSpacePathLoss.h:36
double alpha
Definition: FreeSpacePathLoss.h:35
double sigma
Definition: LogNormalShadowing.h:33

Member Data Documentation

double inet::physicallayer::LogNormalShadowing::sigma
protected

The documentation for this class was generated from the following files: