1、4、各子功能模块介绍4.1 信道编码4.1.1 信道编码综述4.1.1.1 信道编码的作用、分类以及 LTE 中采用的信道编码(1) 信道编码的作用:信道编码是为保证通信系统的传输可靠性,克服信道中的噪声和干扰而专门设计的一类抗干扰技术和方法。(2) 信道编码从功能上看有 3 类编码:a. 仅具有差错功能的检错码,如循环冗余校验 CRC 码、自动请求重传ARQ 等;b. 具有自动纠正差错功能的纠错码,如循环码中的 BCH、RS 码及卷积码、级联码、Turbo 码等;c. 具有既能检错又能纠错功能的信道编码,最典型的是混合 ARQ,又称为 HARQ。从结构和规律上分两类:a. 线性码:监督关系方
2、程是线性方程的信道编码称为线性码,目前大部分实用化的信道编码均属于线性码,如线性分组码、线性卷积码是经常采用的信道编码;b. 非线性码:一切监督关系方程不满足线性规律的信道编码均称为非线性码。(3)LTE 中采用的信道编码信道编码有 2 种:Turbo 、咬尾卷积码。(4)LTE 中不同的物理信道都唯一的对应于 Turbo 、咬尾卷积码中的一种,只要物理信道确定,则其编码方式唯一确定。4.1.1.2 LTE 中信道编码的一般流程物理信道从上层接收到的传输块 TB(transport block) ,每个子帧最多传输一个 TB,如图 Figure 5.2.2-1 其编码的步骤为: TB 添加 C
3、RC 校验 码块分段及码块 CRC 校验添加 数据和控制信息的信道编码 速度匹配 码块级联 数据和控制信息复用 信道交织Figure 5.2.2-1: Transport channel processing 说明:这是最复杂的编码流程、一般物理信道的编码流程都是它的简化版。4.1.1.3 Tail Biting 卷积码和 Turbo 编码是和物理信道一一对应关系Table 5.1.3-1: Usage of channel coding scheme and coding rate for TrCHsTrCH Coding scheme Coding rateUL-SCHDL-SCHPCHM
4、CHTurbo coding 1/3BCHTail biting convolutional coding咬尾卷积码1/3Table 5.1.3-2: Usage of channel coding scheme and coding rate for control informationControl Information Coding scheme Coding rateDCITail biting convolutional coding咬尾卷积码1/3CFI Block code块编码 1/16HI Repetition code重复编码 1/3Block code块编码 vari
5、ableUCI Tail biting convolutional coding咬尾卷积码1/34.1.2 TB 添加 CRC 校验1. 作用:错误检测原理:它 是 利 用 除 法 及 余 数 的 原 理 来 作 错 误 侦 测 ( Error Detecting) 的 。实 际 应 用 时 , 发 送 装 置 计 算 出 CRC 值 并 随 数 据 一 同 发 送 给 接 收 装 置 , 接 收装 置 对 收 到 的 数 据 重 新 计 算 CRC 并 与 收 到 的 CRC 相 比 较 , 若 两 个 CRC值 不 同 , 则 说 明 数 据 通 讯 出 现 错 误 。 即在传输块 TB
6、的尾部添加 24bit 校验位,24 位校验位是根据该传输块进行 CRC计算得到,在接收端可以将信息码和 CRC 码一起除以生成多项式,若余数不为零则传送错误。2. 具体过程:上行 TB 的错误检测是通过循环冗余校验实现的,整个 TB 被用于计算 CRC奇偶校验比特。记输入的 TB 传输块的比特流为 ,记奇偶校验比特为13210,.,Aaa。A 表示传输块(TB)的大小,L 表示校验位的数目。最低13210,.,Lpp信息位 a0 映射到传输块的最高有效位,具体描述见 Section 6.1.1 of 5。CRC 校验位产生的生成多项式为,这一步使用的是 L=24 的多项式gCRC24A(D)
7、:- gCRC24A(D) = D24 + D23 + D18 + D17 + D14 + D11 + D10 + D7 + D6 + D5 + D4 + D3 + D + 1 and;- gCRC24B(D) = D24 + D23 + D6 + D5 + D + 1 for a CRC length L = 24 and;- gCRC16(D) = D16 + D12 + D5 + 1 for a CRC length L = 16.- gCRC8(D) = D8 + D7 + D4 + D3 + D + 1 for a CRC length of L = 8.CRC 使用的是系统循环码,
8、其整体可表示为多项式: 231213024121230 pDpDaDaAA 该多项式满足被对应 L=24 的多项式, gCRC24A(D) 或 gCRC24B(D)除之后,余数为为 0。 1541450161415 AAyields a remainder equal to 0 when divided by gCRC16(D), and the polynomial: 7678670 ppDaDyields a remainder equal to 0 when divided by gCRC8(D).添加 CRC 之后的比特流可表示为 , 其中 B = A+ L。 ak 和 bk 1321
9、0,.,Bbb的关系为:for k = 0, 1, 2, , A-1kbfor k = A, A+1, A+2,., A+L-1.Ap传输块 TB 的 CRC 添加模块的输入参数为: ,比特流13210,.,Aaa gCRC24A(D) = D24 + D23 + D18 + D17 + D14 + D11 + D10 + D7 + D6 + D5 + D4 + D3 + D + 1生成多项式,已定传输块 TB 的 CRC 添加模块的输出参数为:,输出比特流231213024121230 ppaaAA 4.1.3 码块分段及码块 CRC 校验添加如果传输块 TB 添加 24bits CRC 后
10、,如果长度超过 6144 位,则需要分段,分成多个长度小于 6144 的码块,每个码块的长度根据协议重新定义(不一定长度相等) 。然后在对每个码块重新进行 CRC 计算添加 24bits 校验位,与上步不同的是使用的 CRC 生成多项式为gCRC24B(D) = D24 + D23 + D6 + D5 + D + 1 for a CRC length L = 24具体过程如下:记输入码块分段的比特流为 ,其中 B=L+A 是传输块添加13210,.,BbbCRC 后的总长。如果 B 的长度大于一个传输块的最大值 Z=6144,则码块必须分段,并对每一个分段后的码块进行 CRC 冗余添加。在下列
11、计算中如果填充比特 F 大于 0,则填充比特添加到第一个码块的开始端。如果 B 小于 40,填充比特添加到码块的开始位置。在编码器的输入端,填充比特将被设置为空。码块分段的过程如下:1. 传输块分段的块数 C 的计算if ZBL = 0Number of code blocks: 1CBelseL = 24Number of code blocks: . -向上取整,得到码块数LZBC/-码块分段后,还必须对每个码块添加 24 位 CRC,其最CB后的总长是 Bend if2. 确定每个码块的长度在得到需要分段的码块数后,即码块数 C 已经确定,接下就要确定每个码块的长度记码块编号为 , 其中
12、 r 是码块号,K r 是第 r 个码块13210,.,rKrrcc所包含的比特数目。则各个码块的长度计算过程如下:第一个码块的长度: = minimum K in table 5.1.3-3 such that BKC- 即满足 ,在表 5.1.3-3 中的最小的 K 的值,BC查表if -若 C=1,即码块的长度 K 等于传输块的长度(加 CRC1C后)the number of code blocks with length is =1, , C0KCelse if -若 C11第二个码块的长度: ,为表中满足 的最大的值,查表KKSecond segmentation size: =
13、maximum K in table 5.1.3-3 such that K-第一块和第二块的长度差值长度为 的码块的个数:Number of segments of size : .KKBC长度为 的码块的个数:KNumber of segments of size : .end if需要填充的比特数:Number of filler bits: BKCF填充在第 0 个编号的码块的的前 F 个位置,填充空符号for k = 0 to F-1 - Insertion of filler bitsNULcend for从第 0 个码块的第 F 个位置开始,按增序依次将数据填充到各个分段后的码块
14、(码块增序)码块顺序重排,先填充头 C_个码块,前 C_个码块的长度为 ,然后再是KC+个码块( 长度为 )K注意:每个码块的后 24 位必须预留给 CRC 校验位,数据不能占用。k = Fs = 0for r = 0 to C-1if Krelse rend if每个码块必须添加 CRC 校验位,位置在每个码块的后 24 位,生成多项式为 gCRC24B(D)while LKkrsbc1ksend whileif C 1 The sequence is used to calculate the CRC parity 13210,.,LKrrrccbits according to subc
15、lause 5.1.1 with the generator 210,.,Lrpppolynomial gCRC24B(D). For CRC calculation it is assumed that filler bits, if present, have the value 0.while rKk)(Lrpc1kend whileend if0kend for这样之后,便形成了总数目为 C 的码块,分成两部分, ,码块C的编号的顺序为 0,1, -1, , + ,前 个码块的长度为 , K后 个码块的长度为 。CK出来的码块 ,其中 r 表示码块号,K r 表示该码块的长度13210
16、,.,rrrcc或者是 。K码块分段的输入参数: ,B=L+A,L=24,即 TB 添加 CRC 后的比特流,13210,.,Bbb,输出比特流23121302412 pDpDaDaAA gCRC24B(D) = D24 + D23 + D6 + D5 + D + 1 for a CRC length L = 24 ,生成多项式码块分段的输出参数: ,r=0.C13210,.,LKrrrcc4.1.4 数据和控制信息的信道编码4.1.4.1 数据的信道编码( Turbo 编码和咬尾卷积码)4.1.4.1.1 Turbo 编码Turbo 码:并行级联卷积码,2 个 8 状态子编码器 1 个 Tu
17、rbo 码内交织器DDDDDDI n p u t T u r b o c o d e i n t e r n a l i n t e r l e a v e rO u t p u tO u t p u t1 s t c o n s t i t u e n t e n c o d e r2 n d c o n s t i t u e n t e n c o d e rkckkxkxzkzTurbo 编码器的 8 状态子编码器的传递函数为: G(D) = )(,10g,其中,g 0(D) = 1 + D2 + D3, g1(D) = 1 + D + D3. 编码开始时,8 状态子编码器的移位寄存器
18、的初始值置 0。Turbo 编码器的输出为如下三个比特流:kxd)0(z1k)2(尾比特是要在信息比特编码之后添加的,要获得尾比特 (作用:使编码器回到初始状态 0.)首先,第二个子编码器(RSC)禁用,第一个子编码器中的开关打到低端和虚线相连,在编码器的输入端依次 3 个比特,这时按照编码器中的反馈及相关的运算可以依次得到 6 比特的输出然后,第一个子编码器(RSC)禁用,第二个子编码器中的开关打到低端和虚线相连,在编码器的输入端依次 3 个比特,这时按照编码器中的反馈及相关的运算可以依次得到 6 比特的输出将得到的 12 个比特的输出按照协议中给定的顺序排列便可以得到最终的尾比特输出。,
19、, , Kxd)0( 1)0(KzKxd)0(21)0(3Kz, , , z11xz21x, , , )2(2)()()(3d具体过程:码块的下一步处理就是信道编码, ,r 表示码块数,13210,.,KrrccKr 表示码块的长度,码块总数为 C,每一个码块将进行 turbo 编码。经过编码器编码以后,比特流可以表示为 ,)(1)(32)(1,.,iDririrdd表示三个编码后的比特流, 表示第 i 个编码流的长度,2 and,10i rD。4rKDTurbo 编码过程为:1. Turbo 编码器上行共享信道 Turbo 编码器采用的是并行级联卷积编码,它使用的是两个8 状态子编码器和一个
20、 Turbo 码内交织器, Turbo 码的编码效率是 1/3。Turbo 编码器的结构图如下:Turbo 编码器的 8 状态子编码器的传递函数为: G(D) = )(,10g,其中,g 0(D) = 1 + D2 + D3, g1(D) = 1 + D + D3. 编码开始时,8 状态子编码器的移位寄存器的初始值置 0。Turbo 编码器的输出为如下三个比特流:kxd)0(z1k)2(for .1,.0K如果输入的码块是第 0 个码块,又前面我们知道,第 0 个码块中可能存在F 个空填充比特。若存在,则将第 0 个码块的前 F 个比特置 0 输入到编码器,即 ck, = 0, k = 0,(
21、F-1)。同时其输出应该设置为 , k = 0,(F-1) 和NULdk)0(, k = 0,(F-1) 。 NULd)1(记输入到 Turbo 的编码器的比特流表示为 ,第一和第二个13210,.,Kcc编码器输出比特流可表示为, 和 。Turbo 内部3210,.,Kzz ,zz交织器输出表示为 ,交织器的输出比特送入第二个 8 状态的子编码器。10,.KcIf the code block to be encoded is the 0-th code block and the number of filler bits is greater than zero, i.e., F 0,
22、then the encoder shall set ck, = 0, k = 0,(F-1) at its input and shall set , k = 0,(F-1) and , k = 0,(F-1) at NULdk)0( NULd)1(its output. The bits input to the turbo encoder are denoted by , and the bits 13210,.,Kcoutput from the first and second 8-state constituent encoders are denoted by and , res
23、pectively. The bits output from the turbo 13210,.,Kzz 13210,.,Kzzcode internal interleaver are denoted by , and these bits are to be the input 10.Kcto the second 8-state constituent encoder.DDDDDDI n p u t T u r b o c o d e i n t e r n a l i n t e r l e a v e rO u t p u tO u t p u t1 s t c o n s t i
24、 t u e n t e n c o d e r2 n d c o n s t i t u e n t e n c o d e rkckckxkxzkzFigure 5.1.3-2: Structure of rate 1/3 turbo encoder (dotted lines apply for trellis termination only)2. turbo 码尾比特的添加当一个码块的所有信息位编码完成时,将移位寄存器的值反馈到编码器输入端继续进行编码,进行 3 次编码,3*4=12 位比特,得到的尾比特添加到信息位编码的后面。前三位尾比特用来结束第一个子编码器,如上图,将输入接口到
25、虚线上,得到 2*3=6 位输出,在第一个子编码器进行尾比特编码时,第二个编码器停止工作。第一个编码器结束后,进行第二个编码器的尾比特生成,同样得到 6bits信息。这 12 位信息的最终在输出端可表示如下顺序:, , , Kxd)0( 1)0(KzKxd)0(21)0(3Kz, , , z11xz21x, , , )2(2)()()(3d3. Turbo 码交织器Turbo 码的内交织器输入比特可表示为 ,其中 K 是输入码块的比10,.Kc特的数目。Turbo 码内交织器的输出比特表示为 。10,.输入比特和输出比特之间的关系是:, i=0, 1, (K-1)ic其中,输出序号 i 和输出
26、序号 的关系满足如下二次形式,即:)(ifiimod)(21参数 和 取决于块的大小 K 值,如下表所示:12fTable 5.1.3-3: Turbo code internal interleaver parametersTable 5.1.3-3: Turbo code internal interleaver parametersi Ki 1f2i Ki 1f2i Ki 1f2i Ki 1f21 40 3 10 48416 25 52 95 112067 14014232001112402 48 7 12 49424 51 10696 115235 72 14332644432043
27、56 19 42 50432 47 72 97 118419 74 144332851 1044 64 7 16 51440 91 11098 121639 76 145339251 2125 72 7 18 52448 29 16899 124819 78 14634564511926 80 11 20 53456 29 114100128019924014735202572207 88 5 22 54464 24758 101131221 82 148358457 3368 96 11 24 55472 29 118102134421125214936483132289 1047 26 5
28、6480 89 180103137621 86 15037122712321011241 84 57488 91 122104140843 88 15137761792361112010390 58496 15762 105144014960 15238403311201212815 32 59504 55 84 106147245 92 1533904363244131369 34 60512 31 64 107150449 84615439683752481414417 10861528 17 66 108153671 48 1554032127168151529 38 62544 35
29、68 109156813 28 156409631 641616021 12063560 227420110160017 80 157416033 1301716810184 64576 65 96 111163225 102158422443 2641817621 44 65592 19 74 1121664183104159428833 1341918457 46 66608 37 76 113169655 95416043524774082019223 48 67624 41 234114172812796 161441635 1382120013 50 68640 39 80 1151
30、76027 11016244802332802220827 52 69656 18582 116179229 11216345443571422321611 36 70672 43 252117182429 11416446083374802 22 27 56 7 688 21 86 11 185 57 11 16 467 37 144 4 1 8 6 6 5 2 62523285 58 72704 15544 119188845 354166473671 4442624029 60 73720 79 120120192031 120167480071 1202724833 62 74736
31、13992 121195259 610168486437 1522825615 32 75752 23 94 1221984185124169492839 4622926417 19876768 21748 123201611342017049921272343027233 68 77784 25 98 124204831 64 171505639 1583128010321078800 17 80 125211217 66 172512039 803228819 36 79816 1271021262176171136173518431 963329619 74 80832 25 52 12
32、7224020942017452481139023430437 76 81848 2391061282304253216175531241 1663531219 78 82864 17 48 129236836744417653762513363632021 12083880 1371101302432265456177544043 1703732821 82 84896 2151121312496181468178550421 863833611584 85912 29 114132256039 80 179556843 1743934419386 86928 15 58 133262427
33、 164180563245 1764035221 44 87944 1471181342688127504181569645 1784136013390 88960 29 60 135275214317218257601611204236881 46 89976 59 122136281643 88 183582489 1824337645 94 90992 65 124137288029 30018458883231844438423 48 91100855 84 138294445 92 185595247 1864539224398 92102431 64 139300815718818
34、6601623 944640015140 93105617 66 140307247 96 187608047 19047408155102941088171204141313613 28 1886144263480信道编码 Turbo 编码模块的 输入参数: ,共 C 个码块,依次独立进行 Turbo 编码13210,.,rKrrcc信道编码 Turbo 编码模块的 输出参数: , ,)(1)(32)(10,.,iDririrdd2 and,0i 4rKD4.1.4.1.2 咬尾卷积码4.1.4.2 控制信息的编码当控制信息与数据传输复用在一起时,控制信息的编码速率由 UL-SCH 传输所使
35、用的调制方式和编码速率决定。控制信息的不同编码速率通过向其传输分配不同数目的编码符号来获得。 要进行编码单元的控制信息有,CQI and/or PMI, HARQ-ACK and rank indication。当控制信息在 PUSCH 中传输时, HARQ-ACK, rank indication and channel quality information 的编码分别独立进行。1210,.,Oo对于 TDD,有两种 ACK/NACK 反馈模式,通过高层可以进行配置:- ACK/NACK bundling and ACK/NACK multiplexing ACK/NACK bundlin
36、g,模式时, HARQ-ACK 由 1 或者 2bits 信息组成;ACK/NAK multiplexing 模式, HARQ-ACK 由 14 bits 信息构成,(详情可参考物 TS36214 7.3 UE procedure for reporting ACK/NACK)当 UE 传输 HARQ-ACK bits or rank indicator bits 时,应该确定 HARQ-ACK or rank indicator 编码的符号数 Q对于 ACK/NAK,输出的编码比特为 ACKQACKqq110,.,CQI 编码后的序列为: 3210.,CIRI 编码后的序列为: RIQIRq
37、1.具体编码过程如下协议所示: PUSCHscCrPUSCHofsetintalPUSHsymbintalPUSHsc MKNMOQ4,min10where is the number of ACK/NACK bits or rank indicator bits, is the scheduled PSscbandwidth for PUSCH transmission in the current sub-frame for the transport block, expressed as a number of subcarriers in 2, and is the number o
38、f SC-FDMA symbols per intal-PUSCHsymbsubframe for initial PUSCH transmission for the same transport block given by , where is equal to 1 if UE is configured to send SRULsymbintal-PUSCHsymb12NNSRPUSCH and SRS in the same subframe for initial transmission or if the PUSCH resource allocation for initia
39、l transmission even partially overlaps with the cell specific SRS subframe and bandwidth configuration defined in Section 5.5.3 of 2. Otherwise is equal to 0. SRN, , and are obtained from the initial PDCCH for the same transport block. If intalPUSCHscMrKthere is no initial PDCCH with DCI format 0 fo
40、r the same transport block, , , and intalPUCHscMshall be determined from:rKthe most recent semi-persistent scheduling assignment PDCCH, when the initial PUSCH for the same transport block is semi-persistently scheduled, or, the random access response grant for the same transport block, when the PUSC
41、H is initiated by the random access response grant.For HARQ-ACK information and , where QmACKACKHRQofsetPUSCofsetACKHRQofsetshall be determined according to 3.For rank indication and , where shall be determined QRI RIfstSHofsetIfstaccording to 3.4.1.4.2.1 HARQ-ACK 信息的编码上行共享信道 PUSCH 中 ACK 信道编码一个肯定 AC
42、K 编码为二进制数 1,一个否定的 ACK 编码为二进制数 0对于 TDD ACK/NACK 的绑定 (子帧绑定后就可以用一个 ACK 做为这个绑定子帧的反馈,这样就能保证每个子帧都有对应的 ACK 反馈,且节省资源) ,HARQ-ACK 包含一个或两个比特。对于 TDD ACK/NACK 的复用,HARQ-ACK 包含一个到四个比特。1 如果 HARQ-ACK 包含 1 比特信息,例如 ,首先按照表格进行编码0ACKoTable 5.2.2.6-1: Encoding of 1-bit HARQ-ACKQm Encoded HARQ-ACK2 y0ACK4 xo62 如果 HARQ-ACK
43、包含 2 比特信息,例如 ,对于传输一子帧两个码字时, 10ACK对应于码字 0 的应答信息 对应于码字 1 的应答信息;对于捆绑和复用0ACKoo1的产生是不一样的,具体详见 4.15.1 下行链路 HARQ 过程。按照表格进行编 1码,其中 。2md) (102ACKoTable 5.2.2.6-2: Encoding of 2-bit HARQ-ACKQm Encoded HARQ-ACK2 210210 ACKACKAoo4 xx xCKA6 10o在表格中的 x 和 y 是预留位,是为了通过一种方法最大化扰乱携带 HARQ-ACK 信息的调制符号间的距离这么做的目的是什么?对于 TD
44、D ACK-NACK 绑定,一个过渡性的比特序列 是通过ACKQACKqq1210,.,级联复用编码 HARQ-ACK 块来获得的,举个例子来讲,对于 HARQ-ACK 包含 2 比特信息,Q m=2 的情况下, = , = .类推下去, 是所有编码ACKq0oACKq1oHARQ-ACK 块的编码比特总数目 。我个人认为当 Qm=2 时 =6n,ACK当 Qm=4 时 =12n,当 Qm=6 时 =18n,这里的 n 都是正整数。ACK这样才可以保证 与表格一一对应。QACKACKqq1210,.,一个加扰序列 从表格中选取w3Table 5.2.2.6-A: Scrambling sequ
45、ence selection for TDD ACK/NACK bundlingiACKACKw32100 1 1 1 11 1 0 1 02 1 1 0 03 1 0 0 1这里 。参数 ?4modbundleNi bundleN如果 HARQ-ACK 包含 1 比特,则 参数 m=1,如果 HARQ-ACK 包含 2 比特,则参数m=3。 与上面表格的联系是:ACKQACKqq1210,., Set i ,k to 0while Qif / place-holder repetition bityAi2mod/1ACKkiCKi wq去掉 yk4)(elseif / a place-hol
46、der bitxqACKi保留 x,这里 x,y 为什么这么处ii理? else / coded bit2mod/ACKkiACKi wqk4)1(end ifi最后的结果 应该是 0 或 1 或 x 的值。ACKiq对于 HARQ-ACK 包含大于 2 比特信息的情况,例如 , , 110ACKOACKo 2ACK这里 对应于码字 0 的应答信息 对应于码字 1 的应答信息,依次类推下去。 0oACKo1的得到的计算公式为:ACKii=0,1,. Q ACK-1 Mi,n 是表格 5.2.2.6.4-1.10,32modAOnniCKi Mq中对应的确定的值。最后输出信道编码的向量序列是一个
47、长度为 Qm 的由 0 或 1 或 x 组成的列向量。其表达方式为Set i ,k to 0while ACKQTQiikmqq. 1i1涉及到的参数number of coded symbols Q PUSCHscCrPUSCHofsetintalPUSHsymbintalPUSHsc MKNMOQ4,min10is the number of ACK/NACK bits or rank indicator bitsis the scheduled bandwidth for PUSCH transmission in the current sub-frame for the PUSCHs
48、ctransport blockis the number of SC-FDMA symbols per subframe for initial PUSCH transmission intal-symbNfor the same transport block given by SRULsymbintal-PUSCHsymb12NN, , , and SRintalPUSCHscMrKQmAKRI, ofsetofset4.1.4.2.2 rank indication (RI)的编码对于上行共享信道传输的 RI 反馈的比特带宽是明确规定的。在表格 5.2.2.6.1-2, 5.2.2.6.2-3, 5.2.2.6.3-3, 5.2.3.3.1-3 and 5.2.3.3.2-4 中给出1 如果 RI 包括 1 比特信息,例如 ,它首先按照表格编码0RIoTable 5