A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
yans-error-rate-model.h
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 #ifndef YANS_ERROR_RATE_MODEL_H
21 #define YANS_ERROR_RATE_MODEL_H
22 
23 #include <stdint.h>
24 #include "wifi-mode.h"
25 #include "error-rate-model.h"
26 #include "dsss-error-rate-model.h"
27 
28 namespace ns3 {
29 
56 {
57 public:
58  static TypeId GetTypeId (void);
59 
61 
62  virtual double GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const;
63 
64 private:
65  double Log2 (double val) const;
66  double GetBpskBer (double snr, uint32_t signalSpread, uint32_t phyRate) const;
67  double GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const;
68  uint32_t Factorial (uint32_t k) const;
69  double Binomial (uint32_t k, double p, uint32_t n) const;
70  double CalculatePdOdd (double ber, unsigned int d) const;
71  double CalculatePdEven (double ber, unsigned int d) const;
72  double CalculatePd (double ber, unsigned int d) const;
73  double GetFecBpskBer (double snr, double nbits,
74  uint32_t signalSpread, uint32_t phyRate,
75  uint32_t dFree, uint32_t adFree) const;
76  double GetFecQamBer (double snr, uint32_t nbits,
77  uint32_t signalSpread,
78  uint32_t phyRate,
79  uint32_t m, uint32_t dfree,
80  uint32_t adFree, uint32_t adFreePlusOne) const;
81 };
82 
83 
84 } // namespace ns3
85 
86 #endif /* YANS_ERROR_RATE_MODEL_H */
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
Definition: wifi-mode.h:88
the interface for Wifi's error models
Model the error rate for different modulations.A packet of interest (e.g., a packet can potentially b...
a unique identifier for an interface.
Definition: type-id.h:44