关于信道编码中Turbo码的原理与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Turbo码的编码原理及实现
摘要
纠错码技术作为改善数字通信可靠性的一种有效手段,在数字通信的各个领域中获得极为广泛的应用。Turbo码是并行级联递归系统卷积码,在接近Shannon 限的低信噪比下能获得较低的误码率,现已被很多系统所采用。本文分析了Turbo码编码译码的原理,为了使Turbo码仿真更容易,研究并建立了基于Matlab 中Simulink通信模块的Turbo码仿真模型。使用所建立的模型进行仿真,结果表明,在信噪比相同的情况下,交织长度越大、迭代次数越多、译码算法越优,Turbo码性能越好,设计实际系统时,应综合考虑各因素。
关键词:Turbo码;Simulink仿真;交织长度;迭代次数
Abstract
As an effective means to improve the reliability of digital communication, error correcting code technology is widely used in the field of digital communication.Turbo code is a parallel concatenated recursive systematic convolutional code, which can obtain lower bit error rate in the low SNR near Shannon limit,which is now used by many systems.In this paper,the principle of Turbo coding and decoding is analyzed,in order to make the Turbo Code simulation easier,a Turbo code simulation model based on Simulink module of Matlab is studied. Simulation result using the established model shows that the longer interleaving length,the more iteration times and the better decoding algorithm bring the better Turbo code performance with the same SNR value.
Keywords:Turbo code;Simulink simulation;Interleaving length;Iteration times;
引言
根据Shanno噪信道编码定理,在信道传输速率R不超过信道容量C的前提下,只有在码组长度无限的码集合中随机地选择编码码字并且在接收端采用最大似然译码算法时,才能使误码率接近为零。但是最大似然译码的复杂性随编码长度的增加而加大,当编码长度趋于无穷大时,最大似然译码是不可能实现的。所以人们认为随机性编译码仅仅是为证明定理存在性而引人的一种数学方法和手段,在实际的编码构造中是不可能实现的。直到Turbo的出现,人们才改变了这种看法。1993年,Claud Bernou等人在国际通信会议(ICC' 93)上提出了并行级联卷积码(PCCC)即Turbo码,由于它很好地应用了Shannon信道编码定理中的随机性编译码条件,从而获得了几乎接近Shannon理论极限的译码性能。
Turbo码巧妙地将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个软输入/软输出( SISO)译码器之间进行多次迭代实现了伪随机译码。采用迭代译码的方法来提高通信系统的译码性能是Turbo 码的最大特点。Turbo码的编码器、译码器结构繁琐,是一种非常复杂的信道编码方案,这使得对Turbo码的理论分析十分困难,且只能对运算复杂度作宏观分析,对Turbo码的具体实现并没有一个清楚的度量。因此,使用计算机对Turbo 码进行仿真分析是十分必要的。本文分析了Turbo码编码译码的原理,考虑到Turbo码系统编译码的数据处理量很大,利用生成矩阵对信息序列进行编码、译码时的迭代计算等等,都涉及了矩阵运算,故采用Matlab/Simulink来进行建模仿真。
1 Turbo 码编码原理
Turbo 码的典型编码器如图1所示,Turbo 码编码器主要由分量编码器、交
织器复接器组成。分量码一般选择为递归系统卷积(RSC ,Recursive Systematic
Convolutional)码[2],当然也可以是分组码(BC, Block Code)、非递归卷积(NRC ,
Non-Recursive Convolutional)码以及非系统卷积(NSC ,Non-Systematic
Convolutional)码,但从后面的分析将看到,分量码的最佳选择是递归系统卷积码。通常两个分量码采用相同的生成矩阵,当然分量码也可以是不同的。
以分量码为RSC 为例,分量编码器为递归系统卷积码(RSC)编码器。第一个
RSC 之前不使用交织器,后续的每个RSC 之前都有一个交织器与之对应。一个
Turbo 编码器中原则上可采用多个RSC ,但通常只选用2个,因为过多的RSC 分
量编码器将使得译码非常复杂而难以实现。通常的Turbo 码编码器中,长度为N
的信息序列{}k u 在送入第一个分量编码器的同时作为系统输出{}s k x 直接送至复
接器,同时{}k u 经过一个N 位交织器,形成一个新序列{}
'k u (长度与内容没变,但比特位置经过重新排列。
{}k u 与{}'k u 分别传送到两个分量码编器(RSC1与RSC2)。一般情况下,两个分量码编码器的结构相同,生成分量码校验序列{}p k x 1和{}
p k x 2。{}k u {}'k u 与未编码的信息序列{}s k x 经过复接后,生成Turbo 码序列{}k c ,将编码
序列调制后,即可发射进入信道传输。
}k u {}s k x
{}k c
{}p
k x 1
分量编码器CRS1 分量编码器
CES2
交织器
复
接
器