author | Tom Henderson <tomh@tomh.org> |
Mon, 28 Sep 2015 20:27:25 -0700 | |
changeset 11676 | 05ea1489e509 |
parent 11628 | 243b71de25a0 |
permissions | -rw-r--r-- |
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; -*- */ |
3903
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
2 |
/* |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
3 |
* Copyright (c) 2005,2006 INRIA |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
4 |
* |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
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:
7139
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
3903
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
7 |
* published by the Free Software Foundation; |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
8 |
* |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
12 |
* GNU General Public License for more details. |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
13 |
* |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
17 |
* |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
18 |
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
714f93024a37
add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3902
diff
changeset
|
19 |
*/ |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
20 |
|
4038
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
21 |
#ifndef YANS_ERROR_RATE_MODEL_H |
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
22 |
#define YANS_ERROR_RATE_MODEL_H |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
|
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
#include <stdint.h> |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
#include "wifi-mode.h" |
4038
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
26 |
#include "error-rate-model.h" |
6357
5d6d511ce4e9
Factor out DSSS error rate functions to separate class
Gary Pei <guangyu.pei@boeing.com>
parents:
4477
diff
changeset
|
27 |
#include "dsss-error-rate-model.h" |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
|
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
namespace ns3 { |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
|
4470 | 31 |
/** |
32 |
* \brief Model the error rate for different modulations. |
|
7139
79dd02ed46ec
doxygen wifi module grouping all wifi classes
Nicola Baldo <nbaldo@cttc.es>
parents:
6852
diff
changeset
|
33 |
* \ingroup wifi |
4470 | 34 |
* |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
35 |
* A packet of interest (e.g., a packet can potentially be received by the MAC) |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
36 |
* is divided into chunks. Each chunk is related to an start/end receiving event. |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
37 |
* For each chunk, it calculates the ratio (SINR) between received power of packet |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
38 |
* of interest and summation of noise and interfering power of all the other incoming |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
39 |
* packets. Then, it will calculate the success rate of the chunk based on |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
40 |
* BER of the modulation. The success reception rate of the packet is derived from |
4470 | 41 |
* the success rate of all chunks. |
42 |
* |
|
43 |
* The 802.11b modulations: |
|
44 |
* - 1 Mbps mode is based on DBPSK. BER is from equation 5.2-69 from John G. Proakis |
|
45 |
* Digitial Communications, 2001 edition |
|
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
46 |
* - 2 Mbps model is based on DQPSK. Equation 8 from "Tight bounds and accurate |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
47 |
* approximations for dqpsk transmission bit error rate", G. Ferrari and G.E. Corazza |
4470 | 48 |
* ELECTRONICS LETTERS, 40(20):1284-1285, September 2004 |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
49 |
* - 5.5 Mbps and 11 Mbps are based on equations (18) and (17) from "Properties and |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
50 |
* performance of the ieee 802.11b complementarycode-key signal sets", |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
51 |
* Michael B. Pursley and Thomas C. Royster. IEEE TRANSACTIONS ON COMMUNICATIONS, |
4470 | 52 |
* 57(2):440-449, February 2009. |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
53 |
* - More detailed description and validation can be found in |
4470 | 54 |
* http://www.nsnam.org/~pei/80211b.pdf |
55 |
*/ |
|
4038
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
56 |
class YansErrorRateModel : public ErrorRateModel |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
57 |
{ |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
58 |
public: |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
59 |
static TypeId GetTypeId (void); |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
60 |
|
4038
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
61 |
YansErrorRateModel (); |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
62 |
|
11628
243b71de25a0
add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11450
diff
changeset
|
63 |
virtual double GetChunkSuccessRate (WifiMode mode, WifiTxVector txVector, double snr, uint32_t nbits) const; |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
64 |
|
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
65 |
|
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
66 |
private: |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
67 |
/** |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
68 |
* Return the logarithm of the given value to base 2. |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
69 |
* |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
70 |
* \param val |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
71 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
72 |
* \return the logarithm of val to base 2. |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
73 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
74 |
double Log2 (double val) const; |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
75 |
/** |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
76 |
* Return BER of BPSK with the given parameters. |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
77 |
* |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
78 |
* \param snr snr value |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
79 |
* \param signalSpread |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
80 |
* \param phyRate |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
81 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
82 |
* \return BER of BPSK at the given SNR |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
83 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
84 |
double GetBpskBer (double snr, uint32_t signalSpread, uint32_t phyRate) const; |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
85 |
/** |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
86 |
* Return BER of QAM-m with the given parameters. |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
87 |
* |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
88 |
* \param snr snr value |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
89 |
* \param m |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
90 |
* \param signalSpread |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
91 |
* \param phyRate |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
92 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
93 |
* \return BER of BPSK at the given SNR |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
94 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
95 |
double GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const; |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
96 |
/** |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
97 |
* Return k! |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
98 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
99 |
* \param k |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
100 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
101 |
* \return k! |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
102 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
103 |
uint32_t Factorial (uint32_t k) const; |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
104 |
/** |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
105 |
* Return Binomial distribution for a given k, p, and n |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11446
diff
changeset
|
106 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
107 |
* \param k |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
108 |
* \param p |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
109 |
* \param n |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
110 |
* |
10424
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
111 |
* \return a Binomial distribution |
9d29c9a5ddcb
doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
112 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
113 |
double Binomial (uint32_t k, double p, uint32_t n) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
114 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
115 |
* \param ber |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
116 |
* \param d |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
117 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
118 |
* \return double |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
119 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
120 |
double CalculatePdOdd (double ber, unsigned int d) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
121 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
122 |
* \param ber |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
123 |
* \param d |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
124 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
125 |
* \return double |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
126 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
127 |
double CalculatePdEven (double ber, unsigned int d) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
128 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
129 |
* \param ber |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
130 |
* \param d |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
131 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
132 |
* \return double |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
133 |
*/ |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
134 |
double CalculatePd (double ber, unsigned int d) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
135 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
136 |
* \param snr |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
137 |
* \param nbits |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
138 |
* \param signalSpread |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
139 |
* \param phyRate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
140 |
* \param dFree |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
141 |
* \param adFree |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
142 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
143 |
* \return double |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
144 |
*/ |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
145 |
double GetFecBpskBer (double snr, double nbits, |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
146 |
uint32_t signalSpread, uint32_t phyRate, |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
147 |
uint32_t dFree, uint32_t adFree) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
148 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
149 |
* \param snr |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
150 |
* \param nbits |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
151 |
* \param signalSpread |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
152 |
* \param phyRate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
153 |
* \param m |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
154 |
* \param dfree |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
155 |
* \param adFree |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
156 |
* \param adFreePlusOne |
11446
d13686a57ef0
cleanup yans-wifi-channel, yans-error-rate-model and nist-error-rate-model
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10483
diff
changeset
|
157 |
* |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
158 |
* \return double |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10424
diff
changeset
|
159 |
*/ |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
160 |
double GetFecQamBer (double snr, uint32_t nbits, |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
161 |
uint32_t signalSpread, |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
162 |
uint32_t phyRate, |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
163 |
uint32_t m, uint32_t dfree, |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
164 |
uint32_t adFree, uint32_t adFreePlusOne) const; |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
165 |
}; |
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
166 |
|
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11446
diff
changeset
|
167 |
} //namespace ns3 |
3902
9e048e073cf0
split the error rate model from the yans phy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
168 |
|
4038
c6f634d0fc6f
virtualize ErrorRateModel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3905
diff
changeset
|
169 |
#endif /* YANS_ERROR_RATE_MODEL_H */ |