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