A Discrete-Event Network Simulator
API
dsss-error-rate-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2010 The Boeing Company
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: Gary Pei <guangyu.pei@boeing.com>
19  */
20 
21 #ifndef DSSS_ERROR_RATE_MODEL_H
22 #define DSSS_ERROR_RATE_MODEL_H
23 
24 #ifdef HAVE_GSL
25 #include <gsl/gsl_math.h>
26 #include <gsl/gsl_integration.h>
27 #include <gsl/gsl_cdf.h>
28 #include <gsl/gsl_sf_bessel.h>
29 #endif
30 
31 namespace ns3 {
32 
33 #ifdef HAVE_GSL
34 
37 typedef struct FunctionParameterType
38 {
39  double beta;
40  double n;
41 } FunctionParameters;
42 
51 double IntegralFunction (double x, void *params);
52 #endif
53 
78 {
79 public:
87  static double DqpskFunction (double x);
96  static double GetDsssDbpskSuccessRate (double sinr, uint64_t nbits);
105  static double GetDsssDqpskSuccessRate (double sinr,uint64_t nbits);
115  static double GetDsssDqpskCck5_5SuccessRate (double sinr,uint64_t nbits);
125  static double GetDsssDqpskCck11SuccessRate (double sinr,uint64_t nbits);
126 #ifdef HAVE_GSL
127  static double SymbolErrorProb16Cck (double e2);
128  static double SymbolErrorProb256Cck (double e1);
129 #else
130 
131 
132 protected:
134  static const double WLAN_SIR_PERFECT;
136  static const double WLAN_SIR_IMPOSSIBLE;
137 #endif
138 };
139 
140 } //namespace ns3
141 
142 #endif /* DSSS_ERROR_RATE_MODEL_H */
static const double WLAN_SIR_PERFECT
WLAN perfect.
static double GetDsssDbpskSuccessRate(double sinr, uint64_t nbits)
Return the chunk success rate of the differential BPSK.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
an implementation of DSSS error rate modelThe 802.11b modulations:
static double GetDsssDqpskCck5_5SuccessRate(double sinr, uint64_t nbits)
Return the chunk success rate of the differential encoded QPSK for 5.5Mbps data rate.
static const double WLAN_SIR_IMPOSSIBLE
WLAN impossible.
static double DqpskFunction(double x)
A function DQPSK.
static double GetDsssDqpskSuccessRate(double sinr, uint64_t nbits)
Return the chunk success rate of the differential encoded QPSK.
static double GetDsssDqpskCck11SuccessRate(double sinr, uint64_t nbits)
Return the chunk success rate of the differential encoded QPSK for 11Mbps data rate.