PUCCH信道编码
大部分细节基于36.212 5.2.3 Uplink Control Information on PUCCH。方框图中的过程很简单,如下所示,但是实际过程非常复杂,即a向量(位数组)是如何组成的,以及a向量如何转换为b向量。
<HARQ ACK/NACK 信道编码>
这是针对仅携带HARQ ACK/NACK数据的PUCCH信道编码,如PUCCH Format 1a。
详细内容基于36.212 5.2.3.1 Channel Coding for UCI HARQ-ACK。以下是一些要点:
-
a是由0和1组成的位数组
-
1表示HARQ ACK,0表示HARQ NACK
-
在所有单码字传输的TM 1、2、5、6、7中,每个小区的HARQ ACK/NACK映射到a数组中的每一位。
-
在两个码字传输的TM中,将每个小区的HARQ ACK/NACK映射到a数组中的两个连续位。
在这种情况下,a()和b()的位数是相同的,这意味着在信道编码过程中,位数不会改变。
<CSI 信道编码>
这适用于仅携带CSI数据的PUCCH:PUCCH Format 2(不带ACK/NACK)。在这种情况下,a()的位数取决于它携带的CSI数据的类型,但b()的位数始终相同(20位)。这意味着不管输入的大小(a()的大小),信道编码过程都会将位长度增加到20位。
<a(0),a(1),…,a(a-1)>由如下所示的几个表的参数确定。可见,a()的位数根据传输模式、天线端口数、列组、CQI类型而变化。
不管a()的大小,b()的大小总是20。根据以下算法从a()生成b():
在这种情况下,B总是20,M(i,n)由下表定义 :
例如,如果您有一个a()={1,1,0,1},它将被编码为20位输出,如下红色突出显示:
<CSI + HARQ ACK/NACK 信道编码>
这适用于同时携带CSI数据和ACK/NACK数据的PUCCH。
简单地说,首先为CSI生成b'()数组,然后b'()被复用,为ACK/NACK生成a''( ) 数组。(详见36.212 5.2.3.4)。
简而言之,输入的CSI部分将被编码为20位,ACK/NACK位长度保持不变。因此产生的位长度变为(20+ACK/NACK位长度)。