Turbo码(Turbo Codes)

时间:2024-03-29 12:28:13

Turbo码(Turbo Codes)

作者:途次客

      ============================================================== 

      目录结构:

      1、分量码

      2、交织器

      3、归零处理

      4、删余处理

      5LTE协议中的Turbo码编码器

      6、总结

      ============================================================== 

       Turbo码由Berrou,Glavieux和Thitimajshima在1993年提出,是一种并行级联卷积码。Turbo码将分量码和随机交织器巧妙结合起来,采用并行级联的结构,实现了随机编码的思想,采用软输入软输出的迭代译码方法,达到了接近香农限的性能。在Turbo码的发明之后,有学者重新发现60年代提出的LDPC码有更接近香农限的性能,这是后来的事,本文主要结合LTE系统介绍Turbo码。

1、分量码

      在Turbo码中,分量码编码器是重要的组成部分,该部分产生系统信息和校验信息。在Turbo码最先提出时有分组码和卷积码两种类型,在后来研究中发现,卷积码性能更优。而卷积码的类型多样,如非递归卷积码(NRC)、非系统卷积码(NSC)、递归系统卷积码(RSC)。在实际的系统中,由于递归系统卷积码(RSC)有突出的优点而被广泛采用。

      RSC码在具有良好的译码性能,且存在较高的交织增益,译码性能也会随着交织长度增加而提高。影响译码性能的因素很多,如卷积码的约束长度、生成多项式以及生成多项式的顺序等,所以,在实际中具有种类不同的分量码构造的Turbo码,这需要根据不同的场景,根据用户的需求,经过仿真和验证才能得出。

2、交织器

      交织器也是Turbo码的重要组成部分。通信系统的交织器是为了对抗信道的突发错误而设计的。Turbo码的交织器更主要的功能是使码重分布合理,降低数据序列的相关性,增大输出码字的最小汉明距,实现随机编码。

      交织器即将原始数据顺序按照给定的规则重新排序输出。解交织即是交织的逆过程。交织器的选择对Turbo码的性能具有重大影响。根据香农理论,码长越长,编码增益越大。所以交织器的长度越长,Turbo码的码长越长,性能越好。另外,交织器的交织规则也是影响因素。最简单的交织器即行列交织器,数据按行写入,按列读出。

      在选用交织器时需要根据交织器长度、交织规则、系统复杂度等因素综合考虑。

3、归零处理

      在数据序列编码完成后,归零处理使分量编码器RSC中的移位寄存器恢复成编码前的零状态,从而使编译码变得简单易于控制。

Turbo码的归零处理如下:

      (1)输入所有的编码序列,完成编码

      (2)分量码开关切换至虚线处,各个寄存器中的遗留状态值和反馈结构生成某些编码序列的尾部比特,这些尾比特与自身异或,使新进入寄存器的值为0。尾比特添加至编码序列系统部位,RSC计算出的比特添加到校验序列后。

      (3)该过程直到所有移位寄存器中值全部为0。如寄存器有K个,则经过K次后寄存器将全为0。

4、删余处理

      现代通信系统中,为了实现高速数据传输,系统对频带利用率要求较高,一般Turbo码的码率只有1/3,所以,频带利用率不高,为了解决这一问题,在编码器中加入了删余处理。

      删余处理的具体操作即在编码完成后,将分量码输出的两路校验信息输入删余器,按照一定的规则删除一部分校验信息,减小信息的冗余度,从而提高编码效率。删余处理根据各系统自定。

5、LTE协议中的Turbo码编码器

      以LTE协议中的Turbo码编码器为例,介绍Turbo码的几个重要部件。该Turbo码的编码器实现框图如下图所示。

Turbo码(Turbo Codes)
图1. LTE中Turbo码编码器实现框图

      图中参数如下:

      ck:输入待编码数据序列

      ck’:ck经过内交织器处理后的数据序列

      xk:经过分量编码器1后的系统信息序列

      zk:经过分量编码器1后的校验信息序列

      zk’:经过分量编码器2后的校验信息序列

      该编码器,码率为1/3,输出dk如下:

Turbo码(Turbo Codes)

      分量码1和分量码2均为循环递归卷积码(RSC)。其生成多项式为

G(D) = [1, g1(D)/g0(D)]

      其中g0(D) = 1+ D^2 + D^3,g1(D) = 1 + D + D^3。

      LTE中的交织器为二次置换多项式交织器(Quadratic Permutation Polynomial, QPP),长度为K的QPP交织器定义为

Turbo码(Turbo Codes)

      其中,i为交织前序列的地址;f1为一次系数,在LTE中为奇数;f2为二次系数,在LTE中为偶数;K为交织器长度。

LTE支持188种不同的K值,最小的40,最大的6144。这些块的f1和f2值参考文件Evolved Universal Terrestrial Radio Acess (E-UTRA); Multiplexing andchannel coding (release 9)" 2009-12.或者matlab函数getf1f2,[f1, f2] = getf1f2(K),可根据交织长度K得到f1和f2。

6、总结

       本文主要简介了Turbo码的基本原理以及各个编码部件,以LTE协议中的Turbo码为例,介绍了其编码框图,分量码和交织器。