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

#include <DimensionalBackgroundNoise.h>

Inheritance diagram for inet::physicallayer::DimensionalBackgroundNoise:
inet::physicallayer::DimensionalTransmitterBase inet::physicallayer::IBackgroundNoise inet::IPrintableObject inet::IPrintableObject

Public Member Functions

 DimensionalBackgroundNoise ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const override
 Prints this object to the provided output stream. More...
 
virtual const INoisecomputeNoise (const IListening *listening) const override
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Protected Member Functions

virtual void initialize (int stage) override
 
- Protected Member Functions inherited from inet::physicallayer::DimensionalTransmitterBase
template<typename T >
std::vector< GainEntry< T > > parseGains (const char *text) const
 
virtual void parseTimeGains (const char *text)
 
virtual void parseFrequencyGains (const char *text)
 
template<typename T >
const Ptr< const IFunction< double, Domain< T > > > normalize (const Ptr< const IFunction< double, Domain< T >>> &function, const char *normalization) const
 
virtual Ptr< const IFunction< double, Domain< simsec, Hz > > > createGainFunction (const simtime_t startTime, const simtime_t endTime, Hz centerFrequency, Hz bandwidth) const
 
virtual Ptr< const IFunction< WpHz, Domain< simsec, Hz > > > createPowerFunction (const simtime_t startTime, const simtime_t endTime, Hz centerFrequency, Hz bandwidth, W power) const
 

Protected Attributes

W power
 
- Protected Attributes inherited from inet::physicallayer::DimensionalTransmitterBase
const IInterpolator< simsec, double > * firstTimeInterpolator = nullptr
 
const IInterpolator< Hz, double > * firstFrequencyInterpolator = nullptr
 
std::vector< GainEntry< simsec > > timeGains
 
std::vector< GainEntry< Hz > > frequencyGains
 
const char * timeGainsNormalization = nullptr
 
const char * frequencyGainsNormalization = nullptr
 
int gainFunctionCacheLimit = -1
 
std::map< std::tuple< simtime_t, Hz, Hz >, Ptr< const IFunction< double, Domain< simsec, Hz > > > > gainFunctionCache
 

Additional Inherited Members

- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Constructor & Destructor Documentation

◆ DimensionalBackgroundNoise()

inet::physicallayer::DimensionalBackgroundNoise::DimensionalBackgroundNoise ( )
19  :
20  power(W(NaN))
21 {
22 }

Member Function Documentation

◆ computeNoise()

const INoise * inet::physicallayer::DimensionalBackgroundNoise::computeNoise ( const IListening listening) const
overridevirtual

Implements inet::physicallayer::IBackgroundNoise.

39 {
40  const BandListening *bandListening = check_and_cast<const BandListening *>(listening);
41  const simtime_t startTime = listening->getStartTime();
42  const simtime_t endTime = listening->getEndTime();
43  Hz centerFrequency = bandListening->getCenterFrequency();
44  Hz bandwidth = bandListening->getBandwidth();
45  const auto& powerFunction = createPowerFunction(startTime, endTime, centerFrequency, bandwidth, power);
46  return new DimensionalNoise(startTime, endTime, centerFrequency, bandwidth, powerFunction);
47 }

◆ initialize()

void inet::physicallayer::DimensionalBackgroundNoise::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::physicallayer::DimensionalTransmitterBase.

25 {
27  if (stage == INITSTAGE_LOCAL) {
28  power = mW(dBmW2mW(par("power")));
29  }
30 }

◆ printToStream()

std::ostream & inet::physicallayer::DimensionalBackgroundNoise::printToStream ( std::ostream &  stream,
int  level,
int  evFlags = 0 
) const
overridevirtual

Prints this object to the provided output stream.

Reimplemented from inet::physicallayer::DimensionalTransmitterBase.

33 {
34  stream << "DimensionalBackgroundNoise";
35  return DimensionalTransmitterBase::printToStream(stream, level);
36 }

Member Data Documentation

◆ power

W inet::physicallayer::DimensionalBackgroundNoise::power
protected

Referenced by computeNoise(), and initialize().


The documentation for this class was generated from the following files:
inet::physicallayer::DimensionalTransmitterBase::printToStream
virtual std::ostream & printToStream(std::ostream &stream, int level, int evFlags=0) const override
Prints this object to the provided output stream.
Definition: DimensionalTransmitterBase.cc:110
inet::units::units::Hz
pow< s, -1 > Hz
Definition: Units.h:935
inet::math::dBmW2mW
double dBmW2mW(double dBm)
Converts a dBmW value to mW.
Definition: INETMath.h:163
inet::units::units::W
compose< J, pow< s, -1 > > W
Definition: Units.h:939
inet::physicallayer::DimensionalBackgroundNoise::power
W power
Definition: DimensionalBackgroundNoise.h:21
inet::physicallayer::DimensionalTransmitterBase::initialize
virtual void initialize(int stage)
Definition: DimensionalTransmitterBase.cc:20
inet::units::units::mW
milli< W >::type mW
Definition: Units.h:1080
inet::physicallayer::DimensionalTransmitterBase::createPowerFunction
virtual Ptr< const IFunction< WpHz, Domain< simsec, Hz > > > createPowerFunction(const simtime_t startTime, const simtime_t endTime, Hz centerFrequency, Hz bandwidth, W power) const
Definition: DimensionalTransmitterBase.cc:204
NaN
#define NaN
Definition: INETMath.h:91
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes: