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, const FrequencyRange &freqRange, bool isStartHePortionRxing=false) |
Add the PPDU-related signal to interference helper. | |
void | AddBand (const WifiSpectrumBandInfo &band) |
Add a frequency band. | |
void | AddForeignSignal (Time duration, RxPowerWattPerChannelBand &rxPower, const FrequencyRange &freqRange) |
Add a non-Wifi signal to interference helper. | |
PhyEntity::SnrPer | CalculatePayloadSnrPer (Ptr< Event > event, MHz_u 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, MHz_u 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, MHz_u channelWidth, uint8_t nss, const WifiSpectrumBandInfo &band) const |
Calculate the SNIR for the event (starting from now until the event end). | |
Time | GetEnergyDuration (Watt_u energy, 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 (const FrequencyRange &freqRange) |
Notify that RX has started. | |
void | RemoveBand (const WifiSpectrumBandInfo &band) |
Remove a frequency band. | |
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. | |
Public Member Functions inherited from ns3::Object | |
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. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
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. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) 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. | |
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 Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Types | |
using | FirstPowerPerBand = std::map<WifiSpectrumBandInfo, Watt_u> |
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. | |
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 (Watt_u signal, Watt_u noiseInterference, MHz_u channelWidth, uint8_t nss) const |
Calculate SNR (linear ratio) from the given signal power and noise+interference power. | |
void | DoDispose () override |
Destructor implementation. | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Protected Attributes | |
NiChangesPerBand | m_niChanges |
NI Changes for each band. | |
std::map< FrequencyRange, bool > | m_rxing |
flag whether it is in receiving state for a given FrequencyRange | |
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, const FrequencyRange &freqRange, bool isStartHePortionRxing) |
Append the given Event. | |
Watt_u | 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. | |
Watt_u | CalculateNoiseInterferenceW (Ptr< Event > event, NiChangesPerBand &nis, const WifiSpectrumBandInfo &band) const |
Calculate noise and interference power. | |
double | CalculatePayloadPer (Ptr< const Event > event, MHz_u 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, MHz_u channelWidth, const WifiSpectrumBandInfo &band, WifiPpduField header) const |
Calculate the error rate of the PHY header. | |
double | CalculatePhyHeaderSectionPsr (Ptr< const Event > event, NiChangesPerBand *nis, MHz_u 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. | |
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. | |
Private Attributes | |
Ptr< ErrorRateModel > | m_errorRateModel |
error rate model | |
FirstPowerPerBand | m_firstPowers |
first power of each band | |
double | m_noiseFigure |
noise figure (linear) | |
uint8_t | m_numRxAntennas |
the number of RX antennas in the corresponding receiver | |
Additional Inherited Members | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
handles interference calculations
Definition at line 121 of file interference-helper.h.
|
protected |
Map of first power per band.
Definition at line 406 of file interference-helper.h.
|
protected |
typedef for a multimap of NiChange
Definition at line 396 of file interference-helper.h.
|
protected |
Map of NiChanges per band.
Definition at line 401 of file interference-helper.h.
ns3::InterferenceHelper::InterferenceHelper | ( | ) |
Definition at line 164 of file interference-helper.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 171 of file interference-helper.cc.
References NS_LOG_FUNCTION.
Ptr< Event > ns3::InterferenceHelper::Add | ( | Ptr< const WifiPpdu > | ppdu, |
Time | duration, | ||
RxPowerWattPerChannelBand & | rxPower, | ||
const FrequencyRange & | freqRange, | ||
bool | isStartHePortionRxing = false ) |
Add the PPDU-related signal to interference helper.
ppdu | the PPDU |
duration | the PPDU duration |
rxPower | received power per band (W) |
freqRange | the frequency range in which the received signal is detected |
isStartHePortionRxing | flag whether the event corresponds to the start of the HE portion reception (only used for MU) |
Definition at line 200 of file interference-helper.cc.
References AppendEvent(), and ns3::Create().
Referenced by AddForeignSignal().
void ns3::InterferenceHelper::AddBand | ( | const WifiSpectrumBandInfo & | band | ) |
Add a frequency band.
band | the band to be added |
Definition at line 240 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, | ||
const FrequencyRange & | freqRange ) |
Add a non-Wifi signal to interference helper.
duration | the duration of the signal |
rxPower | received power per band (W) |
freqRange | the frequency range in which the received signal is detected |
Definition at line 212 of file interference-helper.cc.
References Add(), ns3::Create(), 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 814 of file interference-helper.cc.
References GetNextPosition().
Referenced by AddBand(), and AppendEvent().
|
private |
Append the given Event.
event | the event to be appended |
freqRange | the frequency range in which the received signal event is detected |
isStartHePortionRxing | flag whether event corresponds to the start of the HE portion reception (only used for MU) |
Definition at line 348 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 525 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 488 of file interference-helper.cc.
References ns3::DynamicCast(), 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.
event | the event |
nis | the NiChanges |
band | the band |
Definition at line 437 of file interference-helper.cc.
References CalculateMuMimoPowerW(), 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 543 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().
|
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 |
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 568 of file interference-helper.cc.
References CalculateMuMimoPowerW(), CalculatePayloadChunkSuccessRate(), ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), CalculateSnr(), IsSameMuMimoTransmission(), 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, |
MHz_u | 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 |
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 743 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 for header measurement |
band | the band |
header | the PHY header to consider |
Definition at line 713 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 for header measurement |
band | the band |
phyHeaderSections | the map of PHY header sections ( |
Definition at line 649 of file interference-helper.cc.
References CalculateChunkSuccessRate(), CalculateSnr(), m_firstPowers, Max, Min, ns3::Time::NS, NS_ABORT_IF, NS_ASSERT, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by CalculatePhyHeaderPer().
PhyEntity::SnrPer ns3::InterferenceHelper::CalculatePhyHeaderSnrPer | ( | Ptr< Event > | event, |
MHz_u | 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 for header measurement |
band | identify the band used by the PSDU |
header | the PHY header to consider |
Definition at line 779 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), CalculatePhyHeaderPer(), CalculateSnr(), and NS_LOG_FUNCTION.
double ns3::InterferenceHelper::CalculateSnr | ( | Ptr< Event > | event, |
MHz_u | 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 |
nss | the number of spatial streams |
band | identify the band used by the PSDU |
Definition at line 768 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), and CalculateSnr().
Referenced by CalculatePayloadPer(), CalculatePayloadSnrPer(), CalculatePhyHeaderSectionPsr(), CalculatePhyHeaderSnrPer(), and CalculateSnr().
|
protected |
Calculate SNR (linear ratio) from the given signal power and noise+interference power.
signal | signal power |
noiseInterference | noise and interference power |
channelWidth | signal width |
nss | the number of spatial streams |
Definition at line 405 of file interference-helper.cc.
References m_errorRateModel, m_noiseFigure, m_numRxAntennas, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::RatioToDb().
|
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 187 of file interference-helper.cc.
References m_errorRateModel, m_firstPowers, m_niChanges, and NS_LOG_FUNCTION.
Time ns3::InterferenceHelper::GetEnergyDuration | ( | Watt_u | energy, |
const WifiSpectrumBandInfo & | band ) |
energy | the minimum energy requested |
band | identify the requested band |
Definition at line 327 of file interference-helper.cc.
References GetPreviousPosition(), m_niChanges, ns3::Simulator::Now(), NS_ABORT_IF, and NS_LOG_FUNCTION.
Ptr< ErrorRateModel > ns3::InterferenceHelper::GetErrorRateModel | ( | ) | const |
Return the error rate model.
Definition at line 315 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 798 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 804 of file interference-helper.cc.
References GetNextPosition().
Referenced by AppendEvent(), GetEnergyDuration(), NotifyRxEnd(), and UpdateEvent().
|
static |
Get the type ID.
Definition at line 177 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 234 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 228 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 846 of file interference-helper.cc.
References ns3::WifiSpectrumBandInfo::frequencies.
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 858 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 was detected |
Definition at line 827 of file interference-helper.cc.
References GetPreviousPosition(), IsBandInFrequencyRange(), m_firstPowers, m_niChanges, m_rxing, NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::InterferenceHelper::NotifyRxStart | ( | const FrequencyRange & | freqRange | ) |
Notify that RX has started.
freqRange | the frequency range in which the received signal event is detected |
Definition at line 820 of file interference-helper.cc.
References m_rxing, and NS_LOG_FUNCTION.
void ns3::InterferenceHelper::RemoveBand | ( | const WifiSpectrumBandInfo & | band | ) |
Remove a frequency band.
band | the band to be removed |
Definition at line 254 of file interference-helper.cc.
References m_firstPowers, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by UpdateBands().
void ns3::InterferenceHelper::SetErrorRateModel | ( | const Ptr< ErrorRateModel > | rate | ) |
Set the error rate model for this interference helper.
rate | Error rate model |
Definition at line 309 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 303 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 321 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 266 of file interference-helper.cc.
References AddBand(), HasBand(), IsBandInFrequencyRange(), m_niChanges, NS_LOG_FUNCTION, and RemoveBand().
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 386 of file interference-helper.cc.
References GetPreviousPosition(), m_niChanges, NS_ABORT_IF, and NS_LOG_FUNCTION.
|
private |
error rate model
Definition at line 519 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), CalculatePayloadChunkSuccessRate(), CalculateSnr(), DoDispose(), GetErrorRateModel(), and SetErrorRateModel().
|
private |
first power of each band
Definition at line 521 of file interference-helper.h.
Referenced by AddBand(), AppendEvent(), CalculateNoiseInterferenceW(), CalculatePayloadPer(), CalculatePhyHeaderSectionPsr(), DoDispose(), NotifyRxEnd(), and RemoveBand().
|
protected |
NI Changes for each band.
Definition at line 408 of file interference-helper.h.
Referenced by AddBand(), AppendEvent(), CalculateMuMimoPowerW(), CalculateNoiseInterferenceW(), DoDispose(), GetEnergyDuration(), HasBand(), HasBands(), ExtInterferenceHelper::IsBandTracked(), NotifyRxEnd(), UpdateBands(), and UpdateEvent().
|
private |
noise figure (linear)
Definition at line 518 of file interference-helper.h.
Referenced by CalculateSnr(), and SetNoiseFigure().
|
private |
the number of RX antennas in the corresponding receiver
Definition at line 520 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), CalculatePayloadChunkSuccessRate(), CalculateSnr(), and SetNumberOfReceiveAntennas().
|
protected |
flag whether it is in receiving state for a given FrequencyRange
Definition at line 353 of file interference-helper.h.
Referenced by AppendEvent(), ExtInterferenceHelper::IsRxing(), NotifyRxEnd(), and NotifyRxStart().