Model the error rate for different modulations.A packet of interest (e.g., a packet can potentially be received by the MAC) is divided into chunks. Each chunk is related to an start/end receiving event. For each chunk, it calculates the ratio (SINR) between received power of packet of interest and summation of noise and interfering power of all the other incoming packets. Then, it will calculate the success rate of the chunk based on BER of the modulation. The success reception rate of the packet is derived from the success rate of all chunks. More...
#include <yans-error-rate-model.h>
Public Member Functions | |
YansErrorRateModel () | |
virtual double | GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const |
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) |
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 | Start (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
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) |
This method returns the TypeId associated to ns3::YansErrorRateModel. |
Private Member Functions | |
double | Binomial (uint32_t k, double p, uint32_t n) const |
double | CalculatePd (double ber, unsigned int d) const |
double | CalculatePdEven (double ber, unsigned int d) const |
double | CalculatePdOdd (double ber, unsigned int d) const |
uint32_t | Factorial (uint32_t k) const |
double | GetBpskBer (double snr, uint32_t signalSpread, uint32_t phyRate) const |
double | GetFecBpskBer (double snr, double nbits, uint32_t signalSpread, uint32_t phyRate, uint32_t dFree, uint32_t adFree) const |
double | GetFecQamBer (double snr, uint32_t nbits, uint32_t signalSpread, uint32_t phyRate, uint32_t m, uint32_t dfree, uint32_t adFree, uint32_t adFreePlusOne) const |
double | GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const |
double | Log2 (double val) const |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
Model the error rate for different modulations.
A packet of interest (e.g., a packet can potentially be received by the MAC) is divided into chunks. Each chunk is related to an start/end receiving event. For each chunk, it calculates the ratio (SINR) between received power of packet of interest and summation of noise and interfering power of all the other incoming packets. Then, it will calculate the success rate of the chunk based on BER of the modulation. The success reception rate of the packet is derived from the success rate of all chunks.
The 802.11b modulations:
Definition at line 55 of file yans-error-rate-model.h.
ns3::YansErrorRateModel::YansErrorRateModel | ( | ) |
Definition at line 40 of file yans-error-rate-model.cc.
|
private |
Definition at line 81 of file yans-error-rate-model.cc.
References Factorial().
Referenced by CalculatePdEven(), and CalculatePdOdd().
|
private |
Definition at line 118 of file yans-error-rate-model.cc.
References CalculatePdEven(), and CalculatePdOdd().
Referenced by GetFecBpskBer(), and GetFecQamBer().
|
private |
Definition at line 101 of file yans-error-rate-model.cc.
References Binomial(), and NS_ASSERT.
Referenced by CalculatePd().
|
private |
Definition at line 87 of file yans-error-rate-model.cc.
References Binomial(), and NS_ASSERT.
Referenced by CalculatePd().
|
private |
Definition at line 70 of file yans-error-rate-model.cc.
References anonymous_namespace{rng-stream.cc}::fact.
Referenced by Binomial().
|
private |
Definition at line 50 of file yans-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecBpskBer().
|
virtual |
Implements ns3::ErrorRateModel.
Definition at line 173 of file yans-error-rate-model.cc.
References ns3::WifiMode::GetBandwidth(), ns3::WifiMode::GetCodeRate(), ns3::WifiMode::GetConstellationSize(), ns3::WifiMode::GetDataRate(), ns3::DsssErrorRateModel::GetDsssDbpskSuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck11SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate(), ns3::DsssErrorRateModel::GetDsssDqpskSuccessRate(), GetFecBpskBer(), GetFecQamBer(), ns3::WifiMode::GetModulationClass(), ns3::WifiMode::GetPhyRate(), ns3::WIFI_CODE_RATE_1_2, ns3::WIFI_CODE_RATE_2_3, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, and ns3::WIFI_MOD_CLASS_OFDM.
|
private |
Definition at line 133 of file yans-error-rate-model.cc.
References CalculatePd(), and GetBpskBer().
Referenced by GetChunkSuccessRate().
|
private |
Definition at line 150 of file yans-error-rate-model.cc.
References CalculatePd(), and GetQamBer().
Referenced by GetChunkSuccessRate().
|
private |
Definition at line 59 of file yans-error-rate-model.cc.
References Log2(), and NS_LOG_INFO.
Referenced by GetFecQamBer().
|
static |
This method returns the TypeId associated to ns3::YansErrorRateModel.
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::ErrorRateModel.
Definition at line 31 of file yans-error-rate-model.cc.
References ns3::TypeId::SetParent().
|
private |
Definition at line 45 of file yans-error-rate-model.cc.
Referenced by GetQamBer().