for each FEC block. The number of data sub-carriers in the kth FEC block is given as follows: (9-37) where NRS = 1 for a single spatial stream and NRS = for multiple spatial streams. Bit selection and repetition is performed to generate the sub-packets. Let NCTCK be the number of coded bits that are transmitted in the kth FEC block. The value of NCTCK is calculated as NCTCK = NRENSMM where NSM is equal to the product of MIMO rank for the burst and the number of subframes when long TTI is used for the burst. The index in the HARQ buffer for the jth bit transmitted for the kth FEC block Uijk is given as follows: Nshift; = i M = mod Ncrck (9-38) Uijk = (Pik + Pijk) = mod NFB_Bufferk CHAPTER 9 The IEEE 802. 16m Physical Layer (Part I) where k = 0, 1, KFB - 1,j=0,1,.. NCTCK 1, i is the sub-packet identifier (i = SPID), Pik is the starting position for sub-packet i of the kth FEC block, and NFB_Bufferk = 3NFB is the buffer size for the kth FEC block. The selected bits from each FEC block are collected in the order of FEC block for the HARQ transmission. After the repetition function, the data bits are serially fed to the constellation mapping block. The Gray-mapped QPSK, 16 QAM, and 64 QAM (as shown in Figure 9-49) are supported. The magnitude of the constellation points are normalized by a factor of r to ensure equal average power. 9.12.3 Coding and Modulation of the Control Channels Tail-Biting Convolutional Code (TBCC) is used for encoding downlink and uplink control channels. Terminating the trellis of a convolutional code is a key parameter in the code's performance for packet- based communications. Tail-biting convolutional coding is a mechanism for trellis termination which avoids the rate loss incurred by zero-tail termination at the expense of a more complex decoder. Tail- biting encoding ensures that the starting state of the encoder is the same as its ending state, and that this state is not necessarily the same as the all-zero state. For a rate 1/n feed-forward encoder, this is achieved by initializing the 