handles interference calculations More...
#include <interference-helper.h>
Classes | |
class | Event |
class | NiChange |
struct | SnrPer |
Public Member Functions | |
InterferenceHelper () | |
~InterferenceHelper () | |
Ptr< InterferenceHelper::Event > | Add (uint32_t size, WifiMode payloadMode, enum WifiPreamble preamble, Time duration, double rxPower) |
struct InterferenceHelper::SnrPer | CalculateSnrPer (Ptr< InterferenceHelper::Event > event) |
void | EraseEvents (void) |
Time | GetEnergyDuration (double energyW) |
Ptr< ErrorRateModel > | GetErrorRateModel (void) const |
double | GetNoiseFigure (void) const |
void | NotifyRxEnd () |
void | NotifyRxStart () |
void | SetErrorRateModel (Ptr< ErrorRateModel > rate) |
void | SetNoiseFigure (double value) |
Private Types | |
typedef std::list< Ptr< Event > > | Events |
typedef std::vector< NiChange > | NiChanges |
Private Member Functions | |
InterferenceHelper (const InterferenceHelper &o) | |
void | AddNiChangeEvent (NiChange change) |
void | AppendEvent (Ptr< Event > event) |
double | CalculateChunkSuccessRate (double snir, Time delay, WifiMode mode) const |
double | CalculateNoiseInterferenceW (Ptr< Event > event, NiChanges *ni) const |
double | CalculatePer (Ptr< const Event > event, NiChanges *ni) const |
double | CalculateSnr (double signal, double noiseInterference, WifiMode mode) const |
NiChanges::iterator | GetPosition (Time moment) |
Returns an iterator to the first nichange, which is later than moment. | |
InterferenceHelper & | operator= (const InterferenceHelper &o) |
Private Attributes | |
Ptr< ErrorRateModel > | m_errorRateModel |
double | m_firstPower |
NiChanges | m_niChanges |
Experimental: needed for energy duration calculation. | |
double | m_noiseFigure |
bool | m_rxing |
handles interference calculations
Definition at line 40 of file interference-helper.h.
|
private |
Definition at line 112 of file interference-helper.h.
|
private |
Definition at line 111 of file interference-helper.h.
ns3::InterferenceHelper::InterferenceHelper | ( | ) |
Definition at line 116 of file interference-helper.cc.
ns3::InterferenceHelper::~InterferenceHelper | ( | ) |
Definition at line 122 of file interference-helper.cc.
References EraseEvents(), and m_errorRateModel.
|
private |
Ptr< InterferenceHelper::Event > ns3::InterferenceHelper::Add | ( | uint32_t | size, |
WifiMode | payloadMode, | ||
enum WifiPreamble | preamble, | ||
Time | duration, | ||
double | rxPower | ||
) |
Definition at line 129 of file interference-helper.cc.
References AppendEvent().
Referenced by ns3::YansWifiPhy::StartReceivePacket().
|
private |
Definition at line 382 of file interference-helper.cc.
References GetPosition(), ns3::InterferenceHelper::NiChange::GetTime(), and m_niChanges.
Referenced by AppendEvent().
Definition at line 193 of file interference-helper.cc.
References AddNiChangeEvent(), GetPosition(), m_firstPower, m_niChanges, m_rxing, and ns3::Now().
Referenced by Add().
|
private |
Definition at line 248 of file interference-helper.cc.
References ns3::ErrorRateModel::GetChunkSuccessRate(), ns3::WifiMode::GetPhyRate(), ns3::Time::GetSeconds(), m_errorRateModel, and ns3::NanoSeconds().
Referenced by CalculatePer().
|
private |
Definition at line 230 of file interference-helper.cc.
References m_firstPower, m_niChanges, m_rxing, and NS_ASSERT.
Referenced by CalculateSnrPer().
|
private |
Definition at line 261 of file interference-helper.cc.
References CalculateChunkSuccessRate(), CalculateSnr(), ns3::WifiPhy::GetPlcpHeaderDurationMicroSeconds(), ns3::WifiPhy::GetPlcpHeaderMode(), ns3::WifiPhy::GetPlcpPreambleDurationMicroSeconds(), ns3::MicroSeconds(), and NS_ASSERT.
Referenced by CalculateSnrPer().
|
private |
Definition at line 216 of file interference-helper.cc.
References ns3::WifiMode::GetBandwidth(), and m_noiseFigure.
Referenced by CalculatePer(), and CalculateSnrPer().
|
read |
Definition at line 349 of file interference-helper.cc.
References CalculateNoiseInterferenceW(), CalculatePer(), CalculateSnr(), ns3::InterferenceHelper::SnrPer::per, and ns3::InterferenceHelper::SnrPer::snr.
Referenced by ns3::YansWifiPhy::EndReceive().
void ns3::InterferenceHelper::EraseEvents | ( | void | ) |
Definition at line 369 of file interference-helper.cc.
References m_firstPower, m_niChanges, and m_rxing.
Referenced by ns3::YansWifiPhy::SetChannelNumber(), and ~InterferenceHelper().
Time ns3::InterferenceHelper::GetEnergyDuration | ( | double | energyW | ) |
energyW | the minimum energy (W) requested |
Definition at line 170 of file interference-helper.cc.
References m_firstPower, m_niChanges, ns3::MicroSeconds(), and ns3::Now().
Referenced by ns3::YansWifiPhy::StartReceivePacket().
Ptr< ErrorRateModel > ns3::InterferenceHelper::GetErrorRateModel | ( | void | ) | const |
Definition at line 164 of file interference-helper.cc.
References m_errorRateModel.
Referenced by ns3::YansWifiPhy::CalculateSnr(), and ns3::YansWifiPhy::GetErrorRateModel().
double ns3::InterferenceHelper::GetNoiseFigure | ( | void | ) | const |
Definition at line 152 of file interference-helper.cc.
References m_noiseFigure.
Referenced by ns3::YansWifiPhy::GetRxNoiseFigure().
|
private |
Returns an iterator to the first nichange, which is later than moment.
Definition at line 376 of file interference-helper.cc.
References m_niChanges.
Referenced by AddNiChangeEvent(), and AppendEvent().
void ns3::InterferenceHelper::NotifyRxEnd | ( | ) |
Definition at line 392 of file interference-helper.cc.
References m_rxing.
Referenced by ns3::YansWifiPhy::EndReceive(), and ns3::YansWifiPhy::SendPacket().
void ns3::InterferenceHelper::NotifyRxStart | ( | void | ) |
Definition at line 387 of file interference-helper.cc.
References m_rxing.
Referenced by ns3::YansWifiPhy::StartReceivePacket().
|
private |
void ns3::InterferenceHelper::SetErrorRateModel | ( | Ptr< ErrorRateModel > | rate | ) |
Definition at line 158 of file interference-helper.cc.
References m_errorRateModel.
Referenced by ns3::YansWifiPhy::SetErrorRateModel().
void ns3::InterferenceHelper::SetNoiseFigure | ( | double | value | ) |
Definition at line 146 of file interference-helper.cc.
References m_noiseFigure.
Referenced by ns3::YansWifiPhy::SetRxNoiseFigure().
|
private |
Definition at line 123 of file interference-helper.h.
Referenced by CalculateChunkSuccessRate(), GetErrorRateModel(), SetErrorRateModel(), and ~InterferenceHelper().
|
private |
Definition at line 126 of file interference-helper.h.
Referenced by AppendEvent(), CalculateNoiseInterferenceW(), EraseEvents(), and GetEnergyDuration().
|
private |
Experimental: needed for energy duration calculation.
Definition at line 125 of file interference-helper.h.
Referenced by AddNiChangeEvent(), AppendEvent(), CalculateNoiseInterferenceW(), EraseEvents(), GetEnergyDuration(), and GetPosition().
|
private |
noise figure (linear)
Definition at line 122 of file interference-helper.h.
Referenced by CalculateSnr(), GetNoiseFigure(), and SetNoiseFigure().
|
private |
Definition at line 127 of file interference-helper.h.
Referenced by AppendEvent(), CalculateNoiseInterferenceW(), EraseEvents(), NotifyRxEnd(), and NotifyRxStart().