From 6bfb33bc6cecd90564e20460e94161fc761d8583 Mon Sep 17 00:00:00 2001 From: Sebastien Deronne Date: Sat, 23 Jan 2021 11:03:31 +0100 Subject: [PATCH] wifi: Update BCC tables --- src/wifi/model/reference/error-rate-tables.h | 206 +-- src/wifi/test/wifi-error-rate-models-test.cc | 1451 ++++++++++++------ 2 files changed, 1045 insertions(+), 612 deletions(-) diff --git a/src/wifi/model/reference/error-rate-tables.h b/src/wifi/model/reference/error-rate-tables.h index 0a927e14b..5e009fe91 100644 --- a/src/wifi/model/reference/error-rate-tables.h +++ b/src/wifi/model/reference/error-rate-tables.h @@ -31,194 +31,152 @@ const uint16_t ERROR_TABLE_LDPC_FRAME_SIZE = 1458; const uint8_t ERROR_TABLE_BCC_MAX_NUM_MCS = 9; const uint8_t ERROR_TABLE_LDPC_MAX_NUM_MCS = 11; -static const std::vector > AwgnErrorTableBcc32 [ERROR_TABLE_BCC_MAX_NUM_MCS + 1] = { +typedef std::vector > SnrPerTable; + +static const SnrPerTable AwgnErrorTableBcc32 [ERROR_TABLE_BCC_MAX_NUM_MCS + 1] = { // MCS-0 { - {-3.20000, 1.00000}, {-3.00000, 0.99751}, {-2.80000, 0.98526}, {-2.60000, 0.97805}, {-2.40000, 0.95933}, - {-2.20000, 0.90724}, {-2.00000, 0.87939}, {-1.80000, 0.73985}, {-1.60000, 0.63150}, {-1.40000, 0.57615}, - {-1.20000, 0.42980}, {-1.00000, 0.34749}, {-0.80000, 0.22253}, {-0.60000, 0.14667}, {-0.40000, 0.10149}, - {-0.20000, 0.06517}, {0.00000, 0.03774}, {0.20000, 0.02305}, {0.40000, 0.01258}, {0.60000, 0.00725}, - {0.80000, 0.00388}, {1.00000, 0.00220}, {1.20000, 0.00120}, {1.40000, 0.00042}, {1.60000, 0.00030}, - {1.80000, 0.00020}, {2.00000, 0.00007}, {2.20000, 0.00003}, {2.40000, 0.00000}, + {-3.50000, 1.00000}, {-3.00000, 0.99500}, {-2.50000, 0.94080}, {-2.00000, 0.82590}, + {-1.50000, 0.58950}, {-1.00000, 0.30830}, {-0.50000, 0.12540}, {0.00000, 0.03440}, + {0.50000, 0.00850}, {1.00000, 0.00150}, {1.50000, 0.00024}, {2.00000, 0.00009}, + {2.50000, 0.00000}, }, // MCS-1 { - {-0.20000, 1.00000}, {0.00000, 0.99504}, {0.20000, 0.99504}, {0.40000, 0.98044}, {0.60000, 0.94799}, - {0.80000, 0.90519}, {1.00000, 0.84958}, {1.20000, 0.75518}, {1.40000, 0.66281}, {1.60000, 0.53113}, - {1.80000, 0.41128}, {2.00000, 0.29792}, {2.20000, 0.21889}, {2.40000, 0.15850}, {2.60000, 0.08589}, - {2.80000, 0.05338}, {3.00000, 0.03401}, {3.20000, 0.02251}, {3.40000, 0.01171}, {3.60000, 0.00653}, - {3.80000, 0.00340}, {4.00000, 0.00185}, {4.20000, 0.00080}, {4.40000, 0.00042}, {4.60000, 0.00015}, - {4.80000, 0.00005}, {5.00000, 0.00005}, {5.20000, 0.00000}, + {-0.50000, 1.00000}, {0.00000, 0.99210}, {0.50000, 0.96710}, {1.00000, 0.83490}, + {1.50000, 0.58740}, {2.00000, 0.31690}, {2.50000, 0.11820}, {3.00000, 0.03640}, + {3.50000, 0.00850}, {4.00000, 0.00160}, {4.50000, 0.00026}, {5.00000, 0.00003}, + {5.50000, 0.00000}, }, // MCS-2 { - {2.80000, 1.00000}, {3.00000, 0.96394}, {3.20000, 0.94353}, {3.40000, 0.91553}, {3.60000, 0.81837}, - {3.80000, 0.71993}, {4.00000, 0.56879}, {4.20000, 0.50695}, {4.40000, 0.35644}, {4.60000, 0.28440}, - {4.80000, 0.18496}, {5.00000, 0.11938}, {5.20000, 0.08119}, {5.40000, 0.04399}, {5.60000, 0.02675}, - {5.80000, 0.01540}, {6.00000, 0.00822}, {6.20000, 0.00470}, {6.40000, 0.00205}, {6.60000, 0.00140}, - {6.80000, 0.00060}, {7.00000, 0.00038}, {7.20000, 0.00015}, {7.40000, 0.00011}, {7.60000, 0.00007}, - {7.80000, 0.00000}, + {2.00000, 1.00000}, {2.50000, 0.99400}, {3.00000, 0.95880}, {3.50000, 0.85120}, + {4.00000, 0.59900}, {4.50000, 0.31250}, {5.00000, 0.11710}, {5.50000, 0.03390}, + {6.00000, 0.00780}, {6.50000, 0.00160}, {7.00000, 0.00028}, {7.50000, 0.00008}, + {8.00000, 0.00000}, }, // MCS-3 { - {5.60000, 1.00000}, {5.80000, 0.99257}, {6.00000, 0.96860}, {6.20000, 0.95094}, {6.40000, 0.94353}, - {6.60000, 0.85138}, {6.80000, 0.78474}, {7.00000, 0.69019}, {7.20000, 0.56006}, {7.40000, 0.48547}, - {7.60000, 0.36257}, {7.80000, 0.25722}, {8.00000, 0.18471}, {8.20000, 0.12046}, {8.40000, 0.08022}, - {8.60000, 0.05137}, {8.80000, 0.03217}, {9.00000, 0.01752}, {9.20000, 0.01129}, {9.40000, 0.00613}, - {9.60000, 0.00350}, {9.80000, 0.00200}, {10.00000, 0.00083}, {10.20000, 0.00055}, {10.40000, 0.00028}, - {10.60000, 0.00005}, {10.80000, 0.00001}, {11.00000, 0.00000}, + {4.00000, 1.00000}, {4.50000, 0.99900}, {5.00000, 0.99800}, {5.50000, 0.96900}, + {6.00000, 0.88430}, {6.50000, 0.74090}, {7.00000, 0.46510}, {7.50000, 0.25710}, + {8.00000, 0.10800}, {8.50000, 0.03810}, {9.00000, 0.01190}, {9.50000, 0.00320}, + {10.00000, 0.00076}, {10.50000, 0.00017}, {11.00000, 0.00003}, {11.50000, 0.00000}, }, // MCS-4 { - {8.40000, 1.00000}, {8.60000, 0.99930}, {8.80000, 0.98937}, {9.00000, 0.97814}, {9.20000, 0.96570}, - {9.40000, 0.91493}, {9.60000, 0.86559}, {9.80000, 0.83368}, {10.00000, 0.74157}, {10.20000, 0.64457}, - {10.40000, 0.56077}, {10.60000, 0.42837}, {10.80000, 0.31723}, {11.00000, 0.21704}, {11.20000, 0.15537}, - {11.40000, 0.10741}, {11.60000, 0.06370}, {11.80000, 0.04047}, {12.00000, 0.02421}, {12.20000, 0.01397}, - {12.40000, 0.00803}, {12.60000, 0.00444}, {12.80000, 0.00257}, {13.00000, 0.00139}, {13.20000, 0.00082}, - {13.40000, 0.00063}, {13.60000, 0.00034}, {13.80000, 0.00011}, {14.00000, 0.00005}, {14.20000, 0.00000}, + {8.00000, 1.00000}, {8.50000, 0.99900}, {9.00000, 0.94790}, {9.50000, 0.79890}, + {10.00000, 0.59230}, {10.50000, 0.33700}, {11.00000, 0.15720}, {11.50000, 0.05420}, + {12.00000, 0.01580}, {12.50000, 0.00400}, {13.00000, 0.00110}, {13.50000, 0.00027}, + {14.00000, 0.00009}, {14.50000, 0.00000}, }, // MCS-5 { - {12.00000, 1.00000}, {12.20000, 0.99257}, {12.40000, 0.99012}, {12.60000, 0.95933}, {12.80000, 0.95933}, - {13.00000, 0.92396}, {13.20000, 0.86237}, {13.40000, 0.78937}, {13.60000, 0.72383}, {13.80000, 0.68547}, - {14.00000, 0.59673}, {14.20000, 0.46901}, {14.40000, 0.37095}, {14.60000, 0.29616}, {14.80000, 0.21594}, - {15.00000, 0.16150}, {15.20000, 0.12067}, {15.40000, 0.08217}, {15.60000, 0.05459}, {15.80000, 0.03878}, - {16.00000, 0.02268}, {16.20000, 0.01605}, {16.40000, 0.00933}, {16.60000, 0.00590}, {16.80000, 0.00355}, - {17.00000, 0.00248}, {17.20000, 0.00143}, {17.40000, 0.00077}, {17.60000, 0.00065}, {17.80000, 0.00035}, - {18.00000, 0.00025}, {18.20000, 0.00013}, {18.40000, 0.00009}, {18.60000, 0.00003}, {18.80000, 0.00000}, + {11.50000, 1.00000}, {12.00000, 0.99800}, {12.50000, 0.96530}, {13.00000, 0.89700}, + {13.50000, 0.73010}, {14.00000, 0.52570}, {14.50000, 0.30580}, {15.00000, 0.15750}, + {15.50000, 0.06460}, {16.00000, 0.02410}, {16.50000, 0.00790}, {17.00000, 0.00230}, + {17.50000, 0.00069}, {18.00000, 0.00018}, {18.50000, 0.00004}, {19.00000, 0.00002}, + {19.50000, 0.00000}, }, // MCS-6 { - {13.40000, 1.00000}, {13.60000, 0.99257}, {13.80000, 0.99012}, {14.00000, 0.95704}, {14.20000, 0.94163}, - {14.40000, 0.93473}, {14.60000, 0.87174}, {14.80000, 0.80847}, {15.00000, 0.72777}, {15.20000, 0.62461}, - {15.40000, 0.57948}, {15.60000, 0.47232}, {15.80000, 0.34659}, {16.00000, 0.30402}, {16.20000, 0.20864}, - {16.40000, 0.16778}, {16.60000, 0.10941}, {16.80000, 0.07152}, {17.00000, 0.04993}, {17.20000, 0.03387}, - {17.40000, 0.02261}, {17.60000, 0.01324}, {17.80000, 0.00912}, {18.00000, 0.00515}, {18.20000, 0.00382}, - {18.40000, 0.00190}, {18.60000, 0.00088}, {18.80000, 0.00072}, {19.00000, 0.00045}, {19.20000, 0.00022}, - {19.40000, 0.00015}, {19.60000, 0.00007}, {19.80000, 0.00003}, {20.00000, 0.00000}, + {13.00000, 1.00000}, {13.50000, 0.99010}, {14.00000, 0.96250}, {14.50000, 0.83980}, + {15.00000, 0.68660}, {15.50000, 0.46340}, {16.00000, 0.25200}, {16.50000, 0.11450}, + {17.00000, 0.04610}, {17.50000, 0.01580}, {18.00000, 0.00490}, {18.50000, 0.00160}, + {19.00000, 0.00039}, {19.50000, 0.00011}, {20.00000, 0.00002}, {20.50000, 0.00000}, }, // MCS-7 { - {14.80000, 1.00000}, {15.00000, 0.98768}, {15.20000, 0.97504}, {15.40000, 0.95476}, {15.60000, 0.94353}, - {15.80000, 0.91553}, {16.00000, 0.84067}, {16.20000, 0.76820}, {16.40000, 0.67282}, {16.60000, 0.57781}, - {16.80000, 0.52214}, {17.00000, 0.43921}, {17.20000, 0.32788}, {17.40000, 0.24347}, {17.60000, 0.19123}, - {17.80000, 0.12722}, {18.00000, 0.08600}, {18.20000, 0.05338}, {18.40000, 0.03655}, {18.60000, 0.02303}, - {18.80000, 0.01483}, {19.00000, 0.00890}, {19.20000, 0.00543}, {19.40000, 0.00335}, {19.60000, 0.00165}, - {19.80000, 0.00110}, {20.00000, 0.00065}, {20.20000, 0.00040}, {20.40000, 0.00032}, {20.60000, 0.00028}, - {20.80000, 0.00010}, {21.00000, 0.00007}, {21.20000, 0.00003}, {21.40000, 0.00000}, + {14.00000, 1.00000}, {14.50000, 0.99700}, {15.00000, 0.98330}, {15.50000, 0.94260}, + {16.00000, 0.84830}, {16.50000, 0.63470}, {17.00000, 0.43770}, {17.50000, 0.22260}, + {18.00000, 0.11110}, {18.50000, 0.04400}, {19.00000, 0.01730}, {19.50000, 0.00530}, + {20.00000, 0.00190}, {20.50000, 0.00052}, {21.00000, 0.00016}, {21.50000, 0.00004}, + {22.00000, 0.00000}, }, // MCS-8 { - {19.80000, 1.00000}, {20.00000, 0.99012}, {20.20000, 0.96163}, {20.40000, 0.89709}, {20.60000, 0.85501}, - {20.80000, 0.78782}, {21.00000, 0.70475}, {21.20000, 0.59320}, {21.40000, 0.50062}, {21.60000, 0.37582}, - {21.80000, 0.29792}, {22.00000, 0.22707}, {22.20000, 0.17262}, {22.40000, 0.14036}, {22.60000, 0.09376}, - {22.80000, 0.06519}, {23.00000, 0.05036}, {23.20000, 0.03603}, {23.40000, 0.02608}, {23.60000, 0.02247}, - {23.80000, 0.01413}, {24.00000, 0.01113}, {24.20000, 0.00775}, {24.40000, 0.00580}, {24.60000, 0.00428}, - {24.80000, 0.00305}, {25.00000, 0.00290}, {25.20000, 0.00180}, {25.40000, 0.00097}, {25.60000, 0.00090}, - {25.80000, 0.00065}, {26.00000, 0.00032}, {26.20000, 0.00028}, {26.40000, 0.00020}, {26.60000, 0.00018}, - {26.80000, 0.00015}, {27.00000, 0.00000}, + {17.50000, 1.00000}, {18.00000, 0.99600}, {18.50000, 0.98040}, {19.00000, 0.92860}, + {19.50000, 0.82250}, {20.00000, 0.67500}, {20.50000, 0.44140}, {21.00000, 0.26660}, + {21.50000, 0.13380}, {22.00000, 0.05950}, {22.50000, 0.02450}, {23.00000, 0.00910}, + {23.50000, 0.00320}, {24.00000, 0.00098}, {24.50000, 0.00033}, {25.00000, 0.00014}, + {25.50000, 0.00004}, {26.00000, 0.00000}, }, // MCS-9 { - {21.60000, 1.00000}, {21.80000, 0.99751}, {22.00000, 0.98768}, {22.20000, 0.96163}, {22.40000, 0.93911}, - {22.60000, 0.86609}, {22.80000, 0.80040}, {23.00000, 0.66172}, {23.20000, 0.57368}, {23.40000, 0.47625}, - {23.60000, 0.34629}, {23.80000, 0.25428}, {24.00000, 0.18871}, {24.20000, 0.13644}, {24.40000, 0.10722}, - {24.60000, 0.08231}, {24.80000, 0.05274}, {25.00000, 0.03870}, {25.20000, 0.02931}, {25.40000, 0.02209}, - {25.60000, 0.01624}, {25.80000, 0.01290}, {26.00000, 0.00932}, {26.20000, 0.00653}, {26.40000, 0.00532}, - {26.60000, 0.00380}, {26.80000, 0.00313}, {27.00000, 0.00225}, {27.20000, 0.00153}, {27.40000, 0.00097}, - {27.60000, 0.00075}, {27.80000, 0.00057}, {28.00000, 0.00047}, {28.20000, 0.00032}, {28.40000, 0.00022}, - {28.60000, 0.00013}, {28.80000, 0.00007}, {29.00000, 0.00005}, {29.20000, 0.00000}, + {19.00000, 1.00000}, {19.50000, 0.99800}, {20.00000, 0.98910}, {20.50000, 0.95970}, + {21.00000, 0.87500}, {21.50000, 0.73170}, {22.00000, 0.51540}, {22.50000, 0.30380}, + {23.00000, 0.15240}, {23.50000, 0.06340}, {24.00000, 0.02470}, {24.50000, 0.00850}, + {25.00000, 0.00290}, {25.50000, 0.00100}, {26.00000, 0.00017}, {26.50000, 0.00014}, + {27.00000, 0.00002}, {27.50000, 0.00000}, }, }; -static const std::vector > AwgnErrorTableBcc1458 [ERROR_TABLE_BCC_MAX_NUM_MCS + 1] = { +static const SnrPerTable AwgnErrorTableBcc1458 [ERROR_TABLE_BCC_MAX_NUM_MCS + 1] = { // MCS-0 { - {-0.80000, 1.00000}, {-0.60000, 0.99751}, {-0.40000, 0.98284}, {-0.20000, 0.93473}, {0.00000, 0.77713}, - {0.20000, 0.61598}, {0.40000, 0.39391}, {0.60000, 0.23602}, {0.80000, 0.12170}, {1.00000, 0.06643}, - {1.20000, 0.03463}, {1.40000, 0.01655}, {1.60000, 0.00670}, {1.80000, 0.00343}, {2.00000, 0.00155}, - {2.20000, 0.00063}, {2.40000, 0.00032}, {2.60000, 0.00018}, {2.80000, 0.00005}, {3.00000, 0.00000}, + {-1.00000, 1.00000}, {-0.50000, 0.99400}, {0.00000, 0.81850}, {0.50000, 0.29080}, + {1.00000, 0.06630}, {1.50000, 0.01120}, {2.00000, 0.00150}, {2.50000, 0.00015}, + {3.00000, 0.00001}, {3.50000, 0.00000}, }, // MCS-1 { - {2.40000, 1.00000}, {2.60000, 0.99504}, {2.80000, 0.93911}, {3.00000, 0.80847}, {3.20000, 0.60850}, - {3.40000, 0.41255}, {3.60000, 0.23700}, {3.80000, 0.12812}, {4.00000, 0.07167}, {4.20000, 0.03566}, - {4.40000, 0.01664}, {4.60000, 0.00777}, {4.80000, 0.00443}, {5.00000, 0.00160}, {5.20000, 0.00083}, - {5.40000, 0.00050}, {5.60000, 0.00022}, {5.80000, 0.00010}, {6.00000, 0.00000}, + {2.00000, 1.00000}, {2.50000, 0.99700}, {3.00000, 0.79440}, {3.50000, 0.30080}, + {4.00000, 0.07280}, {4.50000, 0.01200}, {5.00000, 0.00150}, {5.50000, 0.00023}, + {6.00000, 0.00000}, }, // MCS-2 { - {4.80000, 1.00000}, {5.00000, 0.99751}, {5.20000, 0.94575}, {5.40000, 0.86985}, {5.60000, 0.67282}, - {5.80000, 0.48313}, {6.00000, 0.27809}, {6.20000, 0.19251}, {6.40000, 0.09300}, {6.60000, 0.05184}, - {6.80000, 0.02559}, {7.00000, 0.01407}, {7.20000, 0.00670}, {7.40000, 0.00360}, {7.60000, 0.00175}, - {7.80000, 0.00088}, {8.00000, 0.00055}, {8.20000, 0.00025}, {8.40000, 0.00007}, {8.60000, 0.00005}, - {8.80000, 0.00000}, + {4.50000, 1.00000}, {5.00000, 0.99800}, {5.50000, 0.75780}, {6.00000, 0.30100}, + {6.50000, 0.06760}, {7.00000, 0.01220}, {7.50000, 0.00230}, {8.00000, 0.00035}, + {8.50000, 0.00004}, {9.00000, 0.00000}, }, // MCS-3 { - {8.00000, 1.00000}, {8.20000, 0.99751}, {8.40000, 0.97567}, {8.60000, 0.89709}, {8.80000, 0.76820}, - {9.00000, 0.60392}, {9.20000, 0.38857}, {9.40000, 0.26841}, {9.60000, 0.15543}, {9.80000, 0.08695}, - {10.00000, 0.04018}, {10.20000, 0.02370}, {10.40000, 0.01189}, {10.60000, 0.00643}, {10.80000, 0.00313}, - {11.00000, 0.00173}, {11.20000, 0.00090}, {11.40000, 0.00032}, {11.60000, 0.00018}, {11.80000, 0.00005}, - {12.00000, 0.00003}, {12.20000, 0.00000}, + {7.50000, 1.00000}, {8.00000, 0.99400}, {8.50000, 0.84050}, {9.00000, 0.43410}, + {9.50000, 0.14190}, {10.00000, 0.03740}, {10.50000, 0.00860}, {11.00000, 0.00190}, + {11.50000, 0.00036}, {12.00000, 0.00005}, {12.50000, 0.00000}, }, // MCS-4 { - {11.20000, 1.00000}, {11.40000, 0.99012}, {11.60000, 0.94131}, {11.80000, 0.80200}, {12.00000, 0.66391}, - {12.20000, 0.43730}, {12.40000, 0.28911}, {12.60000, 0.17115}, {12.80000, 0.10219}, {13.00000, 0.05927}, - {13.20000, 0.03395}, {13.40000, 0.01924}, {13.60000, 0.01083}, {13.80000, 0.00588}, {14.00000, 0.00265}, - {14.20000, 0.00145}, {14.40000, 0.00068}, {14.60000, 0.00035}, {14.80000, 0.00018}, {15.00000, 0.00005}, - {15.20000, 0.00000}, + {11.00000, 1.00000}, {11.50000, 0.92690}, {12.00000, 0.51390}, {12.50000, 0.18260}, + {13.00000, 0.04650}, {13.50000, 0.01100}, {14.00000, 0.00260}, {14.50000, 0.00041}, + {15.00000, 0.00010}, {15.50000, 0.00000}, }, // MCS-5 { - {15.00000, 1.00000}, {15.20000, 0.99257}, {15.40000, 0.96394}, {15.60000, 0.92184}, {15.80000, 0.81010}, - {16.00000, 0.65846}, {16.20000, 0.50631}, {16.40000, 0.37938}, {16.60000, 0.23672}, {16.80000, 0.15382}, - {17.00000, 0.10256}, {17.20000, 0.06430}, {17.40000, 0.03643}, {17.60000, 0.02224}, {17.80000, 0.01320}, - {18.00000, 0.00790}, {18.20000, 0.00453}, {18.40000, 0.00273}, {18.60000, 0.00115}, {18.80000, 0.00070}, - {19.00000, 0.00052}, {19.20000, 0.00025}, {19.40000, 0.00015}, {19.60000, 0.00010}, {19.80000, 0.00003}, - {20.00000, 0.00000}, + {14.50000, 1.00000}, {15.00000, 0.99900}, {15.50000, 0.94790}, {16.00000, 0.66250}, + {16.50000, 0.29780}, {17.00000, 0.10580}, {17.50000, 0.03340}, {18.00000, 0.00910}, + {18.50000, 0.00230}, {19.00000, 0.00064}, {19.50000, 0.00017}, {20.00000, 0.00002}, + {20.50000, 0.00000}, }, // MCS-6 { - {16.00000, 1.00000}, {16.20000, 0.99751}, {16.40000, 0.99751}, {16.60000, 0.99012}, {16.80000, 0.93911}, - {17.00000, 0.89509}, {17.20000, 0.76967}, {17.40000, 0.60483}, {17.60000, 0.45881}, {17.80000, 0.31109}, - {18.00000, 0.20470}, {18.20000, 0.12686}, {18.40000, 0.08283}, {18.60000, 0.05102}, {18.80000, 0.03264}, - {19.00000, 0.01910}, {19.20000, 0.01107}, {19.40000, 0.00677}, {19.60000, 0.00445}, {19.80000, 0.00228}, - {20.00000, 0.00110}, {20.20000, 0.00050}, {20.40000, 0.00038}, {20.60000, 0.00015}, {20.80000, 0.00010}, - {21.00000, 0.00007}, {21.20000, 0.00003}, {21.40000, 0.00000}, + {16.00000, 1.00000}, {16.50000, 0.99500}, {17.00000, 0.87960}, {17.50000, 0.51390}, + {18.00000, 0.20910}, {18.50000, 0.06390}, {19.00000, 0.01860}, {19.50000, 0.00460}, + {20.00000, 0.00130}, {20.50000, 0.00023}, {21.00000, 0.00002}, {21.50000, 0.00000}, }, // MCS-7 { - {17.80000, 1.00000}, {18.00000, 0.98284}, {18.20000, 0.91972}, {18.40000, 0.78937}, {18.60000, 0.65203}, - {18.80000, 0.48902}, {19.00000, 0.32869}, {19.20000, 0.21817}, {19.40000, 0.14835}, {19.60000, 0.08870}, - {19.80000, 0.05506}, {20.00000, 0.03440}, {20.20000, 0.02175}, {20.40000, 0.01328}, {20.60000, 0.00673}, - {20.80000, 0.00415}, {21.00000, 0.00285}, {21.20000, 0.00150}, {21.40000, 0.00090}, {21.60000, 0.00040}, - {21.80000, 0.00032}, {22.00000, 0.00010}, {22.20000, 0.00007}, {22.40000, 0.00005}, {22.60000, 0.00000}, + {17.50000, 1.00000}, {18.00000, 0.97850}, {18.50000, 0.73930}, {19.00000, 0.33750}, + {19.50000, 0.12340}, {20.00000, 0.03550}, {20.50000, 0.01000}, {21.00000, 0.00270}, + {21.50000, 0.00050}, {22.00000, 0.00009}, {22.50000, 0.00001}, {23.00000, 0.00000}, }, // MCS-8 { - {20.80000, 1.00000}, {21.00000, 0.99257}, {21.20000, 0.98768}, {21.40000, 0.96394}, {21.60000, 0.90930}, - {21.80000, 0.80522}, {22.00000, 0.67966}, {22.20000, 0.59584}, {22.40000, 0.44605}, {22.60000, 0.35330}, - {22.80000, 0.25955}, {23.00000, 0.19391}, {23.20000, 0.15323}, {23.40000, 0.09721}, {23.60000, 0.07040}, - {23.80000, 0.04871}, {24.00000, 0.03459}, {24.20000, 0.02438}, {24.40000, 0.01740}, {24.60000, 0.01167}, - {24.80000, 0.00822}, {25.00000, 0.00570}, {25.20000, 0.00420}, {25.40000, 0.00293}, {25.60000, 0.00185}, - {25.80000, 0.00143}, {26.00000, 0.00100}, {26.20000, 0.00085}, {26.40000, 0.00068}, {26.60000, 0.00047}, - {26.80000, 0.00040}, {27.00000, 0.00020}, {27.20000, 0.00000}, + {21.00000, 1.00000}, {21.50000, 0.99800}, {22.00000, 0.93990}, {22.50000, 0.67090}, + {23.00000, 0.35250}, {23.50000, 0.13760}, {24.00000, 0.04750}, {24.50000, 0.01540}, + {25.00000, 0.00520}, {25.50000, 0.00150}, {26.00000, 0.00036}, {26.50000, 0.00007}, + {27.00000, 0.00000}, }, // MCS-9 { - {22.80000, 1.00000}, {23.00000, 0.99751}, {23.20000, 0.98526}, {23.40000, 0.93473}, {23.60000, 0.83195}, - {23.80000, 0.71352}, {24.00000, 0.58200}, {24.20000, 0.43682}, {24.40000, 0.30356}, {24.60000, 0.21375}, - {24.80000, 0.15621}, {25.00000, 0.10932}, {25.20000, 0.06856}, {25.40000, 0.04815}, {25.60000, 0.03408}, - {25.80000, 0.02385}, {26.00000, 0.01641}, {26.20000, 0.01043}, {26.40000, 0.00685}, {26.60000, 0.00480}, - {26.80000, 0.00360}, {27.00000, 0.00240}, {27.20000, 0.00168}, {27.40000, 0.00108}, {27.60000, 0.00072}, - {27.80000, 0.00055}, {28.00000, 0.00035}, {28.20000, 0.00020}, {28.40000, 0.00015}, {28.60000, 0.00008}, - {28.80000, 0.00000}, + {22.50000, 1.00000}, {23.00000, 0.99900}, {23.50000, 0.95060}, {24.00000, 0.68470}, + {24.50000, 0.32610}, {25.00000, 0.12480}, {25.50000, 0.04090}, {26.00000, 0.01300}, + {26.50000, 0.00360}, {27.00000, 0.00082}, {27.50000, 0.00010}, {28.00000, 0.00002}, + {28.50000, 0.00001}, {29.00000, 0.00000}, }, }; -static const std::vector > AwgnErrorTableLdpc1458 [ERROR_TABLE_LDPC_MAX_NUM_MCS + 1] = { +static const SnrPerTable AwgnErrorTableLdpc1458 [ERROR_TABLE_LDPC_MAX_NUM_MCS + 1] = { // MCS-0 { {-1.50000, 1.00000}, {-1.25000, 0.97950}, {-1.00000, 0.60480}, {-0.75000, 0.17050}, diff --git a/src/wifi/test/wifi-error-rate-models-test.cc b/src/wifi/test/wifi-error-rate-models-test.cc index d4b8c9729..10a45843f 100644 --- a/src/wifi/test/wifi-error-rate-models-test.cc +++ b/src/wifi/test/wifi-error-rate-models-test.cc @@ -462,508 +462,983 @@ std::map, std::map ERROR_TABLE_BCC_MAX_NUM_MCS) { Ptr yans = CreateObject (); - expectedValue = 1 - yans->GetChunkSuccessRate (m_mode, txVector, std::pow (10.0, snr / 10.0), m_size * 8); + expectedValue = 1 - yans->GetChunkSuccessRate (m_mode, txVector, std::pow (10, snr / 10), m_size * 8); } else { @@ -1038,7 +1513,7 @@ TableBasedErrorRateTestCase::DoRun (void) } else { - NS_FATAL_ERROR ("SNR value not found!"); + NS_FATAL_ERROR ("SNR value " << snr << " dB not found!"); } } else @@ -1046,7 +1521,7 @@ TableBasedErrorRateTestCase::DoRun (void) NS_FATAL_ERROR ("No expected value found for the combination MCS " << +m_mode.GetMcsValue () << " and size " << m_size << " bytes"); } } - double per = 1 - table->GetChunkSuccessRate (m_mode, txVector, std::pow (10.0, snr / 10.0), m_size * 8); + double per = 1 - table->GetChunkSuccessRate (m_mode, txVector, std::pow (10, snr / 10), m_size * 8); NS_LOG_INFO (m_testName << ": snr=" << snr << "dB per=" << per << " expectedPER=" << expectedValue); NS_TEST_ASSERT_MSG_EQ_TOL (per, expectedValue, 1e-5, "Not equal within tolerance"); }