the interface for Wifi's error models More...
#include "error-rate-model.h"
Public Member Functions | |
virtual int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
double | CalculateSnr (const WifiTxVector &txVector, double ber) const |
double | GetChunkSuccessRate (WifiMode mode, const WifiTxVector &txVector, double snr, uint64_t nbits, uint8_t numRxAntennas=1, WifiPpduField field=WIFI_PPDU_FIELD_DATA, uint16_t staId=SU_STA_ID) const |
This method returns the probability that the given 'chunk' of the packet will be successfully received by the PHY. More... | |
virtual bool | IsAwgn () const |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () 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 |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Private Member Functions | |
virtual double | DoGetChunkSuccessRate (WifiMode mode, const WifiTxVector &txVector, double snr, uint64_t nbits, uint8_t numRxAntennas, WifiPpduField field, uint16_t staId) const =0 |
A pure virtual method that must be implemented in the subclass. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoDispose () |
Destructor implementation. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
the interface for Wifi's error models
Definition at line 35 of file error-rate-model.h.
|
virtual |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Definition at line 104 of file error-rate-model.cc.
double ns3::ErrorRateModel::CalculateSnr | ( | const WifiTxVector & | txVector, |
double | ber | ||
) | const |
txVector | a specific transmission vector including WifiMode |
ber | a target BER |
Definition at line 39 of file error-rate-model.cc.
References GetChunkSuccessRate(), ns3::WifiTxVector::GetMode(), and NS_ASSERT.
|
privatepure virtual |
A pure virtual method that must be implemented in the subclass.
mode | the Wi-Fi mode applicable to this chunk |
txVector | TXVECTOR of the overall transmission |
snr | the SNR of the chunk |
nbits | the number of bits in this chunk |
numRxAntennas | the number of active RX antennas |
field | the PPDU field to which the chunk belongs to |
staId | the station ID for MU |
Implemented in ns3::YansErrorRateModel, ns3::TableBasedErrorRateModel, and ns3::NistErrorRateModel.
Referenced by GetChunkSuccessRate().
double ns3::ErrorRateModel::GetChunkSuccessRate | ( | WifiMode | mode, |
const WifiTxVector & | txVector, | ||
double | snr, | ||
uint64_t | nbits, | ||
uint8_t | numRxAntennas = 1 , |
||
WifiPpduField | field = WIFI_PPDU_FIELD_DATA , |
||
uint16_t | staId = SU_STA_ID |
||
) | const |
This method returns the probability that the given 'chunk' of the packet will be successfully received by the PHY.
A chunk 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.
Note that both a WifiMode and a WifiTxVector (which contains a WifiMode) are passed into this method. The WifiTxVector may be from a signal that contains multiple modes (e.g. PHY header sent differently from PHY payload). Consequently, the mode parameter is what the method uses to calculate the chunk error rate, and the txVector is used for other information as needed.
This method handles 802.11b rates by using the DSSS error rate model. For all other rates, the method implemented by the subclass is called.
mode | the Wi-Fi mode applicable to this chunk |
txVector | TXVECTOR of the overall transmission |
snr | the SNR of the chunk |
nbits | the number of bits in this chunk |
numRxAntennas | the number of active RX antennas (1 if not provided) |
field | the PPDU field to which the chunk belongs to (assumes this is for the payload part if not provided) |
staId | the station ID for MU |
Definition at line 65 of file error-rate-model.cc.
References DoGetChunkSuccessRate(), ns3::WifiMode::GetDataRate(), ns3::DsssErrorRateModel::GetDsssDbpskSuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck11SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskSuccessRate(), ns3::WifiMode::GetModulationClass(), NS_ASSERT, ns3::WIFI_MOD_CLASS_DSSS, and ns3::WIFI_MOD_CLASS_HR_DSSS.
Referenced by CalculateSnr().
|
static |
Get the type ID.
Definition at line 32 of file error-rate-model.cc.
References ns3::TypeId::SetParent().
|
virtual |
Definition at line 98 of file error-rate-model.cc.