MCS stands for Modulation Coding Scheme. It is an indicator by which WLAN specifies the data rate for each frame in 802.11n and 802.11ac. This is the technology to change the data rate dynamically. In theory, AP and the device can change the data rate at every physical frame.
This page covers two MCS families. The first is the VHT-MCS of 802.11ac, where the MCS index and the number of spatial streams are two separate fields. The second is the MCS of 802.11ad, where one index from 0 to 31 selects the PHY type as well as the modulation and the code rate. For both, I'll show how each data rate in the tables follows from a few PHY numbers, so you can check any entry yourself.
MCS for 802.11ac
802.11ac PHY frame carries a field specifying the MCS field. It means it can change the data rate at every radio frame. The receiver reads the MCS from VHT-SIG-A, which arrives before the Data field, so every PPDU can carry its own rate.
The diagram below shows where that field sits. The lower half is the 802.11ac VHT PHY frame format, from L-STF to Data. The upper half opens VHT-SIG-A2, the second part of the 8 us VHT-SIG-A field, and lays out its bits B0 to B23. The SU VHT-MCS field, marked in red, takes bits B4 to B7.

SU VHT-MCS, B4 to B7 : four bits give 16 values, and 802.11ac uses 0 to 9. In an MU PPDU the same four bits carry MU[1-3] Coding instead, and the MCS of each user goes in VHT-SIG-B.Short GI, B0 : this bit selects the 400 ns guard interval. It decides which of the two rate columns under each bandwidth in the table below applies.The Bits row does not match the bit positions : the positions give different widths. B0 to B3 take one bit each, and SU VHT-MCS takes four bits. Beamformed and Reserved take one bit each, CRC takes 8 bits and Tail takes 6 bits. That adds up to the 24 bits from B0 to B23.The shaded funnel starts at VHT-SIG-B : but the bit map it opens is VHT-SIG-A2, as the title says. For an SU PPDU, read the MCS from VHT-SIG-A.Legacy part first : L-STF, L-LTF, L-SIG and VHT-SIG-A use the legacy OFDM PHY modulation, so an older station can still decode them. VHT-STF, VHT-LTF, VHT-SIG-B and Data use VHT modulation.
The Wireshark capture below shows the same information after decoding. The Radiotap header reports what the receiving adapter saw for one frame, Frame 1896. In the VHT information block, the highlighted User 0 entry gives the MCS and the number of spatial streams as two separate values.

MCS index 0: 1 and Spatial streams 0: 1 : one stream at VHT-MCS 1, which Wireshark labels QPSK 1/2.Bandwidth: 80 MHz and Guard interval: long : these two fields pick the 80 MHz column with the 800 ns GI in the table below.Coding 0: BCC : the frame uses BCC rather than LDPC. The coding type does not change the data rate.Data Rate: 58.5 Mb/s : this matches the table entry for VHT-MCS 1, NSS 1, 80 MHz and 800 ns GI. Wireshark shows it in square brackets because it computes the value from the other fields. It is not sent over the air.
Following table is based on 802.11ac-22.5 Parameters for VHT-MCSs. This is a simplified version, you may find several additional parameters for each MCS in 802.11ac specification.
|
VHT MCS Index |
NSS |
Modulation |
R |
20 Mhz Data Rate (Mbps) |
40 Mhz Data Rate(Mbps) |
80 Mhz Data Rate(Mbps) |
160 Mhz Data Rate(Mbps) |
||||
|
800 ns GI |
400 ns GI |
800 ns GI |
400 ns GI |
800 ns GI |
400 ns GI |
800 ns GI |
400 ns GI |
||||
|
0 |
1 |
BPSK |
1/2 |
6.5 |
7.2 |
13.5 |
15.0 |
29.3 |
32.5 |
58.5 |
65.0 |
|
1 |
1 |
QPSK |
1/2 |
13.0 |
14.4 |
27.0 |
30.0 |
58.5 |
65.0 |
117.0 |
130.0 |
|
2 |
1 |
QPSK |
3/4 |
19.5 |
21.7 |
40.5 |
45.0 |
87.8 |
97.5 |
175.5 |
195.0 |
|
3 |
1 |
16-QAM |
1/2 |
26.0 |
28.9 |
54.0 |
60.0 |
117.0 |
130.0 |
234.0 |
260.0 |
|
4 |
1 |
16-QAM |
3/4 |
39.0 |
43.3 |
81.0 |
90.0 |
175.5 |
195.0 |
351.0 |
390.0 |
|
5 |
1 |
64-QAM |
2/3 |
52.0 |
57.8 |
108.0 |
120.0 |
234.0 |
260.0 |
468.0 |
520.0 |
|
6 |
1 |
64-QAM |
3/4 |
58.5 |
65.0 |
121.5 |
135.0 |
263.3 |
292.5 |
526.5 |
585.0 |
|
7 |
1 |
64-QAM |
5/6 |
65.0 |
72.2 |
135.0 |
150.0 |
292.5 |
325.0 |
585.0 |
650.0 |
|
8 |
1 |
256-QAM |
3/4 |
78.0 |
86.7 |
162.0 |
180.0 |
351.0 |
390.0 |
702.0 |
780.0 |
|
9 |
1 |
256-QAM |
5/6 |
n/a |
n/a |
180.0 |
200.0 |
390.0 |
433.3 |
780.0 |
866.7 |
|
0 |
2 |
BPSK |
1/2 |
13.0 |
14.4 |
27.0 |
30.0 |
58.5 |
65.0 |
117.0 |
130.0 |
|
1 |
2 |
QPSK |
1/2 |
26.0 |
28.9 |
54.0 |
60.0 |
117.0 |
130.0 |
234.0 |
260.0 |
|
2 |
2 |
QPSK |
3/4 |
39.0 |
43.3 |
81.0 |
90.0 |
175.5 |
195.0 |
351.0 |
390.0 |
|
3 |
2 |
16-QAM |
1/2 |
52.0 |
57.8 |
108.0 |
120.0 |
234.0 |
260.0 |
468.0 |
520.0 |
|
4 |
2 |
16-QAM |
3/4 |
78.0 |
86.7 |
162.0 |
180.0 |
351.0 |
390.0 |
702.0 |
780.0 |
|
5 |
2 |
64-QAM |
2/3 |
104.0 |
115.6 |
216.0 |
240.0 |
468.0 |
520.0 |
936.0 |
1040.0 |
|
6 |
2 |
64-QAM |
3/4 |
117.0 |
130.0 |
243.0 |
270.0 |
526.5 |
585.0 |
1053.0 |
1170.0 |
|
7 |
2 |
64-QAM |
5/6 |
130.0 |
144.4 |
270.0 |
300.0 |
585.0 |
650.0 |
1170.0 |
1300.0 |
|
8 |
2 |
256-QAM |
3/4 |
156.0 |
173.3 |
324.0 |
360.0 |
702.0 |
780.0 |
1404.0 |
1560.0 |
|
9 |
2 |
256-QAM |
5/6 |
n/a |
n/a |
360.0 |
400.0 |
780.0 |
866.7 |
1560.0 |
1733.3 |
|
0 |
3 |
BPSK |
1/2 |
19.5 |
21.7 |
40.5 |
45.0 |
87.8 |
97.5 |
175.5 |
195.0 |
|
1 |
3 |
QPSK |
1/2 |
39.0 |
43.3 |
81.0 |
90.0 |
175.5 |
195.0 |
351.0 |
390.0 |
|
2 |
3 |
QPSK |
3/4 |
58.5 |
65.0 |
121.5 |
135.0 |
263.3 |
292.5 |
526.5 |
585.0 |
|
3 |
3 |
16-QAM |
1/2 |
78.0 |
86.7 |
162.0 |
180.0 |
351.0 |
390.0 |
702.0 |
780.0 |
|
4 |
3 |
16-QAM |
3/4 |
117.0 |
130.0 |
243.0 |
270.0 |
526.5 |
585.0 |
1053.0 |
1170.0 |
|
5 |
3 |
64-QAM |
2/3 |
156.0 |
173.3 |
324.0 |
360.0 |
702.0 |
780.0 |
1404.0 |
1560.0 |
|
6 |
3 |
64-QAM |
3/4 |
175.5 |
195.0 |
364.5 |
405.0 |
n/a |
n/a |
1579.5 |
1755.0 |
|
7 |
3 |
64-QAM |
5/6 |
195.0 |
216.7 |
405.0 |
450.0 |
877.5 |
975.0 |
1755.0 |
1950.0 |
|
8 |
3 |
256-QAM |
3/4 |
234.0 |
260.0 |
486.0 |
540.0 |
1053.0 |
1170.0 |
2106.0 |
2340.0 |
|
9 |
3 |
256-QAM |
5/6 |
260.0 |
288.9 |
540.0 |
600.0 |
1170.0 |
1300.0 |
n/a |
n/a |
|
0 |
4 |
BPSK |
1/2 |
26.0 |
28.9 |
54.0 |
60.0 |
117.0 |
130.0 |
234.0 |
260.0 |
|
1 |
4 |
QPSK |
1/2 |
52.0 |
57.8 |
108.0 |
120.0 |
234.0 |
260.0 |
468.0 |
520.0 |
|
2 |
4 |
QPSK |
3/4 |
78.0 |
86.7 |
162.0 |
180.0 |
351.0 |
390.0 |
702.0 |
780.0 |
|
3 |
4 |
16-QAM |
1/2 |
104.0 |
115.6 |
216.0 |
240.0 |
468.0 |
520.0 |
936.0 |
1040.0 |
|
4 |
4 |
16-QAM |
3/4 |
156.0 |
173.3 |
324.0 |
360.0 |
702.0 |
780.0 |
1404.0 |
1560.0 |
|
5 |
4 |
64-QAM |
2/3 |
208.0 |
231.1 |
432.0 |
480.0 |
936.0 |
1040.0 |
1872.0 |
2080.0 |
|
6 |
4 |
64-QAM |
3/4 |
234.0 |
260.0 |
486.0 |
540.0 |
1053.0 |
1170.0 |
2106.0 |
2340.0 |
|
7 |
4 |
64-QAM |
5/6 |
260.0 |
288.9 |
540.0 |
600.0 |
1170.0 |
1300.0 |
2340.0 |
2600.0 |
|
8 |
4 |
256-QAM |
3/4 |
312.0 |
346.7 |
648.0 |
720.0 |
1404.0 |
1560.0 |
2808.0 |
3120.0 |
|
9 |
4 |
256-QAM |
5/6 |
n/a |
n/a |
720.0 |
800.0 |
1560.0 |
1733.3 |
3120.0 |
3466.7 |
|
0 |
5 |
BPSK |
1/2 |
32.5 |
36.1 |
67.5 |
75.0 |
146.3 |
162.5 |
292.5 |
325.0 |
|
1 |
5 |
QPSK |
1/2 |
65.0 |
72.2 |
135.0 |
150.0 |
292.5 |
325.0 |
585.0 |
650.0 |
|
2 |
5 |
QPSK |
3/4 |
97.5 |
108.3 |
202.5 |
225.0 |
438.8 |
487.5 |
877.5 |
975.0 |
|
3 |
5 |
16-QAM |
1/2 |
130.0 |
144.4 |
270.0 |
300.0 |
585.0 |
650.0 |
1170.0 |
1300.0 |
|
4 |
5 |
16-QAM |
3/4 |
195.0 |
216.7 |
405.0 |
450.0 |
877.5 |
975.0 |
1755.0 |
1950.0 |
|
5 |
5 |
64-QAM |
2/3 |
260.0 |
288.9 |
540.0 |
600.0 |
1170.0 |
1300.0 |
2340.0 |
2600.0 |
|
6 |
5 |
64-QAM |
3/4 |
292.5 |
325.0 |
607.5 |
675.0 |
1316.3 |
1462.5 |
2632.5 |
2925.0 |
|
7 |
5 |
64-QAM |
5/6 |
325.0 |
361.1 |
675.0 |
750.0 |
1462.5 |
1625.0 |
2925.0 |
3250.0 |
|
8 |
5 |
256-QAM |
3/4 |
390.0 |
433.3 |
810.0 |
900.0 |
1755.0 |
1950.0 |
3510.0 |
3900.0 |
|
9 |
5 |
256-QAM |
5/6 |
n/a |
n/a |
900.0 |
1000.0 |
1950.0 |
2166.7 |
3900.0 |
4333.3 |
|
0 |
6 |
BPSK |
1/2 |
39.0 |
43.3 |
81.0 |
90.0 |
175.5 |
195.0 |
351.0 |
390.0 |
|
1 |
6 |
QPSK |
1/2 |
78.0 |
86.7 |
162.0 |
180.0 |
351.0 |
390.0 |
702.0 |
780.0 |
|
2 |
6 |
QPSK |
3/4 |
117.0 |
130.0 |
243.0 |
270.0 |
526.5 |
585.0 |
1053.0 |
1170.0 |
|
3 |
6 |
16-QAM |
1/2 |
156.0 |
173.3 |
324.0 |
360.0 |
702.0 |
780.0 |
1404.0 |
1560.0 |
|
4 |
6 |
16-QAM |
3/4 |
234.0 |
260.0 |
486.0 |
540.0 |
1053.0 |
1170.0 |
2106.0 |
2340.0 |
|
5 |
6 |
64-QAM |
2/3 |
312.0 |
346.7 |
648.0 |
720.0 |
1404.0 |
1560.0 |
2808.0 |
3120.0 |
|
6 |
6 |
64-QAM |
3/4 |
351.0 |
390.0 |
729.0 |
810.0 |
1579.5 |
1755.0 |
3159.0 |
3510.0 |
|
7 |
6 |
64-QAM |
5/6 |
390.0 |
433.3 |
810.0 |
900.0 |
1755.0 |
1950.0 |
3510.0 |
3900.0 |
|
8 |
6 |
256-QAM |
3/4 |
468.0 |
520.0 |
972.0 |
1080.0 |
2106.0 |
2340.0 |
4212.0 |
4680.0 |
|
9 |
6 |
256-QAM |
5/6 |
520.0 |
577.8 |
1080.0 |
1200.0 |
n/a |
n/a |
4680.0 |
5200.0 |
|
0 |
7 |
BPSK |
1/2 |
45.5 |
50.6 |
94.5 |
105.0 |
204.8 |
227.5 |
409.5 |
455.0 |
|
1 |
7 |
QPSK |
1/2 |
91.0 |
101.1 |
189.0 |
210.0 |
409.5 |
455.0 |
819.0 |
910.0 |
|
2 |
7 |
QPSK |
3/4 |
136.5 |
151.7 |
283.5 |
315.0 |
614.3 |
682.5 |
1228.5 |
1365.0 |
|
3 |
7 |
16-QAM |
1/2 |
182.0 |
202.2 |
378.0 |
420.0 |
819.0 |
910.0 |
1638.0 |
1820.0 |
|
4 |
7 |
16-QAM |
3/4 |
273.0 |
303.3 |
567.0 |
630.0 |
1228.5 |
1365.0 |
2457.0 |
2730.0 |
|
5 |
7 |
64-QAM |
2/3 |
364.0 |
404.4 |
756.0 |
840.0 |
1638.0 |
1820.0 |
3276.0 |
3640.0 |
|
6 |
7 |
64-QAM |
3/4 |
409.5 |
455.0 |
850.5 |
945.0 |
n/a |
n/a |
3685.5 |
4095.0 |
|
7 |
7 |
64-QAM |
5/6 |
455.0 |
505.6 |
945.0 |
1050.0 |
2047.5 |
2275.0 |
4095.0 |
4550.0 |
|
8 |
7 |
256-QAM |
3/4 |
546.0 |
606.7 |
1134.0 |
1260.0 |
2457.0 |
2730.0 |
4914.0 |
5460.0 |
|
9 |
7 |
256-QAM |
5/6 |
n/a |
n/a |
1260.0 |
1400.0 |
2730.0 |
3033.3 |
5460.0 |
6066.7 |
|
0 |
8 |
BPSK |
1/2 |
52.0 |
57.8 |
108.0 |
120.0 |
234.0 |
260.0 |
468.0 |
520.0 |
|
1 |
8 |
QPSK |
1/2 |
104.0 |
115.6 |
216.0 |
240.0 |
468.0 |
520.0 |
936.0 |
1040.0 |
|
2 |
8 |
QPSK |
3/4 |
156.0 |
173.3 |
324.0 |
360.0 |
702.0 |
780.0 |
1404.0 |
1560.0 |
|
3 |
8 |
16-QAM |
1/2 |
208.0 |
231.1 |
432.0 |
480.0 |
936.0 |
1040.0 |
1872.0 |
2080.0 |
|
4 |
8 |
16-QAM |
3/4 |
312.0 |
346.7 |
648.0 |
720.0 |
1404.0 |
1560.0 |
2808.0 |
3120.0 |
|
5 |
8 |
64-QAM |
2/3 |
416.0 |
462.2 |
864.0 |
960.0 |
1872.0 |
2080.0 |
3744.0 |
4160.0 |
|
6 |
8 |
64-QAM |
3/4 |
468.0 |
520.0 |
972.0 |
1080.0 |
2106.0 |
2340.0 |
4212.0 |
4680.0 |
|
7 |
8 |
64-QAM |
5/6 |
520.0 |
577.8 |
1080.0 |
1200.0 |
2340.0 |
2600.0 |
4680.0 |
5200.0 |
|
8 |
8 |
256-QAM |
3/4 |
624.0 |
693.3 |
1296.0 |
1440.0 |
2808.0 |
3120.0 |
5616.0 |
6240.0 |
|
9 |
8 |
256-QAM |
5/6 |
n/a |
n/a |
1440.0 |
1600.0 |
3120.0 |
3466.7 |
6240.0 |
6933.3 |
NOTE :
NSS indicates the number of Spatial Stream.
R indicates Coding Rate
GI indicates Guard Interval
How is each VHT data rate computed ?
Every number in the table above comes from one formula, so you do not need to memorise the table. The same formula also explains the n/a cells, which mark combinations that 802.11ac does not allow.
The data rate is the number of data bits in one OFDM symbol, divided by the duration of that symbol.
Data rate = NSD x NBPSCS x R x NSS / TSYM
NSD is the number of data subcarriers. It is 52 in 20 MHz, 108 in 40 MHz, 234 in 80 MHz and 468 in 160 MHz. NBPSCS is the number of coded bits per subcarrier in one stream: 1 for BPSK, 2 for QPSK, 4 for 16-QAM, 6 for 64-QAM and 8 for 256-QAM. R is the coding rate, and NSS is the number of spatial streams. TSYM is 4.0 microseconds with the 800 ns GI and 3.6 microseconds with the 400 ns GI. The reason is that each 3.2 microsecond OFDM symbol gets one guard interval added in front of it.
Let's check two cells. First, take VHT-MCS 0 with one stream in 20 MHz and 800 ns GI. It gives 52 x 1 x 1/2 x 1 / 4.0 = 6.5 Mbps, the first entry of the table. Next, take VHT-MCS 9 with two streams in 80 MHz and 400 ns GI. It gives 234 x 8 x 5/6 x 2 / 3.6 = 866.7 Mbps. The rate more than doubles from 20 MHz to 40 MHz, and again from 40 MHz to 80 MHz. The reason is that 108 is more than twice 52, and 234 is more than twice 108. From 80 MHz to 160 MHz the rate doubles exactly, because 468 is 2 x 234.
The n/a cells come from a rule on NDBPS, the number of data bits per OFDM symbol. NDBPS is NSD x NBPSCS x R x NSS, and it has to be a whole number. For VHT-MCS 9 in 20 MHz with one stream, NDBPS is 52 x 8 x 5/6 = 346.67, so this combination is not allowed. With three streams it is 1040, a whole number. That is why the NSS 3 and NSS 6 rows have a 20 MHz value for VHT-MCS 9 and the other rows do not. The remaining n/a cells, such as VHT-MCS 6 in 80 MHz with three streams, have a whole NDBPS of 3159. A second condition excludes them, and it involves the number of BCC encoders. I don't derive that condition on this page.
802.11n uses the same subcarrier counts in 20 MHz and 40 MHz, but it numbers its MCS in a different way. One HT MCS index combines the modulation, the code rate and the stream count, so MCS 0 to 7 are one stream and MCS 8 to 15 are two streams. 802.11ac separates the two, and the Wireshark capture in this section shows them as two fields. 802.11ac also adds 256-QAM as VHT-MCS 8 and 9, which 802.11n does not have.
One formula gives every table entry : data subcarriers x bits per subcarrier x coding rate x streams, divided by 4.0 or 3.6 microseconds.The 400 ns GI adds about 11 percent : 4.0 / 3.6 = 1.11, so each 400 ns column is 10/9 of the 800 ns column beside it.n/a means not allowed, not missing : the combination fails the whole-number rule for NDBPS or the BCC encoder condition.The rate in a capture is computed, not signalled : Wireshark derives Data Rate from the MCS, NSS, bandwidth and GI, with the same formula.
MCS for 802.11ad
802.11ad runs in the 60 GHz band and is often called DMG, for directional multi-gigabit. Unlike 802.11ac, it has a single MCS index from 0 to 31, and that index also selects the PHY type. MCS 0 is the control PHY, and MCS 1 to 12 are the single carrier (SC) PHY. MCS 13 to 24 are the OFDM PHY, and MCS 25 to 31 are the low-power SC PHY. So check the index range first, before you read a modulation name in the tables below.
The diagram below shows the 802.11ad frame and where the MCS sits in it. The Preamble has a Short Training Field (STF) and a Channel Estimation Field (CEF). The Header follows, then the Data, and a BFT field for beamforming training closes the frame.

MCS, 5 bits : five bits give 32 values, which is exactly the range 0 to 31 in the tables below.Scrambler initialization, 7 bits : this field comes first in the header, before the MCS.Other fields : the rest of the header varies with the modulation scheme, as the note in the diagram says. So the header layout depends on the PHY type that the MCS range selects.
IEEE 802.11ad Table 21-10 Modulation and coding scheme for the control PHY
|
MCS Index |
Modulation |
Code Rate |
Data Rate(Mbps) |
|
0 |
DBPSK |
1/2 |
27.5 |
IEEE 802.11ad Table 21-18—Modulation and coding scheme for SC
|
MCS Index |
Modulation |
N_CBPS |
Repetition |
Code Rate |
Data Rate (Mbps) |
|
1 |
|
1 |
2 |
1/2 |
385 |
|
2 |
|
1 |
1 |
1/2 |
770 |
|
3 |
|
1 |
1 |
5/8 |
962.5 |
|
4 |
|
1 |
1 |
3/4 |
1155 |
|
5 |
|
1 |
1 |
13/16 |
1251.25 |
|
6 |
|
2 |
1 |
1/2 |
1540 |
|
7 |
|
2 |
1 |
5/8 |
1925 |
|
8 |
|
2 |
1 |
3/4 |
2310 |
|
9 |
|
2 |
1 |
13/16 |
2502.5 |
|
10 |
|
4 |
1 |
1/2 |
3080 |
|
11 |
|
4 |
1 |
5/8 |
3850 |
|
12 |
|
4 |
1 |
3/4 |
4620 |
IEEE 802.11ad Table 21-14—Modulation and coding scheme for OFDM
|
MCS Index |
Modulation |
Code Rate |
N_BPSC |
N_CBPS |
N_DBPS |
Data Rate(Mbps) |
|
13 |
SQPSK |
1/2 |
1 |
336 |
168 |
693.00 |
|
14 |
SQPSK |
5/8 |
1 |
336 |
210 |
866.25 |
|
15 |
QPSK |
1/2 |
2 |
672 |
336 |
1386.00 |
|
16 |
QPSK |
5/8 |
2 |
672 |
420 |
1732.50 |
|
17 |
QPSK |
3/4 |
2 |
672 |
504 |
2079.00 |
|
18 |
16-QAM |
1/2 |
4 |
1344 |
672 |
2772.00 |
|
19 |
16-QAM |
5/8 |
4 |
1344 |
840 |
3465.00 |
|
20 |
16-QAM |
3/4 |
4 |
1344 |
1008 |
4158.00 |
|
21 |
16-QAM |
13/16 |
4 |
1344 |
1092 |
4504.50 |
|
22 |
64-QAM |
5/8 |
6 |
2016 |
1260 |
5197.50 |
|
23 |
64-QAM |
3/4 |
6 |
2016 |
1512 |
6237.00 |
|
24 |
64-QAM |
13/16 |
6 |
2016 |
1638 |
6756.75 |
IEEE 802.11ad Table 21-22—Low-power SC modulation and coding schemes
|
MCS Index |
Modulation |
Effective Code Rate |
Coding Scheme |
N_CPB |
Rate (Mbps) |
|
25 |
|
13/28 |
RS(224,208)+Block-Code(16,8) |
392 |
626 |
|
26 |
|
13/21 |
RS(224,208)+Block-Code(12,8) |
392 |
834 |
|
27 |
|
52/63 |
RS(224,208)+SPC(9,8) |
392 |
1112 |
|
28 |
|
13/28 |
RS(224,208)+Block-Code(16,8) |
392 |
1251 |
|
29 |
|
13/21 |
RS(224,208)+Block-Code(12,8) |
392 |
1668 |
|
30 |
|
52/63 |
RS(224,208)+SPC(9,8) |
392 |
2224 |
|
31 |
|
13/14 |
RS(224,208)+Block-Code(8,8) |
392 |
2503 |
How are the 802.11ad data rates computed ?
The 802.11ad rates look irregular, with values such as 385, 693 and 626 Mbps. They all come from a few clock and block numbers, and each PHY type uses them in its own way.
The control PHY and the SC PHY run at a chip rate of 1760 Mchip/s. The control PHY spreads each bit with a 32-chip Golay sequence and codes at rate 1/2. So MCS 0 gives 1760 / 32 x 1/2 = 27.5 Mbps.
The SC PHY sends blocks of 512 symbols. 448 of them carry data, and 64 form the guard interval. So the data symbol rate is 1760 x 448 / 512 = 1540 Msym/s. Multiply that by N_CBPS from the table and by the code rate, then divide by the repetition factor. For example, MCS 1 gives 1540 x 1 x 1/2 / 2 = 385 Mbps. MCS 10 gives 1540 x 4 x 1/2 = 3080 Mbps, and MCS 12 gives 1540 x 4 x 3/4 = 4620 Mbps.
The low-power SC PHY uses the same 512-symbol block, but only 392 symbols carry data. That is the 392 in the N_CPB column of the last table. Its data symbol rate is therefore 1760 x 392 / 512 = 1347.5 Msym/s. The effective code rate is the product of two codes. RS(224,208) has a rate of 208/224 = 13/14, and the inner code multiplies it: 8/16 gives 13/28, 8/12 gives 13/21, 8/9 gives 52/63, and 8/8 leaves 13/14. MCS 25 then gives 1347.5 x 1 x 13/28 = 626 Mbps, and MCS 31 gives 1347.5 x 2 x 13/14 = 2502.5 Mbps, shown as 2503. The rates of MCS 25 to 27 need one bit per symbol, so they are π/2-BPSK, and MCS 28 to 31 are π/2-QPSK.
The OFDM PHY works differently. Its OFDM symbol lasts 0.2424 microseconds, and you can read that back from the table. MCS 13 carries N_DBPS = 168 bits per symbol at 693 Mbps, and 168 / 693 = 0.2424. Every OFDM row is N_DBPS / 0.2424, for example 1512 / 0.2424 = 6237 Mbps for MCS 23. N_DBPS itself is N_CBPS x code rate, and N_CBPS is 336 data subcarriers x N_BPSC. SQPSK in MCS 13 and 14 is spread QPSK, which repeats the same data on two subcarriers, so it counts as one bit per subcarrier.
The MCS index also names the PHY : 0 is control, 1 to 12 are SC, 13 to 24 are OFDM, and 25 to 31 are low-power SC.SC rates are built on 1540 Msym/s : 1760 Mchip/s x 448/512, times bits per symbol and code rate, divided by the repetition factor.Low-power SC changes the block and the code : 392 data symbols per block, and an RS code combined with a short block code.The OFDM symbol lasts 0.2424 microseconds : every OFDM rate is N_DBPS divided by it.
Reference
[1] IEEE 802.11ac-22.5 Parameters for VHT-MCSs
[2] IEEE 802.11ad
Table 21-10—Modulation and coding scheme for the control PHY
Table 21-18—Modulation and coding scheme for SC
Table 21-14—Modulation and coding scheme for OFDM
Table 21-22—Low-power SC modulation and coding schemes
[3] MCS Index for 802.11n and 802.11ac Chart