35 .AddConstructor<NistErrorRateModel> ()
47 double z = sqrt (snr);
48 double ber = 0.5 * erfc (z);
55 double z = sqrt (snr / 2.0);
56 double ber = 0.5 * erfc (z);
63 double z = sqrt (snr / (5.0 * 2.0));
64 double ber = 0.75 * 0.5 * erfc (z);
65 NS_LOG_INFO (
"16-Qam" <<
" snr=" << snr <<
" ber=" << ber);
71 double z = sqrt (snr / (21.0 * 2.0));
72 double ber = 7.0 / 12.0 * 0.5 * erfc (z);
73 NS_LOG_INFO (
"64-Qam" <<
" snr=" << snr <<
" ber=" << ber);
78 uint32_t bValue)
const
86 pe = std::min (pe, 1.0);
87 double pms = pow (1 - pe, nbits);
92 uint32_t bValue)
const
100 pe = std::min (pe, 1.0);
101 double pms = pow (1 - pe, nbits);
107 double D = sqrt (4.0 * p * (1.0 - p));
112 pe = 0.5 * ( 36.0 * pow (D, 10.0)
113 + 211.0 * pow (D, 12.0)
114 + 1404.0 * pow (D, 14.0)
115 + 11633.0 * pow (D, 16.0)
116 + 77433.0 * pow (D, 18.0)
117 + 502690.0 * pow (D, 20.0)
118 + 3322763.0 * pow (D, 22.0)
119 + 21292910.0 * pow (D, 24.0)
120 + 134365911.0 * pow (D, 26.0)
123 else if (bValue == 2)
126 pe = 1.0 / (2.0 * bValue) *
128 + 70.0 * pow (D, 7.0)
129 + 285.0 * pow (D, 8.0)
130 + 1276.0 * pow (D, 9.0)
131 + 6160.0 * pow (D, 10.0)
132 + 27128.0 * pow (D, 11.0)
133 + 117019.0 * pow (D, 12.0)
134 + 498860.0 * pow (D, 13.0)
135 + 2103891.0 * pow (D, 14.0)
136 + 8784123.0 * pow (D, 15.0)
139 else if (bValue == 3)
142 pe = 1.0 / (2.0 * bValue) *
143 ( 42.0 * pow (D, 5.0)
144 + 201.0 * pow (D, 6.0)
145 + 1492.0 * pow (D, 7.0)
146 + 10469.0 * pow (D, 8.0)
147 + 62935.0 * pow (D, 9.0)
148 + 379644.0 * pow (D, 10.0)
149 + 2253373.0 * pow (D, 11.0)
150 + 13073811.0 * pow (D, 12.0)
151 + 75152755.0 * pow (D, 13.0)
152 + 428005675.0 * pow (D, 14.0)
164 uint32_t bValue)
const
172 pe = std::min (pe, 1.0);
173 double pms = pow (1 - pe, nbits);
178 uint32_t bValue)
const
186 pe = std::min (pe, 1.0);
187 double pms = pow (1 - pe, nbits);