26#include "IEEE802_11.h"
27#include "IEEE802_11_Phy.h"
28#include "ErrorModel.h"
35 double dRxSensitivity;
36 PHY_MODULATION nModulation;
52 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,52,26,1,800,6.5},
53 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,104,52,1,800,13.0},
54 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,104,78,1,800,19.5},
55 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,208,104,1,800,26.0},
56 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,208,156,1,800,39.0},
57 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,312,208,1,800,52.0},
58 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,312,234,1,800,58.5},
59 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,312,260,1,800,65.0},
60 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,416,312,1,800,78.0},
61 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
62 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,52,26,1,400,7.2},
63 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,104,52,1,400,14.4},
64 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,104,78,1,400,21.7},
65 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,208,104,1,400,28.9},
66 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,208,156,1,400,43.3},
67 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,312,208,1,400,57.8},
68 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,312,234,1,400,65.0},
69 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,312,260,1,400,72.2},
70 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,416,312,1,400,86.7},
71 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
77 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,104,52,1,800,13.0},
78 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,208,104,1,800,26.0},
79 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,208,156,1,800,39.0},
80 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,416,208,1,800,52.0},
81 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,416,312,1,800,78.0},
82 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,624,416,1,800,104.0},
83 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,624,468,1,800,117.0},
84 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,624,520,1,800,130.0},
85 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,832,624,1,800,156.0},
86 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
87 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,104,52,1,400,14.4},
88 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,208,104,1,400,28.9},
89 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,208,156,1,400,43.3},
90 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,416,208,1,400,57.8},
91 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,416,312,1,400,86.7},
92 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,624,416,1,400,115.6},
93 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,624,468,1,400,130.0},
94 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,624,520,1,400,144.4},
95 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,832,624,1,400,173.3},
96 {20,8,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
102 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,156,78,1,800,19.5},
103 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,312,156,1,800,39.0},
104 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,312,234,1,800,58.5},
105 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,624,312,1,800,78.0},
106 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,624,468,1,800,117.0},
107 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,936,624,1,800,156.0},
108 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,936,702,1,800,175.5},
109 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,936,780,1,800,195.0},
110 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,1248,936,1,800,234.0},
111 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,52,4,1248,1040,1,800,260.0},
112 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,156,78,1,400,21.7},
113 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,312,156,1,400,43.3},
114 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,312,234,1,400,65.0},
115 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,624,312,1,400,86.7},
116 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,624,468,1,400,130.0},
117 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,936,624,1,400,173.3},
118 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,936,702,1,400,195.0},
119 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,936,780,1,400,216.7},
120 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,1248,936,1,400,260.0},
121 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,52,4,1248,1040,1,400,288.9},
127 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,208,104,1,800,26.0},
128 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,416,208,1,800,52.0},
129 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,416,312,1,800,78.0},
130 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,832,416,1,800,104.0},
131 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,832,624,1,800,156.0},
132 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1248,832,1,800,208.0},
133 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1248,936,1,800,234.0},
134 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1248,1040,1,800,260.0},
135 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,1664,1248,1,800,312.0},
136 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
137 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,208,104,1,400,28.9},
138 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,416,208,1,400,57.8},
139 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,416,312,1,400,86.7},
140 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,832,416,1,400,115.6},
141 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,832,624,1,400,173.3},
142 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1248,832,1,400,231.1},
143 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1248,936,1,400,260.0},
144 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1248,1040,1,400,288.9},
145 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,1664,1248,1,400,346.7},
146 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
152 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,260,130,1,800,32.5},
153 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,520,260,1,800,65.0},
154 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,520,390,1,800,97.5},
155 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1040,520,1,800,130.0},
156 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1040,780,1,800,195.0},
157 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1560,1040,1,800,260.0},
158 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1560,1170,1,800,292.5},
159 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1560,1300,1,800,325.0},
160 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2080,1560,1,800,390.0},
161 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
162 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,260,130,1,400,36.1},
163 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,520,260,1,400,72.2},
164 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,520,390,1,400,108.3},
165 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1040,520,1,400,144.4},
166 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1040,780,1,400,216.7},
167 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1560,1040,1,400,288.9},
168 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1560,1170,1,400,325.0},
169 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1560,1300,1,400,361.1},
170 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2080,1560,1,400,433.3},
171 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
177 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,312,156,1,800,39.0},
178 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,624,312,1,800,78.0},
179 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,624,468,1,800,117.0},
180 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1248,624,1,800,156.0},
181 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1248,936,1,800,234.0},
182 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1872,1248,1,800,312.0},
183 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1872,1404,1,800,351.0},
184 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1872,1560,1,800,390.0},
185 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2496,1872,1,800,468.0},
186 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,52,4,2496,2080,1,800,520.0},
187 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,312,156,1,400,43.3},
188 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,624,312,1,400,86.7},
189 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,624,468,1,400,130.0},
190 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1248,624,1,400,173.3},
191 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1248,936,1,400,260.0},
192 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,1872,1248,1,400,346.7},
193 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,1872,1404,1,400,390.0},
194 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,1872,1560,1,400,433.3},
195 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2496,1872,1,400,520.0},
196 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,52,4,2496,2080,1,400,577.8},
202 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,364,182,1,800,45.5},
203 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,728,364,1,800,91.0},
204 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,728,546,1,800,136.5},
205 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1456,728,1,800,182.0},
206 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1456,1092,1,800,273.0},
207 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,2184,1456,1,800,364.0},
208 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,2184,1638,1,800,409.5},
209 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,2184,1820,1,800,455.0},
210 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2912,2184,2,800,546.0},
211 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
212 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,364,182,1,400,50.6},
213 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,728,364,1,400,101.1},
214 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,728,546,1,400,151.7},
215 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1456,728,1,400,202.2},
216 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1456,1092,1,400,303.3},
217 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,2184,1456,1,400,404.4},
218 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,2184,1638,1,400,455.0},
219 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,2184,1820,1,400,505.6},
220 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,2912,2184,2,400,606.7},
221 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
227 {1,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,416,208,1,800,52.0},
228 {2,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,832,416,1,800,104.0},
229 {3,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,832,624,1,800,156.0},
230 {4,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1664,832,1,800,208.0},
231 {5,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1664,1248,1,800,312.0},
232 {6,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,2496,1664,1,800,416.0},
233 {7,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,2496,1872,1,800,468.0},
234 {8,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,2496,2080,1,800,520.0},
235 {9,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,3328,2496,2,800,624.0},
236 {10,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
237 {11,0,-82,Modulation_BPSK,1.0/2.0,1,52,4,416,208,1,400,57.8},
238 {12,1,-79,Modulation_QPSK,1.0/2.0,1,52,4,832,416,1,400,115.6},
239 {13,2,-77,Modulation_QPSK,3.0/4.0,2,52,4,832,624,1,400,173.3},
240 {14,3,-74,Modulation_16_QAM,1.0/2.0,4,52,4,1664,832,1,400,231.1},
241 {15,4,-70,Modulation_16_QAM,3.0/4.0,4,52,4,1664,1248,1,400,346.7},
242 {16,5,-66,Modulation_64_QAM,2.0/3.0,6,52,4,2496,1664,1,400,462.2},
243 {17,6,-65,Modulation_64_QAM,3.0/4.0,6,52,4,2496,1872,1,400,520.0},
244 {18,7,-64,Modulation_64_QAM,5.0/6.0,6,52,4,2496,2080,1,400,577.8},
245 {19,8,-59,Modulation_256_QAM,3.0/4.0,8,52,4,3328,2496,2,400,693.3},
246 {20,9,-57,Modulation_256_QAM,3.0/4.0,8,0,0,0,0,0,0,-1},
253 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,108,54,1,800,13.5},
254 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,216,108,1,800,27.0},
255 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,216,162,1,800,40.5},
256 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,432,216,1,800,54.0},
257 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,432,324,1,800,81.0},
258 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,648,432,1,800,108.0},
259 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,648,486,1,800,121.5},
260 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,648,540,1,800,135.0},
261 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,864,648,1,800,162.0},
262 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,864,720,1,800,180.0},
263 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,108,54,1,400,15.0},
264 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,216,108,1,400,30.0},
265 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,216,162,1,400,45.0},
266 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,432,216,1,400,60.0},
267 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,432,324,1,400,90.0},
268 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,648,432,1,400,120.0},
269 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,648,486,1,400,135.0},
270 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,648,540,1,400,150.0},
271 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,864,648,1,400,180.0},
272 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,864,720,1,400,200.0},
279 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,216,108,1,800,27.0},
280 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,432,216,1,800,54.0},
281 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,432,324,1,800,81.0},
282 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,864,432,1,800,108.0},
283 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,864,648,1,800,162.0},
284 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,1296,864,1,800,216.0},
285 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,1296,972,1,800,243.0},
286 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,1296,1080,1,800,270.0},
287 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,1728,1296,1,800,324.0},
288 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,1728,1440,1,800,360.0},
289 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,216,108,1,400,30.0},
290 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,432,216,1,400,60.0},
291 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,432,324,1,400,90.0},
292 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,864,432,1,400,120.0},
293 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,864,648,1,400,180.0},
294 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,1296,864,1,400,240.0},
295 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,1296,972,1,400,270.0},
296 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,1296,1080,1,400,300.0},
297 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,1728,1296,1,400,360.0},
298 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,1728,1440,1,400,400.0},
305 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,324,162,1,800,40.5},
306 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,648,324,1,800,81.0},
307 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,648,486,1,800,121.5},
308 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,1296,648,1,800,162.0},
309 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,1296,972,1,800,243.0},
310 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,1944,1296,1,800,324.0},
311 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,1944,1458,1,800,364.5},
312 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,1944,1620,1,800,405.0},
313 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,2592,1944,1,800,486.0},
314 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,2592,2160,1,800,540.0},
315 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,324,162,1,400,45.0},
316 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,648,324,1,400,90.0},
317 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,648,486,1,400,135.0},
318 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,1296,648,1,400,180.0},
319 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,1296,972,1,400,270.0},
320 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,1944,1296,1,400,360.0},
321 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,1944,1458,1,400,405.5},
322 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,1944,1620,1,400,450.0},
323 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,2592,1944,1,400,540.0},
324 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,2592,2160,1,400,600.0},
332 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,432,216,1,800,54.0},
333 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,864,432,1,800,108.0},
334 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,864,648,1,800,162.0},
335 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,1728,864,1,800,216.0},
336 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,1728,1296,1,800,324.0},
337 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,2592,1728,1,800,432.0},
338 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,2592,1944,1,800,486.5},
339 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,2592,2160,1,800,540.0},
340 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,3456,2592,2,800,648.0},
341 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,3456,2880,2,800,720.0},
342 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,432,216,1,400,60.0},
343 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,864,432,1,400,120.0},
344 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,864,648,1,400,180.0},
345 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,1728,864,1,400,240.0},
346 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,1728,1296,1,400,360.0},
347 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,2592,1728,1,400,480.0},
348 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,2592,1944,1,400,540.0},
349 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,2592,2160,1,400,600.0},
350 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,3456,2592,2,400,720.0},
351 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,3456,2880,2,400,800.0}
359 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,540,270,1,800,67.5},
360 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1080,540,1,800,135.0},
361 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1080,810,1,800,202.5},
362 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,2160,1080,1,800,270.0},
363 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,2160,1620,1,800,405.0},
364 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,3240,2160,1,800,540.0},
365 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,3240,2430,2,800,607.5},
366 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,3240,2700,2,800,675.0},
367 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,4320,3240,2,800,810.0},
368 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,4320,3600,2,800,900.0},
369 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,540,270,1,400,75.0},
370 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1080,540,1,400,150.0},
371 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1080,810,1,400,225.5},
372 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,2160,1080,1,400,300.0},
373 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,2160,1620,1,400,450.0},
374 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,3240,2160,1,400,600.0},
375 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,3240,2430,2,400,675.0},
376 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,3240,2700,2,400,750.0},
377 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,4320,3240,2,400,900.0},
378 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,4320,3600,2,400,1000.0},
385 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,648,324,1,800,81.0},
386 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1296,648,1,800,162.0},
387 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1296,972,1,800,243.0},
388 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,2592,1296,1,800,324.0},
389 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,2592,1944,1,800,486.0},
390 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,3888,2592,1,800,648.0},
391 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,3888,2916,2,800,729.0},
392 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,3888,3240,2,800,810.0},
393 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,5184,3888,2,800,972.0},
394 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,5184,4320,2,800,1080.0},
395 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,648,324,1,400,90.0},
396 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1296,648,1,400,180.0},
397 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1296,972,1,400,270.0},
398 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,2592,1296,1,400,360.0},
399 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,2592,1944,1,400,540.0},
400 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,3888,2592,1,400,720.0},
401 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,3888,2916,2,400,810.0},
402 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,3888,3240,2,400,900.0},
403 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,5184,3888,2,400,1080.0},
404 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,5184,4320,2,400,1200.0}
411 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,756,378,1,800,94.5},
412 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1512,756,1,800,189.0},
413 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1512,1134,1,800,283.5},
414 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,3024,1512,1,800,378.0},
415 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,3024,2268,1,800,567.0},
416 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,4536,3024,1,800,756.0},
417 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,4536,3402,2,800,850.5},
418 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,4536,3780,2,800,945.0},
419 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,6048,4536,3,800,1134.0},
420 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,6048,5040,3,800,1260.0},
421 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,756,378,1,400,105.0},
422 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1512,756,1,400,210.0},
423 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1512,1134,1,400,315.0},
424 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,3024,1512,1,400,420.0},
425 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,3024,2268,1,400,630.0},
426 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,4536,3024,1,400,840.0},
427 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,4536,3402,2,400,945.0},
428 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,4536,3780,2,400,1050.0},
429 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,6048,4536,3,400,1260.0},
430 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,6048,5040,3,400,1400.0},
437 {1,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,864,432,1,800,108.0},
438 {2,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1728,864,1,800,216.0},
439 {3,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1728,1296,1,800,324.0},
440 {4,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,3456,1728,1,800,432.0},
441 {5,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,3456,2592,1,800,648.0},
442 {6,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,5184,3456,1,800,864.0},
443 {7,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,5184,3888,2,800,972.0},
444 {8,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,5184,4320,2,800,1080.0},
445 {9,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,6912,5184,3,800,1296.0},
446 {10,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,6912,5760,3,800,1440.0},
447 {11,0,-79,Modulation_BPSK,1.0/2.0,1,108,6,864,432,1,400,120.0},
448 {12,1,-76,Modulation_QPSK,1.0/2.0,2,108,6,1728,864,1,400,240.0},
449 {13,2,-74,Modulation_QPSK,3.0/4.0,2,108,6,1728,1296,1,400,360.0},
450 {14,3,-71,Modulation_16_QAM,1.0/2.0,4,108,6,3456,1728,1,400,480.0},
451 {15,4,-67,Modulation_16_QAM,3.0/4.0,4,108,6,3456,2592,1,400,720.0},
452 {16,5,-63,Modulation_64_QAM,2.0/3.0,6,108,6,5184,3456,1,400,960.0},
453 {17,6,-62,Modulation_64_QAM,3.0/4.0,6,108,6,5184,3888,2,400,1080.0},
454 {18,7,-61,Modulation_64_QAM,5.0/6.0,6,108,6,5184,4320,2,400,1200.0},
455 {19,8,-56,Modulation_256_QAM,3.0/4.0,8,108,6,6912,5184,3,400,1440.0},
456 {20,9,-54,Modulation_256_QAM,5.0/6.0,8,108,6,6912,5760,3,400,1600.0},
463 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,234,117,1,800,29.3},
464 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,468,234,1,800,58.5},
465 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,468,351,1,800,87.8},
466 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,936,468,1,800,117.0},
467 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,936,702,1,800,175.5},
468 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,234,8,1404,936,1,800,234.0},
469 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,1404,1053,1,800,263.3},
470 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,1404,1170,1,800,292.5},
471 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,1872,1404,1,800,351.0},
472 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,1872,1560,1,800,390.0},
473 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,234,117,1,400,32.5},
474 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,468,234,1,400,65.0},
475 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,468,351,1,400,97.5},
476 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,936,468,1,400,130.0},
477 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,936,702,1,400,195.0},
478 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,234,8,1404,936,1,400,260.0},
479 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,1404,1053,1,400,292.5},
480 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,1404,1170,1,400,325.0},
481 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,1872,1404,1,400,390.0},
482 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,1872,1560,1,400,433.3},
489 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,468,234,1,800,58.5},
490 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,936,468,1,800,117.0},
491 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,936,702,1,800,175.5},
492 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,1872,936,1,800,234.0},
493 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,1872,1404,1,800,351.0},
494 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,234,8,2808,1872,1,800,468.0},
495 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,2808,2106,1,800,526.5},
496 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,2808,2340,2,800,585.0},
497 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,3744,2808,2,800,702.0},
498 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,3744,3120,2,800,780.0},
499 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,468,234,1,400,65.0},
500 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,936,468,1,400,130.0},
501 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,936,702,1,400,195.0},
502 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,1872,936,1,400,260.0},
503 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,1872,1404,1,400,390.0},
504 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,234,8,2808,1872,1,400,520.0},
505 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,2808,2106,1,400,585.0},
506 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,2808,2340,2,400,650.0},
507 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,3744,2808,2,400,780.0},
508 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,3744,3120,2,400,866.7},
515 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,702,351,1,800,87.8},
516 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,1404,702,1,800,175.5},
517 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,1404,1053,1,800,263.3},
518 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,2808,1404,1,800,351.0},
519 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,2808,2106,1,800,526.5},
520 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,4212,2808,2,800,702.0},
521 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,0,0,0,0,0,0,-1},
522 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,4212,3510,2,800,877.5},
523 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,5616,4212,2,800,1053.0},
524 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,5616,4680,3,800,1170.0},
525 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,702,351,1,400,97.5},
526 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,1404,702,1,400,195.0},
527 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,1404,1053,1,400,292.5},
528 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,2808,1404,1,400,390.0},
529 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,2808,2106,1,400,585.0},
530 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,4212,2808,2,400,780.0},
531 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,0,0,0,0,0,0,-1},
532 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,4212,3510,2,400,975.0},
533 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,5616,4212,2,400,1170.0},
534 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,5616,4680,3,400,1300.0},
541 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,936,468,1,800,117.0},
542 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,1872,936,1,800,234.0},
543 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,1872,1404,1,800,351.0},
544 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,3744,1872,1,800,468.0},
545 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,3744,2808,2,800,702.0},
546 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,5616,3744,2,800,936.0},
547 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,5616,4212,2,800,1053.0},
548 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,5616,4680,3,800,1170.0},
549 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,7488,5616,3,800,1404.0},
550 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,7488,6240,3,800,1560.0},
551 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,936,468,1,400,130.0},
552 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,1872,936,1,400,260.0},
553 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,1872,1404,1,400,390.0},
554 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,3744,1872,1,400,520.0},
555 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,3744,2808,2,400,780.0},
556 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,5616,3744,2,400,1040.0},
557 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,5616,4212,2,400,1170.0},
558 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,5616,4680,3,400,1300.0},
559 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,7488,5616,3,400,1560.0},
560 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,7488,6240,3,400,1733.3},
567 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1170,585,1,800,146.3},
568 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,2340,1170,1,800,292.5},
569 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,2340,1755,1,800,438.8},
570 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,4680,2340,2,800,585.0},
571 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,4680,3510,2,800,877.5},
572 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,7020,4680,3,800,1170.0},
573 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,7020,5265,3,800,1316.3},
574 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,7020,5850,3,800,1462.5},
575 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,9360,7020,4,800,1755.0},
576 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,9360,7800,4,800,1950.0},
577 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1170,585,1,400,162.5},
578 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,2340,1170,1,400,325.0},
579 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,2340,1755,1,400,487.5},
580 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,4680,2340,2,400,650.0},
581 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,4680,3510,2,400,975.0},
582 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,7020,4680,3,400,1300.0},
583 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,7020,5265,3,400,1462.5},
584 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,7020,5850,3,400,1625.0},
585 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,9360,7020,4,400,1950.0},
586 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,9360,7800,4,400,2166.7},
593 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1404,702,1,800,175.5},
594 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,2808,1404,1,800,351.0},
595 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,2808,2106,1,800,526.5},
596 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,5616,2808,2,800,702.0},
597 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,5616,4212,2,800,1053.0},
598 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,8424,5616,3,800,1404.0},
599 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,8424,6318,3,800,1579.5},
600 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,8424,7020,4,800,1755.0},
601 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,11232,8424,4,800,2106.0},
602 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,0,0,0,0,0,0,-1},
603 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1404,702,1,400,195.0},
604 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,2808,1404,1,400,390.0},
605 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,2808,2106,1,400,585.0},
606 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,5616,2808,2,400,780.0},
607 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,5616,4212,2,400,1170.0},
608 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,8424,5616,3,400,1560.0},
609 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,8424,6318,3,400,1755.0},
610 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,8424,7020,4,400,1950.0},
611 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,11232,8424,4,400,2340.0},
612 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,0,0,0,0,0,0,-1},
619 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1638,819,1,800,204.8},
620 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,3276,1638,1,800,409.5},
621 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,3276,2457,3,800,614.3},
622 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,6552,3276,2,800,819.0},
623 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,6552,4914,3,800,1228.5},
624 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,9828,6552,4,800,1638.0},
625 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,0,0,0,0,0,0,-1},
626 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,9828,8190,6,800,2047.5},
627 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,13104,9828,6,800,2457.0},
628 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,13104,10920,6,800,2730},
629 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1638,819,1,400,227.5},
630 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,3276,1638,1,400,455.0},
631 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,3276,2457,3,400,682.5},
632 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,6552,3276,2,400,910.0},
633 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,6552,4914,3,400,1365.0},
634 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,9828,6552,4,400,1820.0},
635 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,0,0,0,0,0,0,-1},
636 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,9828,8190,6,400,2275.0},
637 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,13104,9828,6,400,2730.0},
638 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,13104,10920,6,400,3033.3},
645 {1,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1872,936,1,800,234.0},
646 {2,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,3744,1872,1,800,468.0},
647 {3,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,3744,2808,2,800,702.0},
648 {4,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,7488,3744,2,800,936.0},
649 {5,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,7488,5616,3,800,1404.0},
650 {6,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,11232,7488,4,800,1872.0},
651 {7,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,11232,8424,4,800,2106.0},
652 {8,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,11232,9360,6,800,2340.0},
653 {9,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,14976,11232,6,800,2808.0},
654 {10,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,14976,12480,6,800,3120.0},
655 {11,0,-76,Modulation_BPSK,1.0/2.0,1,234,8,1872,936,1,400,260.0},
656 {12,1,-73,Modulation_QPSK,1.0/2.0,2,234,8,3744,1872,1,400,520.0},
657 {13,2,-71,Modulation_QPSK,3.0/4.0,2,264,8,3744,2808,2,400,780.0},
658 {14,3,-68,Modulation_16_QAM,1.0/2.0,4,234,8,7488,3744,2,400,1040.0},
659 {15,4,-64,Modulation_16_QAM,3.0/4.0,4,234,8,7488,5616,3,400,1560.0},
660 {16,5,-60,Modulation_64_QAM,2.0/3.0,6,264,8,11232,7488,4,400,2080.0},
661 {17,6,-59,Modulation_64_QAM,3.0/4.0,6,234,8,11232,8424,4,400,2340.0},
662 {18,7,-58,Modulation_64_QAM,5.0/6.0,6,234,8,11232,9360,6,400,2600.0},
663 {19,8,-53,Modulation_256_QAM,3.0/4.0,8,234,8,14976,11232,6,400,3120.0},
664 {20,9,-51,Modulation_256_QAM,5.0/6.0,8,234,8,14976,12480,6,400,3466.7},
671 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,468,234,1,800,58.5},
672 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,936,468,1,800,117.0},
673 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,936,702,1,800,175.5},
674 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,1872,936,1,800,234.0},
675 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,1872,1404,1,800,351.0},
676 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,2808,1872,1,800,468.0},
677 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,2808,2106,1,800,526.5},
678 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,2808,2340,2,800,585.0},
679 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,3744,2808,2,800,702.0},
680 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,3744,3120,2,800,780.0},
681 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,468,234,1,400,65.0},
682 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,936,468,1,400,130.0},
683 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,936,702,1,400,195.0},
684 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,1872,936,1,400,260.0},
685 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,1872,1404,1,400,390.0},
686 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,2808,1872,1,400,520.0},
687 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,2808,2106,1,400,585.0},
688 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,2808,2340,2,400,650.0},
689 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,3744,2808,2,400,780.0},
690 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,3744,3120,2,400,866.7},
697 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,936,468,1,800,117.0},
698 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,1872,936,1,800,234.0},
699 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,1872,1404,1,800,351.0},
700 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,3744,1872,1,800,468.0},
701 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,3744,2808,2,800,702.0},
702 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,5616,3744,2,800,936.0},
703 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,5616,4212,2,800,1053.0},
704 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,5616,4680,3,800,1170.0},
705 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,7488,5616,3,800,1404.0},
706 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,7488,6240,3,800,1560.0},
707 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,936,468,1,400,130.0},
708 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,1872,936,1,400,260.0},
709 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,1872,1404,1,400,390.0},
710 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,3744,1872,1,400,520.0},
711 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,3744,2808,2,400,780.0},
712 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,5616,3744,2,400,1040.0},
713 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,5616,4212,2,400,1170.0},
714 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,5616,4680,3,400,1300.0},
715 {19,8,-50,Modulation_256_QAM,3.0/4.0,9,468,16,7488,5616,3,400,1560.0},
716 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,7488,6240,3,400,1733.3}
723 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,1404,702,1,800,175.5},
724 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,2808,1404,1,800,351.0},
725 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,2808,2106,1,800,526.5},
726 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,5616,2808,2,800,702.0},
727 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,5616,4212,2,800,1053.0},
728 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,8424,5616,3,800,1404.0},
729 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,8424,6318,3,800,1579.5},
730 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,8424,7020,4,800,1755.0},
731 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,11232,8424,4,800,2106.0},
732 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,0,0,0,0,0,0,-1},
733 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,1404,702,1,400,195.0},
734 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,2808,1404,1,400,390.0},
735 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,2808,2106,1,400,585.0},
736 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,5616,2808,2,400,780.0},
737 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,5616,4212,2,400,1170.0},
738 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,8424,5616,3,400,1560.0},
739 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,8424,6318,3,400,1755.0},
740 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,268,16,8424,7020,4,400,1950.0},
741 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,11232,8424,4,400,2340.0},
742 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,0,0,0,0,0,0,-1},
749 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,1872,936,1,800,234.0},
750 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,3744,1872,1,800,468.0},
751 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,3744,2808,2,800,702.0},
752 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,7488,3744,2,800,936.0},
753 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,7488,5616,3,800,1404.0},
754 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,11232,7488,4,800,1872.0},
755 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,11232,8424,4,800,2106.0},
756 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,11232,9360,6,800,2340.0},
757 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,14976,11232,6,800,2808.0},
758 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,14976,12480,6,800,3120.0},
759 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,1872,936,1,400,260.0},
760 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,3744,1872,1,400,520.0},
761 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,3744,2808,2,400,780.0},
762 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,7488,3744,2,400,1040.0},
763 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,7488,5616,3,400,1560.0},
764 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,11232,7488,4,400,2080.0},
765 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,11232,8424,4,400,2340.0},
766 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,11232,9360,6,400,2600.0},
767 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,14976,11232,6,400,3120.0},
768 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,14976,12480,6,400,3466.7},
775 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,2340,1170,1,800,292.5},
776 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,4680,2340,2,800,585.0},
777 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,4680,3510,2,800,877.5},
778 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,9360,4680,3,800,1170.0},
779 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,9360,7020,4,800,1755.0},
780 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,14040,9360,5,800,2340.0},
781 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,14040,10530,5,800,2632.5},
782 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,14040,11700,6,800,2925.0},
783 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,18720,14040,8,800,3510.0},
784 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,18720,15600,8,800,3900.0},
785 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,2340,1170,1,400,325.0},
786 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,4680,2340,2,400,650.0},
787 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,4680,3510,2,400,975.0},
788 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,9360,4680,3,400,1300.0},
789 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,9360,7020,4,400,1950.0},
790 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,14040,9360,5,400,2600.0},
791 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,14040,10530,5,400,2925.0},
792 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,14040,11700,6,400,3250.0},
793 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,18720,14040,8,400,3900.0},
794 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,18720,15600,8,400,4333.3},
802 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,2808,1404,1,800,351.0},
803 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,5616,2808,2,800,702.0},
804 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,5616,4212,2,800,1053.0},
805 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,11232,5616,3,800,1404.0},
806 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,11232,8424,4,800,2106.0},
807 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,16848,11232,6,800,2808.0},
808 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,16848,12636,6,800,3159.0},
809 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,16848,14040,8,800,3510.0},
810 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,22464,16848,8,800,4212.0},
811 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,22464,18720,9,800,4680.0},
812 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,2808,1404,1,400,390.0},
813 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,5616,2808,2,400,780.0},
814 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,5616,4212,2,400,1170.0},
815 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,11232,5616,3,400,1560.0},
816 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,11232,8424,4,400,2340.0},
817 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,16848,11232,6,400,3120.0},
818 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,16848,12636,6,400,3510.0},
819 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,16848,14040,8,400,3900.0},
820 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,22464,16848,8,400,4680.0},
821 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,22464,18720,9,400,5200.0},
828 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,3276,1638,1,800,409.5},
829 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,6552,3276,2,800,819.0},
830 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,6552,4914,3,800,1228.5},
831 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,13104,6552,4,800,1638.0},
832 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,13104,9828,6,800,2457.0},
833 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,19656,13104,7,800,3276.0},
834 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,19656,14742,7,800,3685.5},
835 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,19656,16380,9,800,4095.0},
836 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,26208,19656,12,800,4914.0},
837 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,26208,21840,12,800,5460.0},
838 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,3276,1638,1,400,455.0},
839 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,6552,3276,2,400,910.0},
840 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,6552,4914,3,400,1365.0},
841 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,13104,6552,4,400,1820.0},
842 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,13104,9828,6,400,2730.0},
843 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,19656,13104,7,400,3640.0},
844 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,19656,14742,7,400,4095.0},
845 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,19656,16380,9,400,4550.0},
846 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,26208,19656,12,400,5460.0},
847 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,26208,21840,12,400,6066.7},
854 {1,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,3744,1872,1,800,468.0},
855 {2,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,7488,3744,2,800,936.0},
856 {3,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,7488,5616,3,800,1404.0},
857 {4,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,14976,7488,4,800,1872.0},
858 {5,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,14976,11232,6,800,2808.0},
859 {6,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,22464,14976,8,800,3744.0},
860 {7,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,22464,16848,8,800,4212.0},
861 {8,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,22464,18720,9,800,4680.0},
862 {9,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,29952,22464,12,800,5616.0},
863 {10,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,29952,24960,12,800,6240.0},
864 {11,0,-73,Modulation_BPSK,1.0/2.0,1,468,16,3744,1872,1,400,520.0},
865 {12,1,-70,Modulation_QPSK,1.0/2.0,2,468,16,7488,3744,2,400,1040.0},
866 {13,2,-68,Modulation_QPSK,3.0/4.0,2,468,16,7488,5616,3,400,1560.0},
867 {14,3,-65,Modulation_16_QAM,1.0/2.0,4,468,16,14976,7488,4,400,2080.0},
868 {15,4,-61,Modulation_16_QAM,3.0/4.0,4,468,16,14976,11232,6,400,3120.0},
869 {16,5,-57,Modulation_64_QAM,2.0/3.0,6,468,16,22464,14976,8,400,4160.0},
870 {17,6,-56,Modulation_64_QAM,3.0/4.0,6,468,16,22464,16848,8,400,4680.0},
871 {18,7,-55,Modulation_64_QAM,5.0/6.0,6,468,16,22464,18720,9,400,5200.0},
872 {19,8,-50,Modulation_256_QAM,3.0/4.0,8,468,16,29952,22464,12,400,6240.0},
873 {20,9,-48,Modulation_256_QAM,5.0/6.0,8,468,16,29952,24960,12,400,6933.3},
879#define MAX_RATE_INDEX_11n_800 7
880#define MAX_RATE_INDEX_11n_400 17
881#define MAX_RATE_INDEX_11ac_800 9
882#define MAX_RATE_INDEX_11ac_400 19
883#define MIN_RATE_INDEX_800 0
884#define MIN_RATE_INDEX_400 10
886#define get_max_index_n(phy) phy->nGuardInterval==400?MAX_RATE_INDEX_11n_400:MAX_RATE_INDEX_11n_800
887#define get_max_index_ac(phy) phy->nGuardInterval==400?MAX_RATE_INDEX_11ac_400:MAX_RATE_INDEX_11ac_800
888#define get_max_index(phy) phy->PhyProtocol==IEEE_802_11n?get_max_index_n(phy):get_max_index_ac(phy)
895#define TARGET_PEP 0.1
896#define REF_PACKET_SIZE 4096
898unsigned int get_ht_phy_max_index(IEEE802_11_PROTOCOL protocol,UINT dGI)
904 return MAX_RATE_INDEX_11n_400;
906 return MAX_RATE_INDEX_11n_800;
908 fnNetSimError(
"Unknown Guard Interval %d in %s.",dGI,__FUNCTION__);
912 return MAX_RATE_INDEX_11ac_400;
914 return MAX_RATE_INDEX_11ac_800;
916 fnNetSimError(
"Unknown Guard Interval %d in %s.",dGI,__FUNCTION__);
919 fnNetSimError(
"Unknown phy protocol %d in %s.",protocol,__FUNCTION__);
924unsigned int get_ht_phy_min_index(IEEE802_11_PROTOCOL protocol,UINT dGI)
930 return MIN_RATE_INDEX_400;
932 return MIN_RATE_INDEX_800;
934 fnNetSimError(
"Unknown Guard Interval %d in %s.",dGI,__FUNCTION__);
938 return MIN_RATE_INDEX_400;
940 return MIN_RATE_INDEX_800;
942 fnNetSimError(
"Unknown Guard Interval %d in %s.",dGI,__FUNCTION__);
945 fnNetSimError(
"Unknown phy protocol %d in %s.",protocol,__FUNCTION__);
952 switch((
int)dChannelBandwidth)
958 return struPhyParameters_20MHz_1NSS;
960 return struPhyParameters_20MHz_2NSS;
962 return struPhyParameters_20MHz_3NSS;
964 return struPhyParameters_20MHz_4NSS;
966 return struPhyParameters_20MHz_5NSS;
968 return struPhyParameters_20MHz_6NSS;
970 return struPhyParameters_20MHz_7NSS;
972 return struPhyParameters_20MHz_8NSS;
974 fnNetSimError(
"Unknown No: of spatial streams %d in %s\n",NSS,__FUNCTION__);
983 return struPhyParameters_40MHz_1NSS;
985 return struPhyParameters_40MHz_2NSS;
987 return struPhyParameters_40MHz_3NSS;
989 return struPhyParameters_40MHz_4NSS;
991 return struPhyParameters_40MHz_5NSS;
993 return struPhyParameters_40MHz_6NSS;
995 return struPhyParameters_40MHz_7NSS;
997 return struPhyParameters_40MHz_8NSS;
999 fnNetSimError(
"Unknown No: of spatial streams %d in %s\n",NSS,__FUNCTION__);
1007 return struPhyParameters_80MHz_1NSS;
1009 return struPhyParameters_80MHz_2NSS;
1011 return struPhyParameters_80MHz_3NSS;
1013 return struPhyParameters_80MHz_4NSS;
1015 return struPhyParameters_80MHz_5NSS;
1017 return struPhyParameters_80MHz_6NSS;
1019 return struPhyParameters_80MHz_7NSS;
1021 return struPhyParameters_80MHz_8NSS;
1023 fnNetSimError(
"Unknown No: of spatial streams %d in %s\n",NSS,__FUNCTION__);
1031 return struPhyParameters_160MHz_1NSS;
1033 return struPhyParameters_160MHz_2NSS;
1035 return struPhyParameters_160MHz_3NSS;
1037 return struPhyParameters_160MHz_4NSS;
1039 return struPhyParameters_160MHz_5NSS;
1041 return struPhyParameters_160MHz_6NSS;
1043 return struPhyParameters_160MHz_7NSS;
1045 return struPhyParameters_160MHz_8NSS;
1047 fnNetSimError(
"Unknown No: of spatial streams %d in %s\n",NSS,__FUNCTION__);
1052 fnNetSimError(
"Unknown channel bandwidth %lf in %s\n",dChannelBandwidth,__FUNCTION__);
1057#define CALCULATE_PARALLEL
1058#ifdef CALCULATE_PARALLEL
1061int fn_NetSim_IEEE802_11_HTPhy_UpdateParameter()
1063#ifdef _RECALCULATE_RX_SENSITIVITY_BASED_ON_PEP_
1066 t1 = GetTickCount64();
1067 fprintf(stderr,
"Calculating Bandwidth, NSS, Modulation, Coding Rate, Phy Datarate \n"
1068 "and Receiver sensitivity and populating BER Table for 802.11 HT Phy..\n"
1069 "Please wait as this may take some time..... usually 30s to 1 min\n");
1072 sprintf(s,
"%s\\%s", pszIOLogPath,
"rx_sensitivity_wlan_HTPhy.csv");
1073 FILE* fp = fopen(s,
"w");
1074 fprintf(fp,
"Bandwidth,NSS,Modulation,codingRate,Datarate,receiversensitivity\n");
1076#ifdef CALCULATE_PARALLEL
1078#pragma omp parallel for num_threads(4)
1079 for (loop = 0; loop < 4; loop++)
1084 b = (int)(20 * pow(2, loop));
1089 for (b = 20; b <= 160; b*=2)
1092 for (n = 1; n <= 8; n++)
1095 for (i = 0; i < 20; i++)
1097 if (pht[i].dDataRate > 0)
1099 pht[i].dRxSensitivity = calculate_rxpower_by_per(TARGET_PEP, REF_PACKET_SIZE,
1103#ifdef CALCULATE_PARALLEL
1104 #pragma omp critical
1107 fprintf(fp,
"%d,%d,%s,%lf,%lf,%lf\n",
1109 strPHY_MODULATION[pht[i].nModulation],
1110 pht[i].dCodingRate, pht[i].dDataRate, pht[i].dRxSensitivity);
1119 t2 = GetTickCount64();
1120 fprintf(stderr,
"Time taken = %lld ms\n", t2 - t1);
1125void fn_NetSim_IEEE802_11_HTPhy_SetEDThreshold(PIEEE802_11_PHY_VAR phy)
1128 int MIN_RATE_INDEX = phy->nGuardInterval == 400 ? MIN_RATE_INDEX_400 : MIN_RATE_INDEX_800;
1129 phy->dEDThreshold = struPhyParameters[MIN_RATE_INDEX].dRxSensitivity + CSRANGEDIFF;
1145int fn_NetSim_IEEE802_11_HTPhy_DataRate(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID nReceiverId,NetSim_PACKET* packet,
double time)
1148 PIEEE802_11_MAC_VAR mac = IEEE802_11_MAC(nDeviceId,nInterfaceId);
1149 PIEEE802_11_PHY_VAR pstruPhy = IEEE802_11_PHY(nDeviceId,nInterfaceId);
1151 int MIN_RATE_INDEX = pstruPhy->nGuardInterval==400?MIN_RATE_INDEX_400:MIN_RATE_INDEX_800;
1153 if(mac->rate_adaptationAlgo== RATEADAPTATION_GENERIC)
1155 unsigned int index = get_rate_index(nDeviceId,nInterfaceId,nReceiverId);
1156 if(isIEEE802_11_CtrlPacket(packet))
1158 if(struPhyParameters[index].dDataRate<=0)
1162 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParameters[index].dDataRate;
1163 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParameters[index].dRxSensitivity;
1164 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParameters[index].nModulation;
1165 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParameters[index].dCodingRate;
1166 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParameters[index].nNBPSC;
1167 mcs = struPhyParameters[index].MCS;
1168 pstruPhy->MCS = mcs;
1172 goto BROADCAST_RATE;
1175 else if(mac->rate_adaptationAlgo== RATEADAPTATION_MINSTREL)
1178 if(isIEEE802_11_CtrlPacket(packet))
1180 if(struPhyParametersi.dDataRate<=0)
1181 fnNetSimError(
"Data rate <= 0 in Minstrel.\n");
1184 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParametersi.dDataRate;
1185 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParametersi.dRxSensitivity;
1186 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParametersi.nModulation;
1187 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParametersi.dCodingRate;
1188 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParametersi.nNBPSC;
1189 mcs = struPhyParametersi.MCS;
1190 pstruPhy->MCS = mcs;
1191 pstruPhy->dControlFrameDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1195 goto BROADCAST_RATE;
1202 if(isIEEE802_11_CtrlPacket(packet))
1205 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1206 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParameters[MIN_RATE_INDEX].dRxSensitivity;
1207 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParameters[MIN_RATE_INDEX].nModulation;
1208 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParameters[MIN_RATE_INDEX].dCodingRate;
1209 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParameters[MIN_RATE_INDEX].nNBPSC;
1210 pstruPhy->MCS = struPhyParameters[MIN_RATE_INDEX].MCS;
1211 pstruPhy->dControlFrameDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1212 pstruPhy->MCS = mcs;
1216 NETSIM_ID in = fn_NetSim_Stack_GetConnectedInterface(nDeviceId, nInterfaceId, nReceiverId);
1218 double power = GET_RX_POWER_dbm(nDeviceId, nInterfaceId, nReceiverId, in, time);
1220 for(i=get_max_index(pstruPhy);i>=MIN_RATE_INDEX;i--)
1222 if(struPhyParameters[i].dDataRate<=0)
1224 if(power >= struPhyParameters[i].dRxSensitivity || i==MIN_RATE_INDEX)
1226 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParameters[i].dDataRate;
1227 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParameters[i].dRxSensitivity;
1228 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParameters[i].nModulation;
1229 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParameters[i].dCodingRate;
1230 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParameters[i].nNBPSC;
1231 pstruPhy->MCS = struPhyParameters[i].MCS;
1232 pstruPhy->dControlFrameDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1237 if (pstruPhy->Fixed_MCS)
1239 if (struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].dDataRate <= 0)
1240 fnNetSimError(
"\nInvalid MCS %u detected.\n", struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].MCS);
1242 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].dDataRate;
1243 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].dRxSensitivity;
1244 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].nModulation;
1245 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].dCodingRate;
1246 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].nNBPSC;
1247 pstruPhy->MCS = struPhyParameters[MIN_RATE_INDEX + pstruPhy->Fixed_Data_Rate_MCS].MCS;
1248 pstruPhy->dControlFrameDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1255 pstruPhy->PHY_TYPE.ofdmPhy_11n.dDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1256 pstruPhy->dCurrentRxSensitivity_dbm = struPhyParameters[MIN_RATE_INDEX].dRxSensitivity;
1257 pstruPhy->PHY_TYPE.ofdmPhy_11n.modulation = struPhyParameters[MIN_RATE_INDEX].nModulation;
1258 pstruPhy->PHY_TYPE.ofdmPhy_11n.dCodingRate = struPhyParameters[MIN_RATE_INDEX].dCodingRate;
1259 pstruPhy->PHY_TYPE.ofdmPhy_11n.nNBPSC = struPhyParameters[MIN_RATE_INDEX].nNBPSC;
1260 mcs = struPhyParameters[MIN_RATE_INDEX].MCS;
1261 pstruPhy->MCS = mcs;
1262 pstruPhy->dControlFrameDataRate = struPhyParameters[MIN_RATE_INDEX].dDataRate;
1268double fn_NetSim_IEEE802_11_HTPhy_getCtrlFrameDataRate(PIEEE802_11_PHY_VAR pstruPhy)
1271 int MIN_RATE_INDEX = pstruPhy->nGuardInterval==400?MIN_RATE_INDEX_400:MIN_RATE_INDEX_800;
1272 return struPhyParameters[MIN_RATE_INDEX].dDataRate;
1275double HTPhy_get_min_rxSensitivity(
double bandwidth, UINT NSS)
1278 return struPhyParameters[0].dRxSensitivity;
Data structure for physical layer parameters.