Turbo码性能分析和仿真研究方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Turbo码性能分析和仿真研究方法
摘要:本文介绍了Turbo码——一种新型差错控制编码,在对其原理分析的基础上,简单介绍了它的译码的原理和算法,并且实现了其中两种算法Log-MAP算法和SOV A算法的在MATLAB下性能仿真,对不同译码算法下Turbo码的性能进行了分析比较。
关键词:Turbo码;差错编码;Simulink仿真;交织器;迭代译码;译码算法
Abstract: This paper introduces the Turbo codes - a new type of error control coding, in its principle based on the analysis, a brief introduction to its principles and decoding algorithms, and achieved two of the Log-MAP algorithm and SOVA algorithms algorithm performance under the MATLAB simulation, under different Turbo code decoding algorithm performance was compared.
Key words: Turbo code; error coding; Simulink simulation; interleaver; iterative decoding; decoding algorithm
1 序言:
1948年,现代数字通信的奠基人Shannon在信道编码定理中指出,只要随机编码的码长足够大,就可以进行无限逼近信道容量C的通信并使错误概率任意小。他证明:对于平稳离散无记忆有噪声信道,如果数据源的速率R低于信道容量C时,则一定存在一种编码方法,使当平均码字长度足够长时,用最大似然译码可达到任意小的错误概率。但随机编码的译码复杂度随码长指数增长以致于不可实现。
Shannon编码定理指出:如果采用足够长的随机编码,就能逼近Shannon信道容量。而Turbo码以其接近Shannon理论极限的译码性能,已被采纳为3G移动通信系统的信道编码标准之一。Turbo码巧妙地将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个软输入/软输出(SISO)译码器之间进行多次迭代实现了伪随机译码。采用迭代译码的方法来提高通信系统的译码性能是Turbo码的。
1993年C.Berrou等人提出的Turbo码通过对子码的伪随机交织实现大约束长度的编码,具有接近随机编码的特性,采用迭代译码取得了中等的译码复杂度,它的误码性能在10-5数量级上逼近了Shannon极限。并行级联递归系统卷积码(Turbo-code)的提出为编码研究带来新的曙光,其基本思想是利用短码来构造长码,在译码时,它使用一种全新的译码思想——迭代译码,将长码化成短码,从而以较小复杂度来获得接近最大似然译码的性能,突破了传统码的约束,真正挖掘了级联码的潜力,获得接近香农极限的性能。
Turbo码自提出之日起就成为信息论与编码界工作者的热切关注的热点,本文给出了Turbo码基本原理的介绍及其性能的仿真。
2 编码的原理和译码的算法:
编码的原理
图1中给出了Turbo码编码器的一般性结构。图中d k是输入进行编码的数据块,加入尾随比特的作用是使在一个数据块编码结束之后,保证成员编码器的寄存器回到全零状态,这样的Turbo码就等同于线性分组码,从而通过分析这类分组码的特性来计算Turbo码的译码性能上界,对其性能进行估计与分析。编码器中的第一个输出x k是输入信息比特和加入的尾随比特。输入信息比特和尾随比特经过交织器交织后分别送入第1,2,……,M个成员编码器进行编码,得到M个校验输出序列y1,y2……y M,这M个校验序列经过删除器的压缩(以得到不同的编码速率)后,与信息序列x k一起经并/串变换并调制后发送出去。在发送端,其编码的随机性是通过编码器中的交织器以及并行级联方式来实现的;其中交织器设计的好
坏和成员编码器的选择是决定码字性能关键因素之一。
通常Turbo 码的编码器由两个成员编码器通过交织器并行级联而成。即对于每一个输入信息比特,编码器输出两个校验比特,若不经过压缩,则总的编码速率为1/3。从理论上来说,可以编成任意码率的Turbo 码。
一般,Turbo 码的编码部分由两个子编码器组成 ,在其译码部分也就相应有两个子译码器。一般情况下 ,两个子译码器可采用多级级联结构。由于Turbo 码第二个子编码器的信息位没有输出 ,第二个子译码器只能利用第一个子译码器译出的信息序列进行译码。软判决译码比硬判决译码性能提高2~3dB,因此每一个子译码器都用软输入软输出译码器。译码器工作原理如下:由于接收序列为串行数据 ,首先要进行数据的串/并转换 ,同时将删除的比特位填上“虚拟比特”(不影响译码判决的值如0)。将经过串/并转换后的x k ,y 1k 送入子译码器1译码 ,并产生关于d k 改进的外信息Λ1e (d k )。由于译码器1没有用到可能提高后验概率的校验序列y 2k ,所以译码器1的输出仅在交织后作为译码器2的先验信息输入,而不能作为对信息序列的判决。将x k 和Λ1e (d k )交织后作为子译码器 2的软输入 ,子译码器 2根据译码算法对x k , Λ1e (d k )和y 2k 用与子译码器1同样的方法再次产生信息比特改进的外信息Λ2e (d j ),经去交织后得到)(~
2k e d 作为下一次迭代中子译码器1的先验信息。这样在多次迭代后,对子译码器2产生的输出Λ2(d j )去交织后进行硬判决,得到每个信息比特d k 的估
值k
d ˆ。 Turbo 码的译码结构如图2(a)所示,由于这种将输出反馈到前端的迭代结构类似于汽轮机的工作机理,首先提出它的人称之为Turbo —code(英文中前缀turbo —带涡轮驱动的含义) 。
尽管图2(a)给出的是反馈的结构,由于有交织环节的存在必然引起时延,使得不可能有真正意义上的反馈,而是流水线式的迭代结构,如图2(b)。也正是由于这种流水线结构,使得译码器可由若干完全相同的软入软出的基本单元构成,从而以较小的复杂度实现了最大似然译码。Turbo 码译码器的最主要特点就是采用了软判决迭代译码算法
图1Turbo 码编码器原理框图