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 |
![]() | |
double | CalculateSnr (WifiMode txMode, double ber) const |
![]() | |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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) |
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 | |
![]() | |
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:
This type is not accessible from the Config system.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Definition at line 55 of file yans-error-rate-model.h.
ns3::YansErrorRateModel::YansErrorRateModel | ( | ) |
Definition at line 43 of file yans-error-rate-model.cc.
|
private |
Definition at line 84 of file yans-error-rate-model.cc.
References Factorial().
Referenced by CalculatePdEven(), and CalculatePdOdd().
|
private |
Definition at line 121 of file yans-error-rate-model.cc.
References CalculatePdEven(), and CalculatePdOdd().
Referenced by GetFecBpskBer(), and GetFecQamBer().
|
private |
Definition at line 104 of file yans-error-rate-model.cc.
References Binomial(), and NS_ASSERT.
Referenced by CalculatePd().
|
private |
Definition at line 90 of file yans-error-rate-model.cc.
References Binomial(), and NS_ASSERT.
Referenced by CalculatePd().
|
private |
Definition at line 73 of file yans-error-rate-model.cc.
References anonymous_namespace{rng-stream.cc}::fact.
Referenced by Binomial().
|
private |
Definition at line 53 of file yans-error-rate-model.cc.
References NS_LOG_INFO.
Referenced by GetFecBpskBer().
|
virtual |
Implements ns3::ErrorRateModel.
Definition at line 176 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 136 of file yans-error-rate-model.cc.
References CalculatePd(), and GetBpskBer().
Referenced by GetChunkSuccessRate().
|
private |
Definition at line 153 of file yans-error-rate-model.cc.
References CalculatePd(), and GetQamBer().
Referenced by GetChunkSuccessRate().
|
private |
Definition at line 62 of file yans-error-rate-model.cc.
References Log2(), and NS_LOG_INFO.
Referenced by GetFecQamBer().
|
static |
Reimplemented from ns3::ErrorRateModel.
Definition at line 34 of file yans-error-rate-model.cc.
References ns3::TypeId::SetParent().
|
private |
Definition at line 48 of file yans-error-rate-model.cc.
Referenced by GetQamBer().