A Discrete-Event Network Simulator
API
error-rate-tables.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 University of Washington
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Authors: Rohan Patidar <rpatidar@uw.edu>
18  * Sébastien Deronne <sebastien.deronne@gmail.com>
19  * Sian Jin <sianjin@uw.edu>
20  */
21 
22 // This file contains table data for the TableBasedErrorRateModel. For more
23 // information on the source of this data, see wifi module documentation.
24 
25 #ifndef ERROR_RATE_TABLES_H
26 #define ERROR_RATE_TABLES_H
27 
28 namespace ns3
29 {
30 
32  32;
34  1458;
35 const uint16_t ERROR_TABLE_LDPC_FRAME_SIZE = 1458;
36 const uint8_t ERROR_TABLE_BCC_MAX_NUM_MCS = 10;
37 const uint8_t ERROR_TABLE_LDPC_MAX_NUM_MCS = 12;
38 
40 typedef std::vector<std::pair<double /* SNR (dB) */, double /* PER */>> SnrPerTable;
41 
44  // MCS-0
45  {
46  {-3.50000, 1.00000},
47  {-3.00000, 0.99500},
48  {-2.50000, 0.94080},
49  {-2.00000, 0.82590},
50  {-1.50000, 0.58950},
51  {-1.00000, 0.30830},
52  {-0.50000, 0.12540},
53  {0.00000, 0.03440},
54  {0.50000, 0.00850},
55  {1.00000, 0.00150},
56  {1.50000, 0.00024},
57  {2.00000, 0.00009},
58  {2.50000, 0.00000},
59  },
60  // MCS-1
61  {
62  {-0.50000, 1.00000},
63  {0.00000, 0.99210},
64  {0.50000, 0.96710},
65  {1.00000, 0.83490},
66  {1.50000, 0.58740},
67  {2.00000, 0.31690},
68  {2.50000, 0.11820},
69  {3.00000, 0.03640},
70  {3.50000, 0.00850},
71  {4.00000, 0.00160},
72  {4.50000, 0.00026},
73  {5.00000, 0.00003},
74  {5.50000, 0.00000},
75  },
76  // MCS-2
77  {
78  {2.00000, 1.00000},
79  {2.50000, 0.99400},
80  {3.00000, 0.95880},
81  {3.50000, 0.85120},
82  {4.00000, 0.59900},
83  {4.50000, 0.31250},
84  {5.00000, 0.11710},
85  {5.50000, 0.03390},
86  {6.00000, 0.00780},
87  {6.50000, 0.00160},
88  {7.00000, 0.00028},
89  {7.50000, 0.00008},
90  {8.00000, 0.00000},
91  },
92  // MCS-3
93  {
94  {4.00000, 1.00000},
95  {4.50000, 0.99900},
96  {5.00000, 0.99800},
97  {5.50000, 0.96900},
98  {6.00000, 0.88430},
99  {6.50000, 0.74090},
100  {7.00000, 0.46510},
101  {7.50000, 0.25710},
102  {8.00000, 0.10800},
103  {8.50000, 0.03810},
104  {9.00000, 0.01190},
105  {9.50000, 0.00320},
106  {10.00000, 0.00076},
107  {10.50000, 0.00017},
108  {11.00000, 0.00003},
109  {11.50000, 0.00000},
110  },
111  // MCS-4
112  {
113  {8.00000, 1.00000},
114  {8.50000, 0.99900},
115  {9.00000, 0.94790},
116  {9.50000, 0.79890},
117  {10.00000, 0.59230},
118  {10.50000, 0.33700},
119  {11.00000, 0.15720},
120  {11.50000, 0.05420},
121  {12.00000, 0.01580},
122  {12.50000, 0.00400},
123  {13.00000, 0.00110},
124  {13.50000, 0.00027},
125  {14.00000, 0.00009},
126  {14.50000, 0.00000},
127  },
128  // MCS-5
129  {
130  {11.50000, 1.00000},
131  {12.00000, 0.99800},
132  {12.50000, 0.96530},
133  {13.00000, 0.89700},
134  {13.50000, 0.73010},
135  {14.00000, 0.52570},
136  {14.50000, 0.30580},
137  {15.00000, 0.15750},
138  {15.50000, 0.06460},
139  {16.00000, 0.02410},
140  {16.50000, 0.00790},
141  {17.00000, 0.00230},
142  {17.50000, 0.00069},
143  {18.00000, 0.00018},
144  {18.50000, 0.00004},
145  {19.00000, 0.00002},
146  {19.50000, 0.00000},
147  },
148  // MCS-6
149  {
150  {13.00000, 1.00000},
151  {13.50000, 0.99010},
152  {14.00000, 0.96250},
153  {14.50000, 0.83980},
154  {15.00000, 0.68660},
155  {15.50000, 0.46340},
156  {16.00000, 0.25200},
157  {16.50000, 0.11450},
158  {17.00000, 0.04610},
159  {17.50000, 0.01580},
160  {18.00000, 0.00490},
161  {18.50000, 0.00160},
162  {19.00000, 0.00039},
163  {19.50000, 0.00011},
164  {20.00000, 0.00002},
165  {20.50000, 0.00000},
166  },
167  // MCS-7
168  {
169  {14.00000, 1.00000},
170  {14.50000, 0.99700},
171  {15.00000, 0.98330},
172  {15.50000, 0.94260},
173  {16.00000, 0.84830},
174  {16.50000, 0.63470},
175  {17.00000, 0.43770},
176  {17.50000, 0.22260},
177  {18.00000, 0.11110},
178  {18.50000, 0.04400},
179  {19.00000, 0.01730},
180  {19.50000, 0.00530},
181  {20.00000, 0.00190},
182  {20.50000, 0.00052},
183  {21.00000, 0.00016},
184  {21.50000, 0.00004},
185  {22.00000, 0.00000},
186  },
187  // MCS-8
188  {
189  {17.50000, 1.00000},
190  {18.00000, 0.99600},
191  {18.50000, 0.98040},
192  {19.00000, 0.92860},
193  {19.50000, 0.82250},
194  {20.00000, 0.67500},
195  {20.50000, 0.44140},
196  {21.00000, 0.26660},
197  {21.50000, 0.13380},
198  {22.00000, 0.05950},
199  {22.50000, 0.02450},
200  {23.00000, 0.00910},
201  {23.50000, 0.00320},
202  {24.00000, 0.00098},
203  {24.50000, 0.00033},
204  {25.00000, 0.00014},
205  {25.50000, 0.00004},
206  {26.00000, 0.00000},
207  },
208  // MCS-9
209  {
210  {19.00000, 1.00000},
211  {19.50000, 0.99800},
212  {20.00000, 0.98910},
213  {20.50000, 0.95970},
214  {21.00000, 0.87500},
215  {21.50000, 0.73170},
216  {22.00000, 0.51540},
217  {22.50000, 0.30380},
218  {23.00000, 0.15240},
219  {23.50000, 0.06340},
220  {24.00000, 0.02470},
221  {24.50000, 0.00850},
222  {25.00000, 0.00290},
223  {25.50000, 0.00100},
224  {26.00000, 0.00017},
225  {26.50000, 0.00014},
226  {27.00000, 0.00002},
227  {27.50000, 0.00000},
228  },
229 };
230 
233  // MCS-0
234  {
235  {-1.00000, 1.00000},
236  {-0.50000, 0.99400},
237  {0.00000, 0.81850},
238  {0.50000, 0.29080},
239  {1.00000, 0.06630},
240  {1.50000, 0.01120},
241  {2.00000, 0.00150},
242  {2.50000, 0.00015},
243  {3.00000, 0.00001},
244  {3.50000, 0.00000},
245  },
246  // MCS-1
247  {
248  {2.00000, 1.00000},
249  {2.50000, 0.99700},
250  {3.00000, 0.79440},
251  {3.50000, 0.30080},
252  {4.00000, 0.07280},
253  {4.50000, 0.01200},
254  {5.00000, 0.00150},
255  {5.50000, 0.00023},
256  {6.00000, 0.00000},
257  },
258  // MCS-2
259  {
260  {4.50000, 1.00000},
261  {5.00000, 0.99800},
262  {5.50000, 0.75780},
263  {6.00000, 0.30100},
264  {6.50000, 0.06760},
265  {7.00000, 0.01220},
266  {7.50000, 0.00230},
267  {8.00000, 0.00035},
268  {8.50000, 0.00004},
269  {9.00000, 0.00000},
270  },
271  // MCS-3
272  {
273  {7.50000, 1.00000},
274  {8.00000, 0.99400},
275  {8.50000, 0.84050},
276  {9.00000, 0.43410},
277  {9.50000, 0.14190},
278  {10.00000, 0.03740},
279  {10.50000, 0.00860},
280  {11.00000, 0.00190},
281  {11.50000, 0.00036},
282  {12.00000, 0.00005},
283  {12.50000, 0.00000},
284  },
285  // MCS-4
286  {
287  {11.00000, 1.00000},
288  {11.50000, 0.92690},
289  {12.00000, 0.51390},
290  {12.50000, 0.18260},
291  {13.00000, 0.04650},
292  {13.50000, 0.01100},
293  {14.00000, 0.00260},
294  {14.50000, 0.00041},
295  {15.00000, 0.00010},
296  {15.50000, 0.00000},
297  },
298  // MCS-5
299  {
300  {14.50000, 1.00000},
301  {15.00000, 0.99900},
302  {15.50000, 0.94790},
303  {16.00000, 0.66250},
304  {16.50000, 0.29780},
305  {17.00000, 0.10580},
306  {17.50000, 0.03340},
307  {18.00000, 0.00910},
308  {18.50000, 0.00230},
309  {19.00000, 0.00064},
310  {19.50000, 0.00017},
311  {20.00000, 0.00002},
312  {20.50000, 0.00000},
313  },
314  // MCS-6
315  {
316  {16.00000, 1.00000},
317  {16.50000, 0.99500},
318  {17.00000, 0.87960},
319  {17.50000, 0.51390},
320  {18.00000, 0.20910},
321  {18.50000, 0.06390},
322  {19.00000, 0.01860},
323  {19.50000, 0.00460},
324  {20.00000, 0.00130},
325  {20.50000, 0.00023},
326  {21.00000, 0.00002},
327  {21.50000, 0.00000},
328  },
329  // MCS-7
330  {
331  {17.50000, 1.00000},
332  {18.00000, 0.97850},
333  {18.50000, 0.73930},
334  {19.00000, 0.33750},
335  {19.50000, 0.12340},
336  {20.00000, 0.03550},
337  {20.50000, 0.01000},
338  {21.00000, 0.00270},
339  {21.50000, 0.00050},
340  {22.00000, 0.00009},
341  {22.50000, 0.00001},
342  {23.00000, 0.00000},
343  },
344  // MCS-8
345  {
346  {21.00000, 1.00000},
347  {21.50000, 0.99800},
348  {22.00000, 0.93990},
349  {22.50000, 0.67090},
350  {23.00000, 0.35250},
351  {23.50000, 0.13760},
352  {24.00000, 0.04750},
353  {24.50000, 0.01540},
354  {25.00000, 0.00520},
355  {25.50000, 0.00150},
356  {26.00000, 0.00036},
357  {26.50000, 0.00007},
358  {27.00000, 0.00000},
359  },
360  // MCS-9
361  {
362  {22.50000, 1.00000},
363  {23.00000, 0.99900},
364  {23.50000, 0.95060},
365  {24.00000, 0.68470},
366  {24.50000, 0.32610},
367  {25.00000, 0.12480},
368  {25.50000, 0.04090},
369  {26.00000, 0.01300},
370  {26.50000, 0.00360},
371  {27.00000, 0.00082},
372  {27.50000, 0.00010},
373  {28.00000, 0.00002},
374  {28.50000, 0.00001},
375  {29.00000, 0.00000},
376  },
377 };
378 
381  // MCS-0
382  {
383  {-1.50000, 1.00000},
384  {-1.25000, 0.97950},
385  {-1.00000, 0.60480},
386  {-0.75000, 0.17050},
387  {-0.50000, 0.03320},
388  {-0.25000, 0.00530},
389  {0.00000, 0.00085},
390  {0.25000, 0.00022},
391  {0.50000, 0.00004},
392  {0.75000, 0.00000},
393  },
394  // MCS-1
395  {
396  {1.50000, 1.00000},
397  {1.75000, 0.97470},
398  {2.00000, 0.62330},
399  {2.25000, 0.18590},
400  {2.50000, 0.03400},
401  {2.75000, 0.00550},
402  {3.00000, 0.00083},
403  {3.25000, 0.00015},
404  {3.50000, 0.00003},
405  {3.75000, 0.00000},
406  },
407  // MCS-2
408  {
409  {4.00000, 1.00000},
410  {4.25000, 0.98720},
411  {4.50000, 0.62560},
412  {4.75000, 0.15800},
413  {5.00000, 0.02090},
414  {5.25000, 0.00250},
415  {5.50000, 0.00034},
416  {5.75000, 0.00003},
417  {6.00000, 0.00000},
418  },
419  // MCS-3
420  {
421  {6.75000, 1.00000},
422  {7.00000, 0.99800},
423  {7.25000, 0.94340},
424  {7.50000, 0.57890},
425  {7.75000, 0.20640},
426  {8.00000, 0.04840},
427  {8.25000, 0.00930},
428  {8.50000, 0.00180},
429  {8.75000, 0.00040},
430  {9.00000, 0.00011},
431  {9.25000, 0.00002},
432  {9.50000, 0.00000},
433  },
434  // MCS-4
435  {{10.00000, 1.00000},
436  {10.25000, 0.99310},
437  {10.50000, 0.70890},
438  {10.75000, 0.24720},
439  {11.00000, 0.04700},
440  {11.25000, 0.00590},
441  {11.50000, 0.00091},
442  {11.75000, 0.00016},
443  {12.00000, 0.00003},
444  {12.25000, 0.00000}},
445  // MCS-5
446  {
447  {14.00000, 1.00000},
448  {14.25000, 0.99700},
449  {14.50000, 0.91830},
450  {14.75000, 0.53790},
451  {15.00000, 0.16610},
452  {15.25000, 0.03690},
453  {15.50000, 0.00650},
454  {15.75000, 0.00100},
455  {16.00000, 0.00031},
456  {16.25000, 0.00005},
457  {16.50000, 0.00000},
458  },
459  // MCS-6
460  {
461  {15.50000, 1.00000},
462  {15.75000, 0.98140},
463  {16.00000, 0.73930},
464  {16.25000, 0.33110},
465  {16.50000, 0.08150},
466  {16.75000, 0.01620},
467  {17.00000, 0.00270},
468  {17.25000, 0.00052},
469  {17.50000, 0.00005},
470  {17.75000, 0.00003},
471  {18.00000, 0.00000},
472  },
473  // MCS-7
474  {
475  {17.00000, 1.00000},
476  {17.25000, 0.97750},
477  {17.50000, 0.73980},
478  {17.75000, 0.33190},
479  {18.00000, 0.09640},
480  {18.25000, 0.02180},
481  {18.50000, 0.00470},
482  {18.75000, 0.00087},
483  {19.00000, 0.00018},
484  {19.25000, 0.00003},
485  {19.50000, 0.00000},
486  },
487  // MCS-8
488  {
489  {20.50000, 1.00000},
490  {20.75000, 0.99500},
491  {21.00000, 0.89700},
492  {21.25000, 0.56270},
493  {21.50000, 0.20920},
494  {21.75000, 0.05600},
495  {22.00000, 0.01170},
496  {22.25000, 0.00250},
497  {22.50000, 0.00038},
498  {22.75000, 0.00013},
499  {23.00000, 0.00004},
500  {23.25000, 0.00001},
501  {23.50000, 0.00000},
502  },
503  // MCS-9
504  {
505  {22.25000, 1.00000},
506  {22.50000, 0.99900},
507  {22.75000, 0.94080},
508  {23.00000, 0.63600},
509  {23.25000, 0.27190},
510  {23.50000, 0.08700},
511  {23.75000, 0.02210},
512  {24.00000, 0.00500},
513  {24.25000, 0.00110},
514  {24.50000, 0.00032},
515  {24.75000, 0.00004},
516  {25.00000, 0.00000},
517  },
518  // MCS-10
519  {
520  {25.75000, 1.00000},
521  {26.00000, 0.94970},
522  {26.25000, 0.68660},
523  {26.50000, 0.32940},
524  {26.75000, 0.11620},
525  {27.00000, 0.03440},
526  {27.25000, 0.00880},
527  {27.50000, 0.00210},
528  {27.75000, 0.00054},
529  {28.00000, 0.00009},
530  {28.25000, 0.00002},
531  {28.50000, 0.00000},
532  },
533  // MCS-11
534  {
535  {27.75000, 1.00000},
536  {28.00000, 0.94880},
537  {28.25000, 0.75260},
538  {28.50000, 0.40230},
539  {28.75000, 0.16210},
540  {29.00000, 0.05150},
541  {29.25000, 0.01310},
542  {29.50000, 0.00360},
543  {29.75000, 0.00100},
544  {30.00000, 0.00022},
545  {30.25000, 0.00006},
546  {30.50000, 0.00000},
547  },
548 };
549 
550 } // namespace ns3
551 
552 #endif /* ERROR_RATE_TABLES_H */
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::vector< std::pair< double, double > > SnrPerTable
Table of SNR (dB) and PER pairs.
static const SnrPerTable AwgnErrorTableBcc32[ERROR_TABLE_BCC_MAX_NUM_MCS]
AWGN error table for BCC with reference size of 32 bytes.
const uint8_t ERROR_TABLE_BCC_MAX_NUM_MCS
maximum number of MCSs for BCC
static const SnrPerTable AwgnErrorTableLdpc1458[ERROR_TABLE_LDPC_MAX_NUM_MCS]
AWGN error table for LDPC with reference size of 1458 bytes.
static const SnrPerTable AwgnErrorTableBcc1458[ERROR_TABLE_BCC_MAX_NUM_MCS]
AWGN error table for BCC with reference size of 1458 bytes.
const uint8_t ERROR_TABLE_LDPC_MAX_NUM_MCS
maximum number of MCSs for LDPC
const uint16_t ERROR_TABLE_BCC_LARGE_FRAME_SIZE
reference size (bytes) of large frames for BCC
const uint16_t ERROR_TABLE_BCC_SMALL_FRAME_SIZE
reference size (bytes) of small frames for BCC
const uint16_t ERROR_TABLE_LDPC_FRAME_SIZE
reference size (bytes) for LDPC