A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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
28namespace ns3
29{
30
32 32;
34 1458;
35const uint16_t ERROR_TABLE_LDPC_FRAME_SIZE = 1458;
36const uint8_t ERROR_TABLE_BCC_MAX_NUM_MCS = 10;
37const uint8_t ERROR_TABLE_LDPC_MAX_NUM_MCS = 12;
38
40typedef 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