第十三章Turbo码Shannon理论证明,随机码是好码,但是它的译码却太复杂。因此,多少年来随机编码理论一直是作为分析与证明编码定理的主要方法,而如何在构造码上发挥作用却并未引起人们的足够重视。直到1993年,Turbo码的发现,才较好地解决了这一问题,为Shannon随机码理论的应用研究奠定了基础。Turbo码,又称并行级连卷积码(PCCC),是由C.Berrou等在ICC’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。本章首先介绍Turbo码的提出与构成原理;介绍迭代反馈译码算法(包括AWGN信道与Rayleigh衰落信道下的译码);然后针对Turbo码编译码特性,对几个问题进行了说明;最后介绍Turbo码在3GPP中的具体应用。§13.1Turbo码的提出Turbo码,又称并行级连卷积码(PCCC),是由C.Berrou等在ICC’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。模拟结果表明,如果采用大小为65535的随机交织器,并且进行18次迭代,则在ENb/00.7dB时,码率为1/2的Turbo码在AWGN信道上的误比特率(BER)105,达到了近Shannon限的性能(1/2码率的Shannon限是0dB)。因此,这一超乎寻常的优异性能,立即引起信息与编码理论界的轰动。图13-1中给出了Turbo码及其它编码方案的性能比较,从中可以看出Turbo编码方案的优越性。由于Turbo码的上述优异性能并不是从理论研究的角度给出的,而仅是计算机仿真的结果。因此,Turbo码的理论基础还不完善。后来经过不少人的重复性研究与理论分析,发现Turbo码的性能确实是非常优异的。因此,turbo码的发现,标志着信道编码理论与技术的研究进入了一个崭新的阶段,它结束了长期将信道截止速率0R作为实际容量限的历史。需要说明的是,由于原Turbo编译码方案申请了专利,因此在有关Turbo码的第一篇文章中,作者没有给出如何进行迭代译码的实现细节,只是从原理上加以说明。此后,P.Robertson对此进行了探讨,对译码器的工作原理进行了详细说明。人们依此进行了大量的模拟研究。Turbo码的提出,更新了编码理论研究中的一些概念和方法。现在人们更喜欢基于概率的软判决译码方法,而不是早期基于代数的构造与译码方法,而且人们对编码方案的比较方法也发生了变化,从以前的相互比较过渡到现在的均与Shannon限进行比较。同时,也使编码理论家变成了实验科学家。图13-1AWGN信道中的码率与Shannon限关于Turbo码的发展历程,C.Berrou等在文[4]中给出了详细的说明。因为C.Berrou主要从事的是通信集成电路的研究,所以他们将SOVA译码器看作是“信噪比放大器”,从而将电子放大器中的反馈技术应用于串行级联的软输出译码器,并且为了使两个译码器工作于相同的时钟,以简化时钟电路设计,就提出了并行级联方式,这导致了Turbo码的发明。尽管目前对Turbo码的作用机制尚不十分清楚,对迭代译码算法的性能还缺乏有效的理论解释,但它无疑为最终达到Shannon信道容量开辟了一条新的途径,其原理思想在相关研究领域中具有广阔的应用前景。目前,Turbo码被看作是1982年TCM技术问世以来,信道编码理论与技术研究上所取得的最伟大的技术成就,具有里程碑的意义。§13.2Turbo码编码器的组成Turbo码编码器是由两个反馈的系统卷积码编码器通过一个随机交织器并行连接而成,编码后的校验位经过删余阵,从而产生不同码率的码字。见图13-2。图13-2所示的是典型的Turbo码编码器框图,信息序列u={u1,u2,…,uN}经过一个N位交织器,形成一个新序列u1=},...,,{''2'1Nuuu(长度与内容没变,但比特位置经过重新排列)。u与u1分别传送到两个分量码编码器(RSC1与RSC2),一般情况下,这两个分量码编码器结构相同,生成序列Xp1与Xp2。为了提高码率,序列Xp1与Xp2需要经过删余器,采用删余(puncturing)技术从这两个校验序列中周期地删除一些校验位,形成校验位序列Xp。Xp与未编码序列Xs经过复用调制后,生成了Turbo码序列X。例如,假定图13-2中两个分量编码器的码率均是1/2,为了得到1/2码率的Turbo码,可以采用这样的删余矩阵:P[10,01],即删去来自RSC1的校验序列Xp1的偶数位置比特与来自RSC2的校验序列Xp2的奇数位置比特。图13-2Turbo码编码器结构框图例13.1一个码率为1/3的Turbo码:图13-3一个码率为1/3的Turbo码编码器图13-3所示的是基于(2,1,4)RSC(递归卷积系统码)的Turbo码编码器。分量码是码率为1/2的寄存器级数为4的(2,1,4)RSC码,其生成矩阵为:]11,1[)(4324DDDDDDG(13.2.1)我们假设输入序列为:)1011001(c(13.2.2)则第一个分量码的输出序列为:)1110001()1011001(10vv(13.2.3)假设经过交织器后信息序列变为:)1101010(~c(13.2.4)第二个分量码编码器所输出的校验位序列为:信息序列u分量码编码器(RSC1)分量码编码器(RSC2)交织器删余复用XsXpX2pX1pX1u++++Interleavercc~0v1v2v)1000000(2v(13.2.5)则Turbo码序列为:)110,000,000,100,110,010,111(v(13.2.6)§13.3Turbo码的译码一.Turbo码的迭代译码原理由于Turbo码是由两个或多个分量码对同一信息序列经过不同交织后进行编码,对任何单个传统编码,通常在译码器的最后得到硬判决译码比特,然而Turbo码译码算法不应限制在译码器中通过的是硬判决信息,为了更好的利用译码器之间的信息,译码算法所用的应当是软判决信息而不是硬判决。对于一个由两个分量码构成Turbo码的译码器是由两个与分量码对应的译码单元和交织器与解交织器组成,将一个译码单元的软输出信息作为下一个译码单元的输入,为了获得更好的译码性能,将此过程迭代数次,这就是Turbo码译码器的基本的工作原理。二.Turbo码译码器的组成Turbo码译码器的基本结构如图13-4所示。它由两个软输入软输出(SISO)译码器dec1和dec2串行级连组成,交织器与编码器中所使用的交织器相同。译码器dec1对分量码RSC1进行最佳译码,产生关于信息序列u中每一比特的似然信息,并将其中的“外信息”经过交织送给dec2,译码器dec2将此信息作为先验信息,对分量码RSC2进行最佳译码,产生关于交织后的信息序列中每一比特的似然比信息,然后将其中的“外信息”经过解交织送给dec1,进行下一次译码。这样,经过多次迭代,dec1或dec2的外信息趋于稳定,似然比渐近值逼近于对整个码的最大似然译码,然后对此似然比进行硬判决,即可得到信息序列u的每一比特的最佳估值序列u。交织解交织软输入软输出译码器DEC1L(un)yp交织demuxysy1p延时y2p解交织+判决w(ys)软输入软输出译码器DEC2eL21~Le21Le12)~(21eLwkuˆ图13-4Turbo码译码器的结构假定Turbo码译码器的接收序列为),(psyyy,冗余信息py经解复用后,分别送给dec1和dec2。于是,两个软输出译码器的输入序列分别为:dec1:),(1psyyy1,dec2:),(2psyyy2为了使译码后的比特错误概率最小,根据最大后验概率译码(MAP)准则,Turbo译码器的最佳译码策略是,根据接收序列y计算后验概率(APP)),|()(21yykkuPuP。显然,这对于稍微长一点的码计算复杂度太高。在Turbo码的译码方案中,巧妙地采用了一种次优译码规则,将1y和2y分开考虑,由两个分量码译码器分别计算后验概率),|(1ekuPLy1和),|(2ekuPLy2,然后通过dec1和dec2之间的多次迭代,使它们收敛于MAP译码的),|(21yykuP,从而达到近Shannon限的性能。这里,e1L和e2L为附加信息,其中e1L由dec2提供,在dec1中用作先验信息,e2L由dec1提供,在dec2中用作先验信息。关于),|(1ekuPLy1和),|(2ekuPLy2的求解,目前已有多种方法,它们构成了Turbo码的不同译码算法。下面将以BCJR的前向-后向MAP软输出算法为例来讨论Turbo码的译码。三.分量码的最大后验概率译码(MAP算法)考虑图13-5所示的软输入软输出(SISO)译码器,它能为每一译码比特提供对数似然比输出。图13-5软输入软输出译码器框图图中MAP译码器的输入序列为yy112NkNyyyy(,,,,),其中yyykkskp(,)。Luek()是关于uk的先验信息,Luk()是关于uk的对数似然比。对于BPSK调制,它们的定义如下:(1)()ln(1)ekkkPuLuPu(13.3.1)Luek()MAP译码器yksykpLuk()11(1|)()ln(1|)NkkNkPuLuPuyy(13.3.2)假定发送端RSC编码器的存储级数为v,约束长度为K,编码器在k时刻的状态为Saaakkkkv(,,,)11,编码输出序列为xxx(,)sp。传输信道模型如图13-6所示。从图13-6可知,(12)ssssssskkkkkkskyacnaxEn(13.3.3)(12)pppppppkkkkkkskyacnaxEn(13.3.4)图13-6信道模型式中pkskaa和为信道衰落因子,对于AWGN信道,1pkskaa。nnkskp和是两个独立同分布的高斯噪声样值,它们的均值为0,方差202N/。MAP译码器的任务就是求解式(13.3.3),然后按照下列规则进行判决:0,()0ˆ1,()0kkkLuuLu(13.3.5)下面利用BCJR算法对式(13.3.2)的计算方法进行推导。根据Bayes规则,式(13.3.2)可以写为:1111(1,)/()()ln(1,)/()NNkkNNkPupLuPupyyyy111(,)1111(,)1(,,)/()ln(,,)/()kkNNkkssuNNkkssupSsSsppSsSspyyyy(13.3.6)上式中,求和是对所有由uk=+1即xk=0(或uk=–1即xk=1)引起的SSkk1的状态转移进行的。根据BCJR算法[12],pSsSskkN(',,)11y可以按下式计算:QPSK调制器skxpkxpkcskypkyskcskapkasknpknpsspspsyspsNkkkN(',,)(',)(,|')(|)yyy1111kkkssss1(')(',)()(13.3.7)其中,kkkspSs()(,)y1为前向递推,kkNkspSs()(|)y1为后向递推,kkkksspSsySs(',)(,|')1为s’和s之间的分支转移概率。下面求kkkssss(),()(',)和。由定义得kkkksspSsSs()(,',)'11ypSspSsySskkkkkks(',)(,|',)'111111yy(13.3.8)考虑到RSC编码器等效于一个马尔可夫源,在状态Sk-1已知时,k-1时刻以后发生的事件与以前输入无关。因此,从式(13.3.8)可得前向递推公式kkkkkssspSsySs()(')(,|')'11kkssss1(')(',)'(13.3.9)同样,ks()可按下式反向递推得到kkkNksspSsSs