4G/LTE - Basic Procedures  

 

 

 

Channel Coding Processing for PUCCH

Most of the details in this page is based on 36.212 5.2.3 Uplink Control Information on PUCCH. The process in block diagram seems to be simple as shown below. But you will see very complicated procedure in terms of how a( ) vector (a bit array) is composed of and how the a( ) vector is converted to b( ) vector.

< 36.212 >

Channel Coding for HARQ ACK/NACK only

This is for PUCCH carrying only HARQ ACK/NACK data like PUCCH Format1a.

The details of this section is based on 36.212 5.2.3.1 Channel Coding for UCI HARQ-ACK. Followings are several points that you have to remember for basic understanding.

  •   a( ) is a bit array which is made up of 0 and 1.
  •   1 indicates HARQ ACK, 0 indicate HARQ NACK
  •   In TM 1,2,5,6,7 which are all single codeword transmission, HARQ ACK/NACK for each cell maps to each bit in the a( ) array.
  •   In TM which are two codeword transmission, HARQ ACK/NACK for each cell to two consecutive bits in the a( ) array.

In this case, the number of bit for a() and b() are same, meaning the number of bits does not change during the channel coding process.

Channel Coding for CSI Only

This applies to the PUCCH that carries only CSI data. PUCCH format 2 (without ACK/NACK). In this case, the number of bits for a() varies depending on what kind of CSI data it carries, but the number for bits for b() is always same (20 bits). It means the bit length gets increased to 20 bits by channel coding process regardless of the size of the input (size of a() ).

< a(0), a(1), ...., a(A-1) > are determined by several different tables as shown below. As you see, the number of bits (A) varies depending on transmission mode, number of antenna ports, Rank, CQI type.  

Table 5.2.3.3.1-1: UCI fields for channel quality information feedback for wideband CQI reports(transmission mode 1, transmission mode 2, transmission mode 3, transmission mode 7,transmission mode 8 configured without PMI/RI reporting, transmission mode 9 configured without PMI/RI reporting or configured with 1 antenna port, and transmission mode 10 configured without PMI/RI reporting or configured with 1 antenna port).

Table 5.2.3.3.1-2: UCI fields for channel quality information feedback for wideband CQI reports (transmission mode 4, transmission mode 5, transmission mode 6 and transmission mode 8 configured with PMI/RI reporting).

Table 5.2.3.3.1-2A: UCI fields for transmission of wideband CQI and precoding information (i2)  for transmission mode 9 configured with PMI/RI reporting and transmission mode 10 configured with PMI/RI reporting

Table 5.2.3.3.1-2B: UCI fields for transmission of wideband CQI and precoding information (i1, i2) for transmission mode 9 configured with PMI/RI reporting with 8 antenna ports and transmission mode 10 configured with PMI/RI reporting with 8 antenna ports

Table 5.2.3.3.1-3: UCI fields for rank indication feedback for wideband reports (transmission mode 3, transmission mode 4, transmission mode 8 configured with PMI/RI reporting, transmission mode 9 configured with PMI/RI reporting with 2/4/8 antenna ports, and transmission mode 10 configured with PMI/RI reporting with 2/4/8 antenna ports).

Table 5.2.3.3.1-3A: UCI fields for joint report of RI and i1 (transmission mode 9 configured with PMI/RI reporting with 2/4/8 antenna ports and transmission mode 10 configured with PMI/RI reporting with 2/4/8 antenna ports)

Regardless of A (the size of a( )), the size of b( ) become always 20.  The way by which b( ) is generated from a( ) based on following algorithm.

In this case, B is always 20 and M(i,n) is defined by the following table.

For example, if you have a() = {1,1,0,1}, it will get encoded to 20 bits output as highlighted in red below.

Input Bits : a( ) ==>

1

1

0

1

Multiplication ==>

x

x

x

x

i

M i,0

M i,1

M i,2

M i,3

M i,0

M i,1

M i,2

M i,3

b()

0

1

1

0

0

=

1

1

0

0

=

0

1

1

1

1

0

=

1

1

0

0

=

0

2

1

0

0

1

=

1

0

0

1

=

0

3

1

0

1

1

=

1

0

0

1

=

0

4

1

1

1

1

=

1

1

0

1

=

1

5

1

1

0

0

=

1

1

0

0

=

0

6

1

0

1

0

=

1

0

0

0

=

1

7

1

0

0

1

=

1

0

0

1

=

0

8

1

1

0

1

=

1

1

0

1

=

1

9

1

1

1

1

=

1

1

0

1

=

1

10

1

0

1

0

=

1

0

0

0

=

1

11

1

0

1

0

=

1

0

0

0

=

1

12

1

1

0

1

=

1

1

0

1

=

1

13

1

1

0

1

=

1

1

0

1

=

1

14

1

0

0

0

=

1

0

0

0

=

1

15

1

0

0

0

=

1

0

0

0

=

1

16

1

1

1

0

=

1

1

0

0

=

0

17

1

1

0

1

=

1

1

0

1

=

1

18

1

0

0

1

=

1

0

0

1

=

0

19

1

0

0

0

=

1

0

0

0

=

1

Channel Coding for CSI + HARQ ACK/NACK

This applies to PUCCH that carry both CSI data and ACK/NACK data.

Simply put, first generate b'( ) array for CSI and b'( ) is multiplexed by a''( ) for ACK/NACK. (See 36.212 5.2.3.4 for details).

In short, the CSI part of the input will get encoded to 20 bits and ACK/NACK bit length remain same. So the resulting bit length became (20 + ACK/NACK bit length).