A Discrete-Event Network Simulator
API
ns3::SpectrumModel Class Reference

Set of frequency values implementing the domain of the functions in the Function Space defined by SpectrumValue. More...

#include "spectrum-model.h"

+ Inheritance diagram for ns3::SpectrumModel:
+ Collaboration diagram for ns3::SpectrumModel:

Public Member Functions

 SpectrumModel (std::vector< double > centerFreqs)
 This constructs a SpectrumModel based on a given set of frequencies, which is assumed to be sorted by increasing frequency. More...
 
 SpectrumModel (Bands bands)
 This construct a SpectrumModel based on the explicit values of center frequencies and boundaries of each subband. More...
 
Bands::const_iterator Begin () const
 Const Iterator to the model Bands container start. More...
 
Bands::const_iterator End () const
 Const Iterator to the model Bands container end. More...
 
size_t GetNumBands () const
 
SpectrumModelUid_t GetUid () const
 
bool IsOrthogonal (const SpectrumModel &other) const
 Check if another SpectrumModels has bands orthogonal to our bands. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< SpectrumModel >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Private Attributes

Bands m_bands
 Actual definition of frequency bands within this SpectrumModel. More...
 
SpectrumModelUid_t m_uid
 unique id for a given set of frequencies More...
 

Static Private Attributes

static SpectrumModelUid_t m_uidCount = 0
 counter to assign m_uids More...
 

Friends

bool operator== (const SpectrumModel &lhs, const SpectrumModel &rhs)
 Comparison operator. More...
 

Detailed Description

Set of frequency values implementing the domain of the functions in the Function Space defined by SpectrumValue.

Frequency values are in Hz. It is intended that frequency values are non-negative, though this is not enforced.

Definition at line 66 of file spectrum-model.h.

Constructor & Destructor Documentation

◆ SpectrumModel() [1/2]

ns3::SpectrumModel::SpectrumModel ( std::vector< double >  centerFreqs)

This constructs a SpectrumModel based on a given set of frequencies, which is assumed to be sorted by increasing frequency.

The lower (resp. upper) frequency band limit is determined as the mean value between the center frequency of the considered band and the center frequency of the adjacent lower (resp. upper) band.

Parameters
centerFreqsthe vector of center frequencies.
Returns

Definition at line 41 of file spectrum-model.cc.

References ns3::BandInfo::fc, ns3::BandInfo::fh, ns3::BandInfo::fl, m_bands, m_uid, m_uidCount, and NS_ASSERT.

◆ SpectrumModel() [2/2]

ns3::SpectrumModel::SpectrumModel ( Bands  bands)

This construct a SpectrumModel based on the explicit values of center frequencies and boundaries of each subband.

Parameters
bands
Returns

Definition at line 73 of file spectrum-model.cc.

References m_bands, m_uid, m_uidCount, and NS_LOG_INFO.

Member Function Documentation

◆ Begin()

Bands::const_iterator ns3::SpectrumModel::Begin ( void  ) const

Const Iterator to the model Bands container start.

Definition at line 81 of file spectrum-model.cc.

References m_bands.

Referenced by ns3::SpectrumValue::ConstBandsBegin(), IsOrthogonal(), ns3::SpectrumConverter::SpectrumConverter(), and Bug2843TestCase::StoreDistinctTuple().

+ Here is the caller graph for this function:

◆ End()

Bands::const_iterator ns3::SpectrumModel::End ( void  ) const

Const Iterator to the model Bands container end.

Definition at line 87 of file spectrum-model.cc.

References m_bands.

Referenced by ns3::SpectrumValue::ConstBandsEnd(), IsOrthogonal(), and ns3::SpectrumConverter::SpectrumConverter().

+ Here is the caller graph for this function:

◆ GetNumBands()

◆ GetUid()

◆ IsOrthogonal()

bool ns3::SpectrumModel::IsOrthogonal ( const SpectrumModel other) const

Check if another SpectrumModels has bands orthogonal to our bands.

Parameters
otheranother SpectrumModel
Returns
true if bands are orthogonal

Definition at line 105 of file spectrum-model.cc.

References Begin(), End(), max, and min.

Referenced by ns3::MultiModelSpectrumChannel::AddRx(), and ns3::MultiModelSpectrumChannel::FindAndEventuallyAddTxSpectrumModel().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator==

bool operator== ( const SpectrumModel lhs,
const SpectrumModel rhs 
)
friend

Comparison operator.

Returns true if the two SpectumModels are identical

Parameters
lhsleft operand
rhsright operand
Returns
true if the two operands are identical

Definition at line 34 of file spectrum-model.cc.

Member Data Documentation

◆ m_bands

Bands ns3::SpectrumModel::m_bands
private

Actual definition of frequency bands within this SpectrumModel.

Definition at line 132 of file spectrum-model.h.

Referenced by Begin(), End(), GetNumBands(), and SpectrumModel().

◆ m_uid

SpectrumModelUid_t ns3::SpectrumModel::m_uid
private

unique id for a given set of frequencies

Definition at line 133 of file spectrum-model.h.

Referenced by GetUid(), ns3::operator==(), and SpectrumModel().

◆ m_uidCount

SpectrumModelUid_t ns3::SpectrumModel::m_uidCount = 0
staticprivate

counter to assign m_uids

Definition at line 134 of file spectrum-model.h.

Referenced by SpectrumModel().


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