src/wifi/model/nist-error-rate-model.cc
author Ghada Badawy <gbadawy@gmail.com>
Tue, 13 Aug 2013 22:05:25 -0700
changeset 10139 17a71cd49da3
parent 9070 0d6be2f9c438
child 10410 4d4eb8097fa3
permissions -rw-r--r--
partial 802.11n support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7385
10beb0e53130 standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents: 7141
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     2
/*
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     3
 * Copyright (c) 2010 The Boeing Company
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     4
 *
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     8
 *
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    12
 * GNU General Public License for more details.
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    13
 *
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    17
 *
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    18
 * Author: Gary Pei <guangyu.pei@boeing.com>
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    19
 */
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    20
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    21
#include <cmath>
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    22
#include "nist-error-rate-model.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    23
#include "wifi-phy.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    24
#include "ns3/log.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    25
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    26
NS_LOG_COMPONENT_DEFINE ("NistErrorRateModel");
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    27
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    28
namespace ns3 {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    29
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    30
NS_OBJECT_ENSURE_REGISTERED (NistErrorRateModel);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    31
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    32
TypeId
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    33
NistErrorRateModel::GetTypeId (void)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    34
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    35
  static TypeId tid = TypeId ("ns3::NistErrorRateModel")
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    36
    .SetParent<ErrorRateModel> ()
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    37
    .AddConstructor<NistErrorRateModel> ()
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    38
  ;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    39
  return tid;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    40
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    41
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    42
NistErrorRateModel::NistErrorRateModel ()
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    43
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    44
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    45
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    46
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    47
NistErrorRateModel::GetBpskBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    48
{
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    49
  double z = std::sqrt (snr);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    50
  double ber = 0.5 * erfc (z);
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    51
  NS_LOG_INFO ("bpsk snr=" << snr << " ber=" << ber);
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    52
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    53
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    54
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    55
NistErrorRateModel::GetQpskBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    56
{
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    57
  double z = std::sqrt (snr / 2.0);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    58
  double ber = 0.5 * erfc (z);
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    59
  NS_LOG_INFO ("qpsk snr=" << snr << " ber=" << ber);
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    60
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    61
}
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    62
double
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    63
NistErrorRateModel::Get16QamBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    64
{
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    65
  double z = std::sqrt (snr / (5.0 * 2.0));
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    66
  double ber = 0.75 * 0.5 * erfc (z);
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    67
  NS_LOG_INFO ("16-Qam" << " snr=" << snr << " ber=" << ber);
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    68
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    69
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    70
double
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    71
NistErrorRateModel::Get64QamBer (double snr) const
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    72
{
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    73
  double z = std::sqrt (snr / (21.0 * 2.0));
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    74
  double ber = 7.0 / 12.0 * 0.5 * erfc (z);
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    75
  NS_LOG_INFO ("64-Qam" << " snr=" << snr << " ber=" << ber);
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    76
  return ber;
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    77
}
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    78
double
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    79
NistErrorRateModel::GetFecBpskBer (double snr, double nbits,
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    80
                                   uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    81
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    82
  double ber = GetBpskBer (snr);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    83
  if (ber == 0.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    84
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    85
      return 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    86
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    87
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    88
  pe = std::min (pe, 1.0);
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
    89
  double pms = std::pow (1 - pe, nbits);
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    90
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    91
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    92
double
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    93
NistErrorRateModel::GetFecQpskBer (double snr, double nbits,
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    94
                                   uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    95
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    96
  double ber = GetQpskBer (snr);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
    97
  if (ber == 0.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    98
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    99
      return 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   100
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   101
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   102
  pe = std::min (pe, 1.0);
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   103
  double pms = std::pow (1 - pe, nbits);
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   104
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   105
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   106
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   107
NistErrorRateModel::CalculatePe (double p, uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   108
{
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   109
  double D = std::sqrt (4.0 * p * (1.0 - p));
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   110
  double pe = 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   111
  if (bValue == 1)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   112
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   113
      // code rate 1/2, use table 3.1.1
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   114
      pe = 0.5 * ( 36.0 * std::pow (D, 10.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   115
                   + 211.0 * std::pow (D, 12.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   116
                   + 1404.0 * std::pow (D, 14.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   117
                   + 11633.0 * std::pow (D, 16.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   118
                   + 77433.0 * std::pow (D, 18.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   119
                   + 502690.0 * std::pow (D, 20.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   120
                   + 3322763.0 * std::pow (D, 22.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   121
                   + 21292910.0 * std::pow (D, 24.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   122
                   + 134365911.0 * std::pow (D, 26.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   123
                   );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   124
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   125
  else if (bValue == 2)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   126
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   127
      // code rate 2/3, use table 3.1.2
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   128
      pe = 1.0 / (2.0 * bValue) *
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   129
        ( 3.0 * std::pow (D, 6.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   130
          + 70.0 * std::pow (D, 7.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   131
          + 285.0 * std::pow (D, 8.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   132
          + 1276.0 * std::pow (D, 9.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   133
          + 6160.0 * std::pow (D, 10.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   134
          + 27128.0 * std::pow (D, 11.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   135
          + 117019.0 * std::pow (D, 12.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   136
          + 498860.0 * std::pow (D, 13.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   137
          + 2103891.0 * std::pow (D, 14.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   138
          + 8784123.0 * std::pow (D, 15.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   139
        );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   140
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   141
  else if (bValue == 3)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   142
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   143
      // code rate 3/4, use table 3.1.2
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   144
      pe = 1.0 / (2.0 * bValue) *
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   145
        ( 42.0 * std::pow (D, 5.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   146
          + 201.0 * std::pow (D, 6.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   147
          + 1492.0 * std::pow (D, 7.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   148
          + 10469.0 * std::pow (D, 8.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   149
          + 62935.0 * std::pow (D, 9.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   150
          + 379644.0 * std::pow (D, 10.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   151
          + 2253373.0 * std::pow (D, 11.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   152
          + 13073811.0 * std::pow (D, 12.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   153
          + 75152755.0 * std::pow (D, 13.0)
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   154
          + 428005675.0 * std::pow (D, 14.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   155
        );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   156
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   157
  else
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   158
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   159
      NS_ASSERT (false);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   160
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   161
  return pe;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   162
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   163
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   164
double
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   165
NistErrorRateModel::GetFec16QamBer (double snr, uint32_t nbits,
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   166
                                    uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   167
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   168
  double ber = Get16QamBer (snr);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   169
  if (ber == 0.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   170
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   171
      return 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   172
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   173
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   174
  pe = std::min (pe, 1.0);
9070
0d6be2f9c438 fix error: call of overloaded pow() is ambiguous
Tom Henderson <tomh@tomh.org>
parents: 9063
diff changeset
   175
  double pms = std::pow (1 - pe, static_cast<double> (nbits));
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   176
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   177
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   178
double
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   179
NistErrorRateModel::GetFec64QamBer (double snr, uint32_t nbits,
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   180
                                    uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   181
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   182
  double ber = Get64QamBer (snr);
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   183
  if (ber == 0.0)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   184
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   185
      return 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   186
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   187
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   188
  pe = std::min (pe, 1.0);
9070
0d6be2f9c438 fix error: call of overloaded pow() is ambiguous
Tom Henderson <tomh@tomh.org>
parents: 9063
diff changeset
   189
  double pms = std::pow (1 - pe, static_cast<double> (nbits));
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   190
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   191
}
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   192
double
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   193
NistErrorRateModel::GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   194
{
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 6852
diff changeset
   195
  if (mode.GetModulationClass () == WIFI_MOD_CLASS_ERP_OFDM
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 9070
diff changeset
   196
      || mode.GetModulationClass () == WIFI_MOD_CLASS_OFDM|| mode.GetModulationClass()==WIFI_MOD_CLASS_HT)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   197
    {
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   198
      if (mode.GetConstellationSize () == 2)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   199
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   200
          if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   201
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   202
              return GetFecBpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   203
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   204
                                    1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   205
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   206
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   207
          else
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   208
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   209
              return GetFecBpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   210
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   211
                                    3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   212
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   213
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   214
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   215
      else if (mode.GetConstellationSize () == 4)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   216
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   217
          if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   218
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   219
              return GetFecQpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   220
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   221
                                    1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   222
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   223
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   224
          else
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   225
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   226
              return GetFecQpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   227
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   228
                                    3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   229
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   230
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   231
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   232
      else if (mode.GetConstellationSize () == 16)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   233
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   234
          if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   235
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   236
              return GetFec16QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   237
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   238
                                     1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   239
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   240
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   241
          else
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   242
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   243
              return GetFec16QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   244
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   245
                                     3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   246
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   247
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   248
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   249
      else if (mode.GetConstellationSize () == 64)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   250
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   251
          if (mode.GetCodeRate () == WIFI_CODE_RATE_2_3)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   252
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   253
              return GetFec64QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   254
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   255
                                     2 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   256
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   257
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   258
          else
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   259
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   260
              return GetFec64QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   261
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   262
                                     3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   263
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   264
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   265
        }
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   266
    }
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   267
  else if (mode.GetModulationClass () == WIFI_MOD_CLASS_DSSS)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   268
    {
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   269
      switch (mode.GetDataRate ())
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   270
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   271
        case 1000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   272
          return DsssErrorRateModel::GetDsssDbpskSuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   273
        case 2000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   274
          return DsssErrorRateModel::GetDsssDqpskSuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   275
        case 5500000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   276
          return DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   277
        case 11000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   278
          return DsssErrorRateModel::GetDsssDqpskCck11SuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   279
        }
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   280
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   281
  return 0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   282
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   283
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   284
} // namespace ns3