A model for the error rate for different modulations. More...
#include <nist-error-rate-model.h>
Inheritance diagram for ns3::NistErrorRateModel:
Collaboration diagram for ns3::NistErrorRateModel: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, uint32_t nbits, uint32_t bValue) const |
| Return BER of BPSK at the given SNR after applying FEC. More... | |
| double | GetFecQpskBer (double snr, uint32_t 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 42 of file nist-error-rate-model.cc.
|
private |
Return the coded BER for the given p and b.
| p | |
| bValue |
Definition at line 107 of file nist-error-rate-model.cc.
References NS_ASSERT.
Referenced by GetFec16QamBer(), GetFec64QamBer(), GetFecBpskBer(), and GetFecQpskBer().
Here is the caller graph for this function:
|
private |
Return BER of QAM16 at the given SNR.
| snr | snr value |
Definition at line 63 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFec16QamBer().
Here is the caller graph for this function:
|
private |
Return BER of QAM64 at the given SNR.
| snr | snr value |
Definition at line 71 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFec64QamBer().
Here is the caller graph for this function:
|
private |
Return BER of BPSK at the given SNR.
| snr | snr value |
Definition at line 47 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecBpskBer().
Here is the caller graph for this function:
|
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 193 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.
Here is the call graph for this function:
|
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 165 of file nist-error-rate-model.cc.
References CalculatePe(), and Get16QamBer().
Referenced by GetChunkSuccessRate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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 179 of file nist-error-rate-model.cc.
References CalculatePe(), and Get64QamBer().
Referenced by GetChunkSuccessRate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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 79 of file nist-error-rate-model.cc.
References CalculatePe(), and GetBpskBer().
Referenced by GetChunkSuccessRate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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 93 of file nist-error-rate-model.cc.
References CalculatePe(), and GetQpskBer().
Referenced by GetChunkSuccessRate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Return BER of QPSK at the given SNR.
| snr | snr value |
Definition at line 55 of file nist-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecQpskBer().
Here is the caller graph for this function:
|
static |
Definition at line 33 of file nist-error-rate-model.cc.
References ns3::TypeId::SetParent().
Here is the call graph for this function: