Turbo码及其在第3代移动通信中的应用(下)

发布时间:2003-11-26 作者:中兴通讯 阅读量:

2 Turbo码的关键技术

  2.1 Turbo码的编码器结构


图5 Turbo码编码器

  图5描述的是一个标准Turbo码编码器。由图可以看出,Turbo码由两个码率均为1/2的卷 积码并行级联组成,总码率为1/3。信息序列dk经过子编码器1产生C1(uk1,vk1),信息位uk1和冗余位vk1;同时经过交织器乱序后再进入子编码器2产生C2(uk2,vk2),其中信息位uk2为不发送位,而只发送冗余位vk2。于是,一个长为N的信息序列,经过编码后长为3N。


图6 RSC卷积码K=3,R=1/2

  Turbo码的子编码器可以采用各种编码方法,最常用的反馈系统卷积码(RSC),具有和前馈非系统码(NSC)相同的最小距离,并且进一步的研究表明[2],只有在高信噪比、码率小于 或等于2/3时,NSC码所表现出来的性能才略好于RSC码,而在其他情况下RSC码的性能总是优于NSC码。RSC码经常用生成多项式的比值(ga/gb)来描述,ga表示检验多项式,gb表示反馈多项式。为简单起见,这个比值通常以八进制形式给出。例如图6所示为约束长度K=3的4 状态RSC编码器,检验多项式为ga(D)=1+D2或(5)8,反馈多项式为gb(D)=1+D+D2或(7)8, 因此生成式为(5/7)8。当输入为dk时,对应的输出(uk,vk) 等于:

  其中 

  需强调设计Turbo码时,在大信噪比的情况下应尽可能选择最小码重最大的码字;而在小信噪比的情况下,这也是我们最感兴趣的,选择最优码重分布的码字比选择最小码重最大 的码字更重要。由图5所示编码器产生的Turbo码的码重,很大程度上依赖于如何合并来自两个子编码器输出的码字。直觉上,应该尽量避免将两个低码重的码字进行合并。这可以通过设计一个好的交织器来实现。交织器可以改变输出码码重的分布,当然这是对RSC而言;若是NSC,交织器对它的码重分布不会产生任何影响。

  2.2 交织器的设计

  Turbo码中交织器的主要作用是重置输入信息序列的比特顺序,使交织前后的序列相关性减小。

  好的交织器应能把低重量的输入序列中连续 "1"的比特分散,当信息序列经子编码器1 编码后得到的校验码重较低时,交织器应能使信息序列在交织后进入子编码器2编码后输出的 校验码有较高码重,从而保证总的编码输出码重。通常Turbo码的自由距离并不大,但由于 交织器的作用,使得Turbo码与卷积码相比其重量相近的码字数目要少得多,从而使得在一 定条件下Turbo码的译码差错率比卷积码的差错率低。下面介绍几种常用交织器的设计方法 。

  (1)分块交织器。这种交织器是按行顺序写入,按列顺序读出(I型),或列的倒序读出(II型)。如对m行n列信息比特,其输入顺序是:d11 d12 ...d1n d21 d22...d2n ......dm1 dm2 ... dmn,I型读出的顺序为:d11 d21 ...dm1 d12 d22...dm2......d1n d2n ...dmn,II 型读出的顺序是:dmn dm-1 n ...d1n dm n-1 dm-1 n-1 ...d1 n-1 ......dm 1 dm-1 1...d11。这种交织器并没有做到完全无序,但实际效果还是较好的。但当出现一个 矩形错误模式时(每个方向上错误大于dmin/2),解码就会完全失败。

  (2)伪随机交织器。它反映的实际上是一种映射关系。其工作过程是:设dk(k=0,1,…,N -1)是需要乱序的数据序列,以一维数组的形式存贮。以随机的顺序将dk一个一个地送入另 一个数组,于是就得到了经过乱序的数组。为了乱序数据序列,需要引入一个索引数组,其 存放0~N~1之间的N个随机数,分别对应N个随机地址,并且其间的每一个数据都必须出现 且仅出现一次。整个交织过程示于图7。伪随机交织器的随机性取决于随机数的产生方式。


图7 伪随机交织器

  还有很多种交织器设计方式,这里不一一列举。当然,有时也考虑使用几个交织器,或者将几种不同交织器交织的思想结合,以得到较好的交织效果,降低交织前后序列的相关性。

  2.3 凿孔技术

  两个子编码器的输出符号经过凿孔处理后才形成最终的Turbo码码字。凿孔技术是通过 周期性地删除冗余位来提高码率的,且所得码的性能与其他同码率的码相同。因此,没有必 要为各种码率设计相应的编码/解码器,而可以通过对已获得的基本低码率的码采用凿孔技 术来获得各种码率,从而设计出码率可变的编码/解码器。

  2.4 译码算法的简化与优化

  如前所述,软解码比硬解码更好地利用了接收信号所包含的信息,因此表现出更优越的 性能。Turbo码采用了软解码,而且为了适合迭代算法,解码器的输入和输出都是“软”的 ,即软输入软输出(SISO)。SISO解码单元如图2所示,这里就不再赘述。

  众所周知,维特比算法是实现码字或序列差错概率最小的极大似然算法。遗憾的是,维 特比算法并不能为每一比特提供后验概率或软判决输出。这里介绍一种实现最小位错概率的极大似然算法。该算法由Bahl等人首先提出,经Berrou等人改进后用于RSC码的译码[2]。

  首先定义联合概率Λik(m)=P{dk=i,Sk=m|RN1}。其中,Sk为k时刻所处的状态,RN1为k= 1~N时间内接收到的序列。这样,得到译码数据位dk的后验概率为,i=0,1,其对数似然函数为后验概率的比值取对数,即:

由此得到判决器:如果L(k)>0判k=1,如果L(k)<0判k=0。

  对于一个系统码,如前式(9)和(10)所描述的,每一个数据位k的对数似然比L(k)是译码器输出k的对数似然比和译码器产生的外信息的和。考虑由图5产生的Turbo码,其经过AW GN信道后,进入译码器的序列可分为两部分:系统信息位xk和冗余信息位yk。译码器如图8示,其译码过程是:冗余信息位yk解复用后yk1送子解码器1,yk2送子解码器2。在没有接收 到某一子编码器输出的冗余信息位的时刻,相应子解码器的输入端置0。这里要强调的是,子解码器1后面有一个交织器,其必须与编码器中两个子编码器之间的交织器相同。这是因 为,子解码器1输出的序列是未交织的序列,而子解码器2的输入序列却要求是交织后的序列 。详细的迭代译码算法以及软判决可参见前面第1部分的SISO单元。


图8 Turbo码译码器

  3 Turbo在第3代移动通信系统中的应用

  Turbo码以其强大的纠错能力和灵活性,在现在及以后的通信系统中将会得到广泛的应用。WCDMA、cdma2000以及TD-SCDMA等标准都选择将Turbo码作为其信道编码方案的一个重要组成部分。对较高速率的信道,用Turbo码比较起传统的卷积码来,其对信噪比的要求更低。因此,Turbo码用在高速率信道,卷积码用在公用信道和低速率信道中。

  在cdma2000系统中,Turbo码仅用在主要支持数据业务(突发)的前向补充信道(F-SCH) 和后向补充信道(R-SCH)中[5]。Turbo码采用两个系统卷积码(RSC)并行级联,编码率可以 是1/2、1/3和1/4。RSC的生成多项式是G=[1,15/13,17/13]。具体的编码结构如图9所示。


图9 cdma2000的信道编码结构

  WCDMA系统中采用了对不同QOS要求的业务进行不同的信道编码的策略[6]。标准业务仅 采用卷积编码,高质量业务在卷积编码的基础上增加RS编码或采用Turbo码的编码方法,而 对特定业务则在第一层不采用纠错编码而完全由高层来采取差错控制,这样处理的结果使得 各种业务变化为同一种数据。具体的编码结构如图10所示。


图10 WCDMA/TD-SCDMA的信道编码结构

  TD-SCDMA系统的编码方案与WCDMA系统相似。根据不同业务种类的质量要求,将业务质 量要求分为两个等级:误码率(BER)分别为10-3和10-6。其信道编码的原则是:对于BER要 求在10-3量级的业务,采用卷积码编码方式;对于BER要求在10-6量级的业务,采用级联 码编码方式。其中级联码可以是Reed-Solomon码与卷积码组成的串行级联,或是特殊卷积 码组成的并行级联码,即Turbo码。Turbo码的编码速率在1/4和3/5之间。具体的编码结构如图10所示。

  4 结束语

  Turbo码研究涉及的关键技术很多,主要包括子编码器的选择、交织器的设计以及译码 算法简化优化等。由于受到迭代译码算法复杂性和译码时延的限制,Turbo码目前还不能使 用在实时性要求较高的业务中,但随着Turbo关键技术研究的突破和硬件计算速度及工艺水 平的提高,我们有理由相信,Turbo码必将取代现行的串行级联码,而成为以后移动通信系 统中高质量、高速率数据业务的首选编码方案。

  参考文献

1 G D Forney.Concatenated codes.Cambridge, MA: MIT Press, 1966
2 C Berrou, A Glavieux, and P Thitimajshima.Near Shannon Limit Error-Correcting Coding and Decoding: Turbo Codes. IEEE Proc ICC'93, Geneva, Switzerland, May 19 93:1064-1070
3 C Berrou,A Glavieux.Near Optimum Error-Correcting Coding and Decoding: Turbo Codes. IEEE Trans Commun, Oct 1996, 44(10): 1261-1271
4 Bernard Sklar.A Primer on Turbo Code Concepts. IEEE Commun Mag, Dec 1997, 35(1 2): 94-101
5 TIA/EIA/IS-2000.2. Physical Layer Standard for CDMA2000 Spread Spectrum Systems
6 张平等.第三代蜂窝移动通信系统-WCDMA.第1版,北京:北京邮电大学出版社,2000