38     .SetGroupName (
"Wifi")
 
   51   return std::log (val) / std::log (2.0);
 
   58   double EbNo = snr * signalSpread / phyRate;
 
   59   double z = std::sqrt (EbNo);
 
   60   double ber = 0.5 * erfc (z);
 
   69   double EbNo = snr * signalSpread / phyRate;
 
   70   double z = std::sqrt ((1.5 * 
Log2 (m) * EbNo) / (m - 1.0));
 
   71   double z1 = ((1.0 - 1.0 / std::sqrt (m)) * erfc (z));
 
   72   double z2 = 1 - std::pow ((1 - z1), 2);
 
   73   double ber = z2 / 
Log2 (m);
 
   74   NS_LOG_INFO (
"Qam m=" << m << 
" rate=" << phyRate << 
" snr=" << snr << 
" ber=" << ber);
 
   93   double retval = 
Factorial (n) / (
Factorial (k) * 
Factorial (n - k)) * std::pow (p, static_cast<double> (k)) * std::pow (1 - p, static_cast<double> (n - k));
 
  101   unsigned int dstart = (d + 1) / 2;
 
  102   unsigned int dend = d;
 
  105   for (
unsigned int i = dstart; i < dend; i++)
 
  116   unsigned int dstart = d / 2 + 1;
 
  117   unsigned int dend = d;
 
  120   for (
unsigned int i = dstart; i < dend; i++)
 
  124   pd += 0.5 * 
Binomial (d / 2, ber, d);
 
  147                                    uint32_t signalSpread, uint32_t phyRate,
 
  148                                    uint32_t dFree, uint32_t adFree)
 const 
  150   NS_LOG_FUNCTION (
this << snr << nbits << signalSpread << phyRate << dFree << adFree);
 
  151   double ber = 
GetBpskBer (snr, signalSpread, phyRate);
 
  157   double pmu = adFree * pd;
 
  159   double pms = std::pow (1 - pmu, nbits);
 
  165                                   uint32_t signalSpread,
 
  167                                   uint32_t m, uint32_t dFree,
 
  168                                   uint32_t adFree, uint32_t adFreePlusOne)
 const 
  170   NS_LOG_FUNCTION (
this << snr << nbits << signalSpread << phyRate << m << dFree << adFree << adFreePlusOne);
 
  171   double ber = 
GetQamBer (snr, m, signalSpread, phyRate);
 
  178   double pmu = adFree * pd;
 
  181   pmu += adFreePlusOne * pd;
 
  183   double pms = std::pow (1 - pmu, static_cast<double> (nbits));
 
  345           NS_ASSERT (
"undefined DSSS/HR-DSSS datarate");
 
static TypeId GetTypeId(void)
 
double CalculatePdEven(double ber, unsigned int d) const 
 
static double GetDsssDqpskCck11SuccessRate(double sinr, uint32_t nbits)
Return the chunk success rate of the differential encoded QPSK for 11Mbps data rate. 
 
double CalculatePd(double ber, unsigned int d) const 
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
 
double GetFecBpskBer(double snr, double nbits, uint32_t signalSpread, uint32_t phyRate, uint32_t dFree, uint32_t adFree) const 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
enum WifiModulationClass GetModulationClass() const 
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
double CalculatePdOdd(double ber, unsigned int d) const 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
double GetQamBer(double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const 
Return BER of QAM-m with the given parameters. 
 
static double GetDsssDqpskSuccessRate(double sinr, uint32_t nbits)
Return the chunk success rate of the differential encoded QPSK. 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
 
the interface for Wifi's error models 
 
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 
 
uint64_t GetPhyRate(uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const 
 
uint16_t GetConstellationSize(void) const 
 
Model the error rate for different modulations. 
 
enum WifiCodeRate GetCodeRate(void) const 
 
uint32_t GetChannelWidth(void) const 
 
virtual double GetChunkSuccessRate(WifiMode mode, WifiTxVector txVector, double snr, uint32_t nbits) const 
A pure virtual method that must be implemented in the subclass. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
double Log2(double val) const 
Return the logarithm of the given value to base 2. 
 
uint64_t GetDataRate(uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const 
 
uint32_t Factorial(uint32_t k) const 
Return k! 
 
static double GetDsssDqpskCck5_5SuccessRate(double sinr, uint32_t nbits)
Return the chunk success rate of the differential encoded QPSK for 5.5Mbps data rate. 
 
double GetBpskBer(double snr, uint32_t signalSpread, uint32_t phyRate) const 
Return BER of BPSK with the given parameters. 
 
double Binomial(uint32_t k, double p, uint32_t n) const 
Return Binomial distribution for a given k, p, and n. 
 
static double GetDsssDbpskSuccessRate(double sinr, uint32_t nbits)
Return the chunk success rate of the differential BPSK. 
 
WifiMode GetMode(void) const 
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId.