src/devices/wifi/error-rate-model.h
changeset 3902 9e048e073cf0
child 3903 714f93024a37
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/devices/wifi/error-rate-model.h	Thu Jun 12 12:28:36 2008 -0700
@@ -0,0 +1,41 @@
+#ifndef ERROR_RATE_MODEL_H
+#define ERROR_RATE_MODEL_H
+
+#include <stdint.h>
+#include "wifi-mode.h"
+#include "ns3/object.h"
+
+namespace ns3 {
+
+class ErrorRateModel : public Object
+{
+public:
+  static TypeId GetTypeId (void);
+
+  ErrorRateModel ();
+
+  double GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const;
+
+private:
+  double Log2 (double val) const;
+  double GetBpskBer (double snr, uint32_t signalSpread, uint32_t phyRate) const;
+  double GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const;
+  uint32_t Factorial (uint32_t k) const;
+  double Binomial (uint32_t k, double p, uint32_t n) const;
+  double CalculatePdOdd (double ber, unsigned int d) const;
+  double CalculatePdEven (double ber, unsigned int d) const;
+  double CalculatePd (double ber, unsigned int d) 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;
+};
+
+
+} // namespace ns3
+
+#endif /* ERROR_RATE_MODEL_H */