信道编码——Turbo码Matlab编译码实现与性能分析
信道编码——Turbo码Matlab编译码实现与性能分析
Turbo码是一种在1993年由Claude.Berrou等人提出的信道编码技术,其性能在误码率方面逼近了香农极限。本文将介绍Turbo码的编译码原理,并通过Matlab实现其编译码过程,最后分析其在不同信道条件下的性能表现。
Turbo码编译码原理
Turbo码在1993年由Claude.Berrou等人提出,从误码率方面逼近了香农极限。这篇文章发表在IEEE International Conference on Communications (ICC)上,名为《Near Shannon limit error-correcting coding and decoding: Turbo-codes. 1》。
相较极化码的论文,这篇论文篇幅上小得多,主要介绍了Turbo码的编码、解码和误码率曲线,并给出了相应证明。
编码端结构如下,主要由交织器和编码器组成。
译码端结构如下,采用反馈迭代译码。
Claude.Berrou等人还研究了迭代译码次数对Turbo码性能的影响。
从论文理解其编译码比较复杂,可以简单概述为以下模式:
编码端:如下图所示,一个编码器的输入也是另一个编码器的输入而非输出(经过交织),对不同形式的信息并行操作;随着分组长度和对应交织器大小 K 的增加,Turbo 码的重量谱特性逐渐逼近类随机分布,谱细化大大减少了低重码字重数,改善了单一分量码的距离谱特性。
译码端:并行级联结构很好地满足了反馈译码的要求,两个码可以交替地互不影响地译码,并可通过关于系统码信息位的软判决输出相互传递信息,进行迭代译码,如下图所示;可以获得近似最优的译码性能。
主要特点:
- 类随机码的特性,同时具有足够的结构信息,因此可以使用高效的迭代译码方法;
- 优异的性能:在信息分组长度大于 104 比特情况下,达到 10-5 的BER性能,信噪比在香农极限的 1dB 以内;
- 较长的编译码延时:长的分组长度、多次迭代;
- 误码平台:最小距离特性较差。
Matlab源码和运行结果
源码
说明:这部分代码主要由本课程设计小组的组员禹潼同学编写。
结果
代码实现总共分为两个部分:
第一部分
diff_channel部分是Turbo码分别经过AWGN、瑞利衰落和莱斯衰落三种信道的性能分析。
通过AWGN信道,仿真结果如下:
通过瑞利衰落信道,仿真结果如下:
通过莱斯衰落信道,仿真结果如下:
第二部分
Turbo_diff_codetype实现了对不同trellis结构的Turbo码编码的性能对比分析,结果如下图所示:
总结
Turbo码的性能真是让人惊叹,在较高信噪比下误码率呈现“瀑布式”下降,虽然在较低信噪比下比未编码差,但是瑕不掩瑜,在对可靠性要求高的通信系统里将被优先考虑。突然理解了在Turbo被两位名不见经传的科学家提出时,IEEE的一些专家甚至怀疑信噪比算错了。对比线性分组码和卷积码,Turbo抗噪声能力稍弱,但是只要信噪比达标,性能将迅速提升。
Turbo码和LDPC码一样,都从误码率方面逼近了香农极限。