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