src/devices/wifi/nist-error-rate-model.cc
author Dean Armstrong <deanarm@gmail.com>
Wed, 16 Jun 2010 10:55:13 +0100
changeset 6360 d8975477ff6a
parent 6358 5205e0dde26a
child 6597 7fbc895f7361
permissions -rw-r--r--
Bug 871: Rework construction of Wi-Fi rates This patch attempts to lay some groundwork for enhancements to the Wi-Fi module by bringing the representation of transmit rates more in line with the standard. The key part of the patch is the introduction of a type that corresponds to the notion of Modulation Class described in IEEE 802.11-2007, Section 9.6.1, Table 9-2. It also adds coding rate information to the WifiModes and centralises their construction into a single WifiModeFactory method. The rates are also renamed with reference to their Modulation Class. WifiModes no longer have a WifiStandard, but the latter type still exists and is used to imply the set of WifiModes that a MAC/PHY pair will support.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
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
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as 
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
 */
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    20
#include "nist-error-rate-model.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    21
#include "wifi-phy.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    22
#include "ns3/log.h"
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    23
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    24
NS_LOG_COMPONENT_DEFINE ("NistErrorRateModel");
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
namespace ns3 {
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
NS_OBJECT_ENSURE_REGISTERED (NistErrorRateModel);
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
TypeId 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    31
NistErrorRateModel::GetTypeId (void)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    32
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    33
  static TypeId tid = TypeId ("ns3::NistErrorRateModel")
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    34
    .SetParent<ErrorRateModel> ()
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    35
    .AddConstructor<NistErrorRateModel> ()
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    36
  ;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    37
  return tid;
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
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    40
NistErrorRateModel::NistErrorRateModel ()
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
}
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
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    45
NistErrorRateModel::GetBpskBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    46
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    47
  double z = sqrt(snr);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    48
  double ber = 0.5 * erfc(z);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    49
  NS_LOG_INFO ("bpsk snr="<<snr<<" ber="<<ber);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    50
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    51
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    52
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    53
NistErrorRateModel::GetQpskBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    54
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    55
  double z = sqrt(snr/2.0);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    56
  double ber = 0.5 * erfc(z);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    57
  NS_LOG_INFO ("qpsk snr="<<snr<<" ber="<<ber);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    58
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    59
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    60
double 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    61
NistErrorRateModel::Get16QamBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    62
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    63
  double z = sqrt(snr/(5.0 * 2.0));
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    64
  double ber = 0.75 * 0.5 * erfc(z);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    65
  NS_LOG_INFO ("16-Qam" << " snr="<<snr<<" ber="<<ber);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    66
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    67
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    68
double 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    69
NistErrorRateModel::Get64QamBer (double snr) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    70
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    71
  double z = sqrt(snr/(21.0 * 2.0));
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    72
  double ber = 7.0 / 12.0 * 0.5 * erfc(z);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    73
  NS_LOG_INFO ("64-Qam" << " snr="<<snr<<" ber="<<ber);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    74
  return ber;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    75
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    76
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    77
NistErrorRateModel::GetFecBpskBer (double snr, double nbits, 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    78
                                   uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    79
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    80
  double ber = GetBpskBer (snr);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    81
  if (ber == 0.0) 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    82
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    83
      return 1.0;
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
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    86
  pe = std::min (pe, 1.0);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    87
  double pms = pow (1 - pe, nbits);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    88
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    89
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    90
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    91
NistErrorRateModel::GetFecQpskBer (double snr, double nbits, 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    92
                                   uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    93
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    94
  double ber = GetQpskBer (snr);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    95
  if (ber == 0.0) 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    96
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
    97
      return 1.0;
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
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   100
  pe = std::min (pe, 1.0);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   101
  double pms = pow (1 - pe, nbits);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   102
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   103
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   104
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   105
NistErrorRateModel::CalculatePe (double p, uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   106
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   107
  double D = sqrt (4.0 * p * (1.0 -p));
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   108
  double pe = 1.0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   109
  if (bValue == 1)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   110
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   111
      // code rate 1/2, use table 3.1.1
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   112
      pe = 0.5 * ( 36.0 * pow (D, 10.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   113
                   + 211.0 * pow (D, 12.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   114
                   + 1404.0 * pow (D, 14.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   115
                   + 11633.0 * pow (D, 16.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   116
                   + 77433.0 * pow (D, 18.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   117
                   + 502690.0 * pow (D, 20.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   118
                   + 3322763.0 * pow (D, 22.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   119
                   + 21292910.0 * pow (D, 24.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   120
                   + 134365911.0 * pow (D, 26.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   121
                   );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   122
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   123
  else if (bValue == 2)
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
      // code rate 2/3, use table 3.1.2
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   126
      pe = 1.0 / (2.0 * bValue) * 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   127
        ( 3.0 * pow (D, 6.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   128
          + 70.0 * pow (D, 7.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   129
          + 285.0 * pow (D, 8.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   130
          + 1276.0 * pow (D, 9.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   131
          + 6160.0 * pow (D, 10.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   132
          + 27128.0 * pow (D, 11.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   133
          + 117019.0 * pow (D, 12.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   134
          + 498860.0 * pow (D, 13.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   135
          + 2103891.0 * pow (D, 14.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   136
          + 8784123.0 * pow (D, 15.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   137
        );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   138
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   139
  else if (bValue == 3)
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
      // code rate 3/4, use table 3.1.2
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   142
      pe = 1.0 / (2.0 * bValue) * 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   143
        ( 42.0 * pow (D, 5.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   144
          + 201.0 * pow (D, 6.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   145
          + 1492.0 * pow (D, 7.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   146
          + 10469.0 * pow (D, 8.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   147
          + 62935.0 * pow (D, 9.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   148
          + 379644.0 * pow (D, 10.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   149
          + 2253373.0 * pow (D, 11.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   150
          + 13073811.0 * pow (D, 12.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   151
          + 75152755.0 * pow (D, 13.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   152
          + 428005675.0 * pow (D, 14.0)
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   153
        );
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   154
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   155
  else
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
      NS_ASSERT (false);
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
  return pe;
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
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   162
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   163
NistErrorRateModel::GetFec16QamBer (double snr, uint32_t nbits, 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   164
                                    uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   165
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   166
  double ber = Get16QamBer (snr);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   167
  if (ber == 0.0) 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   168
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   169
      return 1.0;
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
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   172
  pe = std::min (pe, 1.0);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   173
  double pms = pow (1 - pe, nbits);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   174
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   175
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   176
double
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   177
NistErrorRateModel::GetFec64QamBer (double snr, uint32_t nbits, 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   178
                                    uint32_t bValue) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   179
{
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   180
  double ber = Get64QamBer (snr);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   181
  if (ber == 0.0) 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   182
    {
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   183
      return 1.0;
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
  double pe = CalculatePe (ber, bValue);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   186
  pe = std::min (pe, 1.0);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   187
  double pms = pow (1 - pe, nbits);
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   188
  return pms;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   189
}
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   190
double 
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   191
NistErrorRateModel::GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   192
{
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   193
  if (mode.GetModulationClass () == WIFI_MOD_CLASS_OFDM)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   194
    {
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   195
      if (mode.GetConstellationSize () == 2)
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   196
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   197
          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
   198
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   199
              return GetFecBpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   200
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   201
                                    1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   202
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   203
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   204
          else
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
              return GetFecBpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   207
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   208
                                    3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   209
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   210
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   211
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   212
      else if (mode.GetConstellationSize () == 4)
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
          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
   215
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   216
              return GetFecQpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   217
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   218
                                    1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   219
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   220
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   221
          else
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
              return GetFecQpskBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   224
                                    nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   225
                                    3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   226
                                    );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   227
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   228
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   229
      else if (mode.GetConstellationSize () == 16)
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
          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
   232
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   233
              return GetFec16QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   234
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   235
                                     1 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   236
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   237
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   238
          else
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
              return GetFec16QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   241
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   242
                                     3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   243
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   244
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   245
        }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   246
      else if (mode.GetConstellationSize () == 64)
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
          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
   249
            {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   250
              return GetFec64QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   251
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   252
                                     2 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   253
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   254
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   255
          else
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
              return GetFec64QamBer (snr,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   258
                                     nbits,
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   259
                                     3 // b value
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   260
                                     );
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   261
            }
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   262
        }
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   263
    }
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   264
  else if (mode.GetModulationClass () == WIFI_MOD_CLASS_DSSS)
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   265
    {
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   266
      switch (mode.GetDataRate ())
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   267
        {
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   268
        case 1000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   269
          return DsssErrorRateModel::GetDsssDbpskSuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   270
        case 2000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   271
          return DsssErrorRateModel::GetDsssDqpskSuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   272
        case 5500000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   273
          return DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   274
        case 11000000:
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   275
          return DsssErrorRateModel::GetDsssDqpskCck11SuccessRate (snr, nbits);
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6358
diff changeset
   276
        }
6358
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   277
    }
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   278
  return 0;
5205e0dde26a Add NistErrorRateModel for wifi
Gary Pei <guangyu.pei@boeing.com>
parents:
diff changeset
   279
}
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
} // namespace ns3