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 (Bands &&bands)
 This constructs a SpectrumModel based on the explicit values of center frequencies and boundaries of each subband. More...
 
 SpectrumModel (const Bands &bands)
 This constructs a SpectrumModel based on the explicit values of center frequencies and boundaries of each subband. More...
 
 SpectrumModel (const 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...
 
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[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] 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 71 of file spectrum-model.h.

Constructor & Destructor Documentation

◆ SpectrumModel() [1/3]

ns3::SpectrumModel::SpectrumModel ( const 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.

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/3]

ns3::SpectrumModel::SpectrumModel ( const Bands bands)

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

Parameters
bandsthe vector of bands for this model

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

References m_bands, m_uid, m_uidCount, and NS_LOG_INFO.

◆ SpectrumModel() [3/3]

ns3::SpectrumModel::SpectrumModel ( Bands &&  bands)

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

This is used if bands is an rvalue.

Parameters
bandsthe vector of bands for this model

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

References 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.

Returns
a const iterator to the start of the vector of bands

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

References m_bands.

Referenced by ns3::SpectrumConverter::SpectrumConverter(), ns3::SpectrumValue::ConstBandsBegin(), IsOrthogonal(), 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.

Returns
a const iterator to past-the-end of the vector of bands

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

References m_bands.

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

+ 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 112 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 146 of file spectrum-model.h.

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

◆ m_uid

SpectrumModelUid_t ns3::SpectrumModel::m_uid
private

unique id for a given set of frequencies

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

Referenced by SpectrumModel(), and GetUid().

◆ m_uidCount

SpectrumModelUid_t ns3::SpectrumModel::m_uidCount = 0
staticprivate

counter to assign m_uids

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

Referenced by SpectrumModel().


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