handles interference calculations More...
#include "interference-helper.h"
Classes | |
class | NiChange |
Noise and Interference (thus Ni) event. More... | |
Public Member Functions | |
InterferenceHelper () | |
~InterferenceHelper () override | |
Ptr< Event > | Add (Ptr< const WifiPpdu > ppdu, Time duration, RxPowerWattPerChannelBand &rxPower, bool isStartHePortionRxing=false) |
Add the PPDU-related signal to interference helper. More... | |
void | AddBand (const WifiSpectrumBandInfo &band) |
Add a frequency band. More... | |
void | AddForeignSignal (Time duration, RxPowerWattPerChannelBand &rxPower) |
Add a non-Wifi signal to interference helper. More... | |
PhyEntity::SnrPer | CalculatePayloadSnrPer (Ptr< Event > event, uint16_t channelWidth, const WifiSpectrumBandInfo &band, uint16_t staId, std::pair< Time, Time > relativeMpduStartStop) const |
Calculate the SNIR at the start of the payload and accumulate all SNIR changes in the SNIR vector for each MPDU of an A-MPDU. More... | |
PhyEntity::SnrPer | CalculatePhyHeaderSnrPer (Ptr< Event > event, uint16_t channelWidth, const WifiSpectrumBandInfo &band, WifiPpduField header) const |
Calculate the SNIR at the start of the PHY header and accumulate all SNIR changes in the SNIR vector. More... | |
double | CalculateSnr (Ptr< Event > event, uint16_t channelWidth, uint8_t nss, const WifiSpectrumBandInfo &band) const |
Calculate the SNIR for the event (starting from now until the event end). More... | |
Time | GetEnergyDuration (double energyW, const WifiSpectrumBandInfo &band) |
Ptr< ErrorRateModel > | GetErrorRateModel () const |
Return the error rate model. More... | |
bool | HasBands () const |
Check whether bands are already tracked by this interference helper. More... | |
void | NotifyRxEnd (Time endTime, const FrequencyRange &freqRange) |
Notify that RX has ended. More... | |
void | NotifyRxStart () |
Notify that RX has started. More... | |
void | SetErrorRateModel (const Ptr< ErrorRateModel > rate) |
Set the error rate model for this interference helper. More... | |
void | SetNoiseFigure (double value) |
Set the noise figure. More... | |
void | SetNumberOfReceiveAntennas (uint8_t rx) |
Set the number of RX antennas in the receiver corresponding to this interference helper. More... | |
void | UpdateBands (const std::vector< WifiSpectrumBandInfo > &bands, const FrequencyRange &freqRange) |
Update the frequency bands that belongs to a given frequency range when the spectrum model is changed. More... | |
void | UpdateEvent (Ptr< Event > event, const RxPowerWattPerChannelBand &rxPower) |
Update event to scale its received power (W) per band. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Protected Member Functions | |
double | CalculateChunkSuccessRate (double snir, Time duration, WifiMode mode, const WifiTxVector &txVector, WifiPpduField field) const |
Calculate the success rate of the chunk given the SINR, duration, and TXVECTOR. More... | |
double | CalculatePayloadChunkSuccessRate (double snir, Time duration, const WifiTxVector &txVector, uint16_t staId=SU_STA_ID) const |
Calculate the success rate of the payload chunk given the SINR, duration, and TXVECTOR. More... | |
double | CalculateSnr (double signal, double noiseInterference, uint16_t channelWidth, uint8_t nss) const |
Calculate SNR (linear ratio) from the given signal power and noise+interference power. More... | |
void | DoDispose () override |
Destructor implementation. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Private Types | |
using | FirstPowerPerBand = std::map< WifiSpectrumBandInfo, double > |
Map of first power per band. More... | |
using | NiChanges = std::multimap< Time, NiChange > |
typedef for a multimap of NiChange More... | |
using | NiChangesPerBand = std::map< WifiSpectrumBandInfo, NiChanges > |
Map of NiChanges per band. More... | |
Private Member Functions | |
NiChanges::iterator | AddNiChangeEvent (Time moment, NiChange change, NiChangesPerBand::iterator niIt) |
Add NiChange to the list at the appropriate position and return the iterator of the new event. More... | |
void | AppendEvent (Ptr< Event > event, bool isStartHePortionRxing) |
Append the given Event. More... | |
double | CalculateMuMimoPowerW (Ptr< const Event > event, const WifiSpectrumBandInfo &band) const |
Calculate power of all other events preceding a given event that belong to the same MU-MIMO transmission. More... | |
double | CalculateNoiseInterferenceW (Ptr< Event > event, NiChangesPerBand &nis, const WifiSpectrumBandInfo &band) const |
Calculate noise and interference power in W. More... | |
double | CalculatePayloadPer (Ptr< const Event > event, uint16_t channelWidth, NiChangesPerBand *nis, const WifiSpectrumBandInfo &band, uint16_t staId, std::pair< Time, Time > window) const |
Calculate the error rate of the given PHY payload only in the provided time window (thus enabling per MPDU PER information). More... | |
double | CalculatePhyHeaderPer (Ptr< const Event > event, NiChangesPerBand *nis, uint16_t channelWidth, const WifiSpectrumBandInfo &band, WifiPpduField header) const |
Calculate the error rate of the PHY header. More... | |
double | CalculatePhyHeaderSectionPsr (Ptr< const Event > event, NiChangesPerBand *nis, uint16_t channelWidth, const WifiSpectrumBandInfo &band, PhyEntity::PhyHeaderSections phyHeaderSections) const |
Calculate the success rate of the PHY header sections for the provided event. More... | |
NiChanges::iterator | GetNextPosition (Time moment, NiChangesPerBand::iterator niIt) |
Returns an iterator to the first NiChange that is later than moment. More... | |
NiChanges::iterator | GetPreviousPosition (Time moment, NiChangesPerBand::iterator niIt) |
Returns an iterator to the last NiChange that is before than moment. More... | |
bool | HasBand (const WifiSpectrumBandInfo &band) const |
Check whether a given band is tracked by this interference helper. More... | |
bool | IsBandInFrequencyRange (const WifiSpectrumBandInfo &band, const FrequencyRange &freqRange) const |
Check whether a given band belongs to a given frequency range. More... | |
bool | IsSameMuMimoTransmission (Ptr< const Event > currentEvent, Ptr< const Event > otherEvent) const |
Return whether another event is a MU-MIMO event that belongs to the same transmission and to the same RU. More... | |
Private Attributes | |
Ptr< ErrorRateModel > | m_errorRateModel |
error rate model More... | |
FirstPowerPerBand | m_firstPowers |
first power of each band in watts More... | |
NiChangesPerBand | m_niChanges |
NI Changes for each band. More... | |
double | m_noiseFigure |
noise figure (linear) More... | |
uint8_t | m_numRxAntennas |
the number of RX antennas in the corresponding receiver More... | |
bool | m_rxing |
flag whether it is in receiving state More... | |
Additional Inherited Members | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
handles interference calculations
Definition at line 132 of file interference-helper.h.
|
private |
Map of first power per band.
Definition at line 401 of file interference-helper.h.
|
private |
typedef for a multimap of NiChange
Definition at line 391 of file interference-helper.h.
|
private |
Map of NiChanges per band.
Definition at line 396 of file interference-helper.h.
ns3::InterferenceHelper::InterferenceHelper | ( | ) |
Definition at line 175 of file interference-helper.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 183 of file interference-helper.cc.
References NS_LOG_FUNCTION.
Ptr< Event > ns3::InterferenceHelper::Add | ( | Ptr< const WifiPpdu > | ppdu, |
Time | duration, | ||
RxPowerWattPerChannelBand & | rxPower, | ||
bool | isStartHePortionRxing = false |
||
) |
Add the PPDU-related signal to interference helper.
ppdu | the PPDU |
duration | the PPDU duration |
rxPower | received power per band (W) |
isStartHePortionRxing | flag whether the event corresponds to the start of the HE portion reception (only used for MU) |
Definition at line 212 of file interference-helper.cc.
References AppendEvent().
Referenced by AddForeignSignal().
void ns3::InterferenceHelper::AddBand | ( | const WifiSpectrumBandInfo & | band | ) |
Add a frequency band.
band | the band to be added |
Definition at line 249 of file interference-helper.cc.
References AddNiChangeEvent(), m_firstPowers, m_niChanges, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by UpdateBands().
void ns3::InterferenceHelper::AddForeignSignal | ( | Time | duration, |
RxPowerWattPerChannelBand & | rxPower | ||
) |
Add a non-Wifi signal to interference helper.
duration | the duration of the signal |
rxPower | received power per band (W) |
Definition at line 223 of file interference-helper.cc.
References Add(), ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_QOSDATA.
|
private |
Add NiChange to the list at the appropriate position and return the iterator of the new event.
moment | time to check from |
change | the NiChange to add |
niIt | iterator of the band to check |
Definition at line 811 of file interference-helper.cc.
References GetNextPosition().
Referenced by AddBand(), and AppendEvent().
|
private |
Append the given Event.
event | the event to be appended |
isStartHePortionRxing | flag whether event corresponds to the start of the HE portion reception (only used for MU) |
Definition at line 347 of file interference-helper.cc.
References AddNiChangeEvent(), GetPreviousPosition(), m_firstPowers, m_niChanges, m_rxing, NS_ABORT_IF, and NS_LOG_FUNCTION.
Referenced by Add().
|
protected |
Calculate the success rate of the chunk given the SINR, duration, and TXVECTOR.
The duration and TXVECTOR are used to calculate how many bits are present in the chunk.
snir | the SINR |
duration | the duration of the chunk |
mode | the WifiMode |
txVector | the TXVECTOR |
field | the PPDU field to which the chunk belongs to |
Definition at line 521 of file interference-helper.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::Time::GetSeconds(), ns3::Time::IsZero(), m_errorRateModel, and m_numRxAntennas.
Referenced by CalculatePhyHeaderSectionPsr().
|
private |
Calculate power of all other events preceding a given event that belong to the same MU-MIMO transmission.
event | the event |
band | the band |
Definition at line 484 of file interference-helper.cc.
References IsSameMuMimoTransmission(), m_niChanges, ns3::Simulator::Now(), NS_ASSERT, and ns3::HePpdu::PSD_HE_PORTION.
Referenced by CalculateNoiseInterferenceW(), and CalculatePayloadPer().
|
private |
Calculate noise and interference power in W.
event | the event |
nis | the NiChanges |
band | the band |
Definition at line 434 of file interference-helper.cc.
References CalculateMuMimoPowerW(), epsilon, IsSameMuMimoTransmission(), m_firstPowers, m_niChanges, ns3::Simulator::Now(), NS_ABORT_IF, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::WIFI_PPDU_TYPE_UL_MU.
Referenced by CalculatePayloadSnrPer(), CalculatePhyHeaderSnrPer(), and CalculateSnr().
|
protected |
Calculate the success rate of the payload chunk given the SINR, duration, and TXVECTOR.
The duration and TXVECTOR are used to calculate how many bits are present in the payload chunk.
snir | the SINR |
duration | the duration of the chunk |
txVector | the TXVECTOR |
staId | the station ID of the PSDU (only used for MU) |
Definition at line 539 of file interference-helper.cc.
References ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), ns3::Time::GetSeconds(), ns3::Time::IsZero(), m_errorRateModel, m_numRxAntennas, and ns3::WIFI_PPDU_FIELD_DATA.
Referenced by CalculatePayloadPer(), and WifiErrorRateModelsTestCaseMimo::DoRun().
|
private |
Calculate the error rate of the given PHY payload only in the provided time window (thus enabling per MPDU PER information).
The PHY payload can be divided into multiple chunks (e.g. due to interference from other transmissions).
event | the event |
channelWidth | the channel width used to transmit the PSDU (in MHz) |
nis | the NiChanges |
band | identify the band used by the PSDU |
staId | the station ID of the PSDU (only used for MU) |
window | time window (pair of start and end times) of PHY payload to focus on |
Definition at line 564 of file interference-helper.cc.
References CalculateMuMimoPowerW(), CalculatePayloadChunkSuccessRate(), ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), CalculateSnr(), IsSameMuMimoTransmission(), m_firstPowers, ns3::Min(), NS_ABORT_IF, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WIFI_PPDU_TYPE_DL_MU, ns3::WIFI_PPDU_TYPE_UL_MU, and visualizer.ipython_view::window.
Referenced by CalculatePayloadSnrPer().
PhyEntity::SnrPer ns3::InterferenceHelper::CalculatePayloadSnrPer | ( | Ptr< Event > | event, |
uint16_t | channelWidth, | ||
const WifiSpectrumBandInfo & | band, | ||
uint16_t | staId, | ||
std::pair< Time, Time > | relativeMpduStartStop | ||
) | const |
Calculate the SNIR at the start of the payload and accumulate all SNIR changes in the SNIR vector for each MPDU of an A-MPDU.
This workaround is required in order to provide one PER per MPDU, for reception success/failure evaluation, while hiding aggregation details from this class.
event | the event corresponding to the first time the corresponding PPDU arrives |
channelWidth | the channel width used to transmit the PSDU (in MHz) |
band | identify the band used by the PSDU |
staId | the station ID of the PSDU (only used for MU) |
relativeMpduStartStop | the time window (pair of start and end times) of PHY payload to focus on |
Definition at line 740 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), CalculatePayloadPer(), CalculateSnr(), and NS_LOG_FUNCTION.
|
private |
Calculate the error rate of the PHY header.
The PHY header can be divided into multiple chunks (e.g. due to interference from other transmissions).
event | the event |
nis | the NiChanges |
channelWidth | the channel width (in MHz) for header measurement |
band | the band |
header | the PHY header to consider |
Definition at line 710 of file interference-helper.cc.
References CalculatePhyHeaderSectionPsr(), ns3::WifiPhy::GetStaticPhyEntity(), and NS_LOG_FUNCTION.
Referenced by CalculatePhyHeaderSnrPer().
|
private |
Calculate the success rate of the PHY header sections for the provided event.
event | the event |
nis | the NiChanges |
channelWidth | the channel width (in MHz) for header measurement |
band | the band |
phyHeaderSections | the map of PHY header sections ( |
Definition at line 646 of file interference-helper.cc.
References ns3::Time::As(), CalculateChunkSuccessRate(), CalculateSnr(), ns3::Time::IsStrictlyPositive(), m_firstPowers, ns3::Max(), ns3::Min(), ns3::Time::NS, NS_ABORT_IF, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Seconds(), two-ray-to-three-gpp-ch-calibration::start, and two-ray-to-three-gpp-ch-calibration::stop.
Referenced by CalculatePhyHeaderPer().
PhyEntity::SnrPer ns3::InterferenceHelper::CalculatePhyHeaderSnrPer | ( | Ptr< Event > | event, |
uint16_t | channelWidth, | ||
const WifiSpectrumBandInfo & | band, | ||
WifiPpduField | header | ||
) | const |
Calculate the SNIR at the start of the PHY header and accumulate all SNIR changes in the SNIR vector.
event | the event corresponding to the first time the corresponding PPDU arrives |
channelWidth | the channel width (in MHz) for header measurement |
band | identify the band used by the PSDU |
header | the PHY header to consider |
Definition at line 776 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), CalculatePhyHeaderPer(), CalculateSnr(), and NS_LOG_FUNCTION.
|
protected |
Calculate SNR (linear ratio) from the given signal power and noise+interference power.
signal | signal power, W |
noiseInterference | noise and interference power, W |
channelWidth | signal width (MHz) |
nss | the number of spatial streams |
Definition at line 402 of file interference-helper.cc.
References m_errorRateModel, m_noiseFigure, m_numRxAntennas, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::RatioToDb().
double ns3::InterferenceHelper::CalculateSnr | ( | Ptr< Event > | event, |
uint16_t | channelWidth, | ||
uint8_t | nss, | ||
const WifiSpectrumBandInfo & | band | ||
) | const |
Calculate the SNIR for the event (starting from now until the event end).
event | the event corresponding to the first time the corresponding PPDU arrives |
channelWidth | the channel width (in MHz) |
nss | the number of spatial streams |
band | identify the band used by the PSDU |
Definition at line 764 of file interference-helper.cc.
References CalculateNoiseInterferenceW().
Referenced by CalculatePayloadPer(), CalculatePayloadSnrPer(), CalculatePhyHeaderSectionPsr(), CalculatePhyHeaderSnrPer(), and WifiErrorRateModelsTestCaseMimo::DoRun().
|
overrideprotectedvirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 199 of file interference-helper.cc.
References m_errorRateModel, m_firstPowers, m_niChanges, and NS_LOG_FUNCTION.
Time ns3::InterferenceHelper::GetEnergyDuration | ( | double | energyW, |
const WifiSpectrumBandInfo & | band | ||
) |
energyW | the minimum energy (W) requested |
band | identify the requested band |
Definition at line 326 of file interference-helper.cc.
References GetPreviousPosition(), m_niChanges, ns3::MicroSeconds(), ns3::Simulator::Now(), NS_ABORT_IF, and NS_LOG_FUNCTION.
Ptr< ErrorRateModel > ns3::InterferenceHelper::GetErrorRateModel | ( | ) | const |
Return the error rate model.
Definition at line 314 of file interference-helper.cc.
References m_errorRateModel.
|
private |
Returns an iterator to the first NiChange that is later than moment.
moment | time to check from |
niIt | iterator of the band to check |
Definition at line 795 of file interference-helper.cc.
Referenced by AddNiChangeEvent(), and GetPreviousPosition().
|
private |
Returns an iterator to the last NiChange that is before than moment.
moment | time to check from |
niIt | iterator of the band to check |
Definition at line 801 of file interference-helper.cc.
References GetNextPosition().
Referenced by AppendEvent(), GetEnergyDuration(), NotifyRxEnd(), and UpdateEvent().
|
static |
Get the type ID.
Definition at line 189 of file interference-helper.cc.
References ns3::TypeId::SetParent().
|
private |
Check whether a given band is tracked by this interference helper.
band | the band to be checked |
Definition at line 243 of file interference-helper.cc.
References m_niChanges.
Referenced by UpdateBands().
bool ns3::InterferenceHelper::HasBands | ( | ) | const |
Check whether bands are already tracked by this interference helper.
Definition at line 237 of file interference-helper.cc.
References m_niChanges.
|
private |
Check whether a given band belongs to a given frequency range.
band | the band to be checked |
freqRange | the frequency range to check whether the band belong to |
Definition at line 843 of file interference-helper.cc.
References ns3::WifiSpectrumBandInfo::frequencies, ns3::FrequencyRange::maxFrequency, and ns3::FrequencyRange::minFrequency.
Referenced by NotifyRxEnd(), and UpdateBands().
|
private |
Return whether another event is a MU-MIMO event that belongs to the same transmission and to the same RU.
currentEvent | the current event that is being inspected |
otherEvent | the other event to compare against |
Definition at line 851 of file interference-helper.cc.
References NS_ASSERT, and ns3::WIFI_PPDU_TYPE_UL_MU.
Referenced by CalculateMuMimoPowerW(), CalculateNoiseInterferenceW(), and CalculatePayloadPer().
void ns3::InterferenceHelper::NotifyRxEnd | ( | Time | endTime, |
const FrequencyRange & | freqRange | ||
) |
Notify that RX has ended.
endTime | the end time of the signal |
freqRange | the frequency range in which the received signal event had been detected |
Definition at line 824 of file interference-helper.cc.
References GetPreviousPosition(), IsBandInFrequencyRange(), m_firstPowers, m_niChanges, m_rxing, NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::InterferenceHelper::NotifyRxStart | ( | ) |
Notify that RX has started.
Definition at line 817 of file interference-helper.cc.
References m_rxing, and NS_LOG_FUNCTION.
void ns3::InterferenceHelper::SetErrorRateModel | ( | const Ptr< ErrorRateModel > | rate | ) |
Set the error rate model for this interference helper.
rate | Error rate model |
Definition at line 308 of file interference-helper.cc.
References m_errorRateModel.
Referenced by WifiErrorRateModelsTestCaseMimo::DoRun().
void ns3::InterferenceHelper::SetNoiseFigure | ( | double | value | ) |
Set the noise figure.
value | noise figure in linear scale |
Definition at line 302 of file interference-helper.cc.
References m_noiseFigure.
Referenced by WifiErrorRateModelsTestCaseMimo::DoRun().
void ns3::InterferenceHelper::SetNumberOfReceiveAntennas | ( | uint8_t | rx | ) |
Set the number of RX antennas in the receiver corresponding to this interference helper.
rx | the number of RX antennas |
Definition at line 320 of file interference-helper.cc.
References m_numRxAntennas.
Referenced by WifiErrorRateModelsTestCaseMimo::DoRun().
void ns3::InterferenceHelper::UpdateBands | ( | const std::vector< WifiSpectrumBandInfo > & | bands, |
const FrequencyRange & | freqRange | ||
) |
Update the frequency bands that belongs to a given frequency range when the spectrum model is changed.
bands | the bands to be added in the new spectrum model |
freqRange | the frequency range the bands belong to |
Definition at line 263 of file interference-helper.cc.
References AddBand(), two-ray-to-three-gpp-ch-calibration::frequencies, HasBand(), IsBandInFrequencyRange(), m_firstPowers, m_niChanges, and NS_LOG_FUNCTION.
void ns3::InterferenceHelper::UpdateEvent | ( | Ptr< Event > | event, |
const RxPowerWattPerChannelBand & | rxPower | ||
) |
Update event to scale its received power (W) per band.
event | the event to be updated |
rxPower | the received power (W) per band to be added to the current event |
Definition at line 383 of file interference-helper.cc.
References GetPreviousPosition(), m_niChanges, NS_ABORT_IF, and NS_LOG_FUNCTION.
|
private |
error rate model
Definition at line 510 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), CalculatePayloadChunkSuccessRate(), CalculateSnr(), DoDispose(), GetErrorRateModel(), and SetErrorRateModel().
|
private |
first power of each band in watts
Definition at line 513 of file interference-helper.h.
Referenced by AddBand(), AppendEvent(), CalculateNoiseInterferenceW(), CalculatePayloadPer(), CalculatePhyHeaderSectionPsr(), DoDispose(), NotifyRxEnd(), and UpdateBands().
|
private |
NI Changes for each band.
Definition at line 512 of file interference-helper.h.
Referenced by AddBand(), AppendEvent(), CalculateMuMimoPowerW(), CalculateNoiseInterferenceW(), DoDispose(), GetEnergyDuration(), HasBand(), HasBands(), NotifyRxEnd(), UpdateBands(), and UpdateEvent().
|
private |
noise figure (linear)
Definition at line 509 of file interference-helper.h.
Referenced by CalculateSnr(), and SetNoiseFigure().
|
private |
the number of RX antennas in the corresponding receiver
Definition at line 511 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), CalculatePayloadChunkSuccessRate(), CalculateSnr(), and SetNumberOfReceiveAntennas().
|
private |
flag whether it is in receiving state
Definition at line 514 of file interference-helper.h.
Referenced by AppendEvent(), NotifyRxEnd(), and NotifyRxStart().