Wednesday, August 14, 2013

Why are some of the MCS combinations invalid in 11ac?

11ac boosts the WLAN rates tremendously in to the gigabit range, but it also introduces a slight problematic area which is not really focused in 11n (because its not much of a problem) "the no of BCC encoders."


In 802.11 there are 2 types of convolutional codes (FEC) defined,

 
  • BCC (binary convolutional code)
    • Encodes the data as per the coding rate, if multiple encoders are used demultiplexes the scrambled bits among NES (number of BCC encoders for the Data field) BCC encoders, in a round robin manner
    • Punctures the Encoded output to achieve higher coding rate, by puncturing we mean we decrease the no of output bits (the denominator of the coding rate) there by resulting in an higher coding rate.
        

                   "Higher  rates are derived from it by employing 'puncturing.' Puncturing is a procedure for omitting some of the encoded bits in the transmitter (thus reducing the number of transmitted bits and increasing the coding rate) and inserting a dummy “zero” metric into the convolutional decoder on the receive side in place of the omitted bits. Decoding by the Viterbi algorithm is recommended."


  • LDPC (low-density parity check code.)
    • High performance error-correcting codes, lets us discuss these some other time.
Note: The same MCS table shall be used for both BCC and LDPC coded transmissions.


Lets take a look at both 11N and 11AC with regard to BCC encoding and MCS Rates Validity.


11N:

The rules of BCC encoder in 11N are:

  1. A single BCC encoder can support up to 300 Mbps of data rate at most, after that for every 300 Mbps step we need to use an additional encoder.
  2. NES values were chosen to yield an integer number of punctured blocks for each BCC encoder per OFDM symbol.
  3. The number of BCC encoders is not limited

So if we observe the MCS's 21, 22, 23 they all use 2 BCC encoders as the Tx Rate is > 300 Mbps. When using multiple BCC encoders the encoder parser demultiplexes the scrambled bits among NES (number of BCC encoders for the Data field) BCC encoders, in a round robin manner. 

802.11ac data flow from higher-level protocols to symbols
Process of Convolutional Coding: Multiple BCC Encoders

So the total number of bits must be multiple of no of encoders, else there will be some extra bits left at the end of the distribution.

For Eg: In case of 
optional 40 MHz, NSS = 3, EQM

MCS 21: 64QAM-2/3-1944-1296-2 Encoders

The total number of coded bits 1944 are split across   648 blocks of BCC encoders with 3 bit length, each block yields 2 bits resulting in 1296 Data bits/sub carrier.

11AC:


The rules for BCC encoder in 11AC are:
  1. The maximum data rate per BCC encoder is 600Mbps
  2. The number of BCC encoders for a particular combination of MCS, Nsts and BW is determined by the short GI data rate and the same number of encoders are used for the corresponding normal GI rate
  3. The number of BCC encoders is not limited
  4. NES values were chosen to yield an integer number of punctured blocks for each BCC encoder per OFDM symbol.

As shown in the 11N example, lets take the case of 

mandatory 20 MHz, NSS = 1, 


MCS-8: 256QAM-3/4-416-312


Here the total no of coded bits 416 should be split across 104 blocks BCC encoders with 4 bit length each block yielding 3 data bits resulting in 312 data bits/sub carrier.


MCS-9: 256QAM-5/6-416-??

Here the total no of coded bits 416 cannot be split across a interger number of encoders violating the above rule #4, hence this MCS combination is invalid.


mandatory 20 MHz, NSS = 3, 


MCS-9: 256QAM-5/6-1248-1040


1248/6 = 208 Blocks of 6 bits each yielding 5 bits output resulting in 1040 data bits, which is valid.

Similarly we can do for other MCS holes (Missing MCS rates which are thrown because they are considered invalid).


Conclusion:


So if we convert the above example in to a mathematical forumala...it sumps as below


The reminder of the division of Total no of coded bits/denominator of coding rate (the length of each convolutional code block) should be 0.


         "For BCC encoding, some of the MCS-NSS combinations are excluded from the MCS table to avoid additional padding symbols. Allowed MCSs are selected such that the number of coded bits in each OFDM symbol contains an integer number of punctured blocks from all encoders, i.e., mathematically every allowed MCS-NSS satisfies:"
Condition for a MCS to be valid: For definitions refer the IEEE spec

References:


1) IEEE 802.11ac-draft 5.0
2) IEEE 802.11-2012

No comments:

Post a Comment