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, const WifiTxVector &txVector, Time duration, RxPowerWattPerChannelBand &rxPower, bool isStartOfdmaRxing=false) |
Add the PPDU-related signal to interference helper. | |
void | AddBand (const WifiSpectrumBandInfo &band) |
Add a frequency band. | |
void | AddForeignSignal (Time duration, RxPowerWattPerChannelBand &rxPower) |
Add a non-Wifi signal to interference helper. | |
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. | |
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. | |
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). | |
Time | GetEnergyDuration (double energyW, const WifiSpectrumBandInfo &band) |
Ptr< ErrorRateModel > | GetErrorRateModel () const |
Return the error rate model. | |
bool | HasBands () const |
Check whether bands are already tracked by this interference helper. | |
void | NotifyRxEnd (Time endTime, const FrequencyRange &freqRange) |
Notify that RX has ended. | |
void | NotifyRxStart () |
Notify that RX has started. | |
void | SetErrorRateModel (const Ptr< ErrorRateModel > rate) |
Set the error rate model for this interference helper. | |
void | SetNoiseFigure (double value) |
Set the noise figure. | |
void | SetNumberOfReceiveAntennas (uint8_t rx) |
Set the number of RX antennas in the receiver corresponding to this interference helper. | |
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. | |
void | UpdateEvent (Ptr< Event > event, const RxPowerWattPerChannelBand &rxPower) |
Update event to scale its received power (W) per band. | |
![]() | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
![]() | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
virtual TypeId | GetInstanceTypeId () const =0 |
Get the most derived TypeId for this Object. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
![]() | |
static TypeId | GetTypeId () |
Register this type. | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. | |
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. | |
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. | |
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. | |
void | DoDispose () override |
Destructor implementation. | |
![]() | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoDispose () |
Destructor implementation. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Private Types | |
using | FirstPowerPerBand = std::map< WifiSpectrumBandInfo, double > |
Map of first power per band. | |
using | NiChanges = std::multimap< Time, NiChange > |
typedef for a multimap of NiChange | |
using | NiChangesPerBand = std::map< WifiSpectrumBandInfo, NiChanges > |
Map of NiChanges per band. | |
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. | |
void | AppendEvent (Ptr< Event > event, bool isStartOfdmaRxing) |
Append the given Event. | |
double | CalculateNoiseInterferenceW (Ptr< Event > event, NiChangesPerBand *nis, const WifiSpectrumBandInfo &band) const |
Calculate noise and interference power in W. | |
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). | |
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. | |
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. | |
NiChanges::iterator | GetNextPosition (Time moment, NiChangesPerBand::iterator niIt) |
Returns an iterator to the first NiChange that is later than moment. | |
NiChanges::iterator | GetPreviousPosition (Time moment, NiChangesPerBand::iterator niIt) |
Returns an iterator to the last NiChange that is before than moment. | |
bool | HasBand (const WifiSpectrumBandInfo &band) const |
Check whether a given band is tracked by this interference helper. | |
bool | IsBandInFrequencyRange (const WifiSpectrumBandInfo &band, const FrequencyRange &freqRange) const |
Check whether a given band belongs to a given frequency range. | |
Private Attributes | |
Ptr< ErrorRateModel > | m_errorRateModel |
error rate model | |
FirstPowerPerBand | m_firstPowers |
first power of each band in watts | |
NiChangesPerBand | m_niChanges |
NI Changes for each band. | |
double | m_noiseFigure |
noise figure (linear) | |
uint8_t | m_numRxAntennas |
the number of RX antennas in the corresponding receiver | |
bool | m_rxing |
flag whether it is in receiving state | |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
handles interference calculations
ns3::InterferenceHelper is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 160 bytes (on a 64-bit architecture).
Definition at line 135 of file interference-helper.h.
|
private |
Map of first power per band.
Definition at line 407 of file interference-helper.h.
|
private |
typedef for a multimap of NiChange
Definition at line 397 of file interference-helper.h.
|
private |
Map of NiChanges per band.
Definition at line 402 of file interference-helper.h.
ns3::InterferenceHelper::InterferenceHelper | ( | ) |
Definition at line 184 of file interference-helper.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 192 of file interference-helper.cc.
References NS_LOG_FUNCTION.
Ptr< Event > ns3::InterferenceHelper::Add | ( | Ptr< const WifiPpdu > | ppdu, |
const WifiTxVector & | txVector, | ||
Time | duration, | ||
RxPowerWattPerChannelBand & | rxPower, | ||
bool | isStartOfdmaRxing = false |
||
) |
Add the PPDU-related signal to interference helper.
ppdu | the PPDU |
txVector | the TXVECTOR |
duration | the PPDU duration |
rxPower | received power per band (W) |
isStartOfdmaRxing | flag whether the event corresponds to the start of the OFDMA payload reception (only used for UL-OFDMA) //TODO simplify this once WifiPpdu is subclassed by adding an attribute |
Definition at line 221 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 259 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 233 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 756 of file interference-helper.cc.
References GetNextPosition().
Referenced by AddBand(), and AppendEvent().
Append the given Event.
event | the event to be appended |
isStartOfdmaRxing | flag whether event corresponds to the start of the OFDMA payload reception (only used for UL-OFDMA) |
Definition at line 357 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 479 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 noise and interference power in W.
event | the event |
nis | the NiChanges |
band | the band |
Definition at line 444 of file interference-helper.cc.
References m_firstPowers, m_niChanges, ns3::Simulator::Now(), NS_ABORT_IF, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
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 497 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 522 of file interference-helper.cc.
References CalculatePayloadChunkSuccessRate(), ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), CalculateSnr(), m_firstPowers, Min, NS_ABORT_IF, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WIFI_PPDU_TYPE_DL_MU, and ns3::WIFI_PPDU_TYPE_UL_MU.
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 685 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 656 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 592 of file interference-helper.cc.
References ns3::Time::As(), CalculateChunkSuccessRate(), CalculateSnr(), ns3::Time::IsStrictlyPositive(), m_firstPowers, Max, Min, ns3::Time::NS, NS_ABORT_IF, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Seconds().
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 721 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 412 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 709 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), and CalculateSnr().
Referenced by CalculatePayloadPer(), CalculatePayloadSnrPer(), CalculatePhyHeaderSectionPsr(), CalculatePhyHeaderSnrPer(), CalculateSnr(), 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 208 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 336 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 324 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 740 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 746 of file interference-helper.cc.
References GetNextPosition().
Referenced by AppendEvent(), GetEnergyDuration(), NotifyRxEnd(), and UpdateEvent().
|
static |
Get the type ID.
Definition at line 198 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 253 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 247 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 788 of file interference-helper.cc.
References ns3::WifiSpectrumBandInfo::frequencies, ns3::FrequencyRange::maxFrequency, and ns3::FrequencyRange::minFrequency.
Referenced by NotifyRxEnd(), and UpdateBands().
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 769 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 762 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 318 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 312 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 330 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 273 of file interference-helper.cc.
References AddBand(), 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 393 of file interference-helper.cc.
References GetPreviousPosition(), m_niChanges, NS_ABORT_IF, and NS_LOG_FUNCTION.
|
private |
error rate model
Definition at line 503 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 506 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 505 of file interference-helper.h.
Referenced by AddBand(), AppendEvent(), CalculateNoiseInterferenceW(), DoDispose(), GetEnergyDuration(), HasBand(), HasBands(), NotifyRxEnd(), UpdateBands(), and UpdateEvent().
|
private |
noise figure (linear)
Definition at line 502 of file interference-helper.h.
Referenced by CalculateSnr(), and SetNoiseFigure().
|
private |
the number of RX antennas in the corresponding receiver
Definition at line 504 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), CalculatePayloadChunkSuccessRate(), CalculateSnr(), and SetNumberOfReceiveAntennas().
|
private |
flag whether it is in receiving state
Definition at line 507 of file interference-helper.h.
Referenced by AppendEvent(), NotifyRxEnd(), and NotifyRxStart().