A model for the error rate for different modulations. More...
#include <nist-error-rate-model.h>
Public Member Functions | |
NistErrorRateModel () | |
virtual double | GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const |
A pure virtual method that must be implemented in the subclass. More... | |
Public Member Functions inherited from ns3::ErrorRateModel | |
double | CalculateSnr (WifiMode txMode, double ber) const |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) 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 |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::ErrorRateModel | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
double | CalculatePe (double p, uint32_t bValue) const |
Return the coded BER for the given p and b. More... | |
double | Get16QamBer (double snr) const |
Return BER of QAM16 at the given SNR. More... | |
double | Get64QamBer (double snr) const |
Return BER of QAM64 at the given SNR. More... | |
double | GetBpskBer (double snr) const |
Return BER of BPSK at the given SNR. More... | |
double | GetFec16QamBer (double snr, uint32_t nbits, uint32_t bValue) const |
Return BER of QAM16 at the given SNR after applying FEC. More... | |
double | GetFec64QamBer (double snr, uint32_t nbits, uint32_t bValue) const |
Return BER of QAM64 at the given SNR after applying FEC. More... | |
double | GetFecBpskBer (double snr, double nbits, uint32_t bValue) const |
Return BER of BPSK at the given SNR after applying FEC. More... | |
double | GetFecQpskBer (double snr, double nbits, uint32_t bValue) const |
Return BER of QPSK at the given SNR after applying FEC. More... | |
double | GetQpskBer (double snr) const |
Return BER of QPSK at the given SNR. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
A model for the error rate for different modulations.
Doxygen introspection did not find any typical Config paths.
For OFDM modulation, the model description and validation can be found in http://www.nsnam.org/~pei/80211ofdm.pdf. For DSSS modulations (802.11b), the model uses the DsssErrorRateModel.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Definition at line 38 of file nist-error-rate-model.h.
ns3::NistErrorRateModel::NistErrorRateModel | ( | ) |
Definition at line 43 of file nist-error-rate-model.cc.
|
private |
Return the coded BER for the given p and b.
p | |
bValue |
Definition at line 108 of file nist-error-rate-model.cc.
References NS_ASSERT.
Referenced by GetFec16QamBer(), GetFec64QamBer(), GetFecBpskBer(), and GetFecQpskBer().
|
private |
Return BER of QAM16 at the given SNR.
snr | snr value |
Definition at line 64 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFec16QamBer().
|
private |
Return BER of QAM64 at the given SNR.
snr | snr value |
Definition at line 72 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFec64QamBer().
|
private |
Return BER of BPSK at the given SNR.
snr | snr value |
Definition at line 48 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecBpskBer().
|
virtual |
A pure virtual method that must be implemented in the subclass.
This method returns the probability that the given 'chuck' of the packet will be successfully received by the PHY.
A chuck can be viewed as a part of a packet with equal SNR. The probability of successfully receiving the chunk depends on the mode, the SNR, and the size of the chunk.
mode | the Wi-Fi mode the chunk is sent |
snr | the SNR of the chunk |
nbits | the number of bits in this chunk |
Implements ns3::ErrorRateModel.
Definition at line 194 of file nist-error-rate-model.cc.
References ns3::WifiMode::GetCodeRate(), ns3::WifiMode::GetConstellationSize(), ns3::WifiMode::GetDataRate(), ns3::DsssErrorRateModel::GetDsssDbpskSuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck11SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskSuccessRate(), GetFec16QamBer(), GetFec64QamBer(), GetFecBpskBer(), GetFecQpskBer(), ns3::WifiMode::GetModulationClass(), ns3::WIFI_CODE_RATE_1_2, ns3::WIFI_CODE_RATE_2_3, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_MOD_CLASS_OFDM.
|
private |
Return BER of QAM16 at the given SNR after applying FEC.
snr | snr value |
nbits | the number of bits in the chunk |
bValue |
Definition at line 166 of file nist-error-rate-model.cc.
References CalculatePe(), and Get16QamBer().
Referenced by GetChunkSuccessRate().
|
private |
Return BER of QAM64 at the given SNR after applying FEC.
snr | snr value |
nbits | the number of bits in the chunk |
bValue |
Definition at line 180 of file nist-error-rate-model.cc.
References CalculatePe(), and Get64QamBer().
Referenced by GetChunkSuccessRate().
|
private |
Return BER of BPSK at the given SNR after applying FEC.
snr | snr value |
nbits | the number of bits in the chunk |
bValue |
Definition at line 80 of file nist-error-rate-model.cc.
References CalculatePe(), and GetBpskBer().
Referenced by GetChunkSuccessRate().
|
private |
Return BER of QPSK at the given SNR after applying FEC.
snr | snr value |
nbits | the number of bits in the chunk |
bValue |
Definition at line 94 of file nist-error-rate-model.cc.
References CalculatePe(), and GetQpskBer().
Referenced by GetChunkSuccessRate().
|
private |
Return BER of QPSK at the given SNR.
snr | snr value |
Definition at line 56 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecQpskBer().
|
static |
Definition at line 34 of file nist-error-rate-model.cc.
References ns3::TypeId::SetParent().