TURBO编译码及仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1课程设计论文题目turbo码编译码及Matlab仿真学院物理科学与技术学院专业通信工程年级2010学生姓名学号指导教师二○一三年六月2第1章绪论纠错码技术在过去的八年中发生了翻天覆地的改变。从1993年,Turbo码被C.Berrou等人提出以来,Turbo码就以其优异的性能和相对简单可行的编译码算法吸引了众多研究者的目光.Turbo码的实质是并行级联的卷积码,它与以往所有的码的不同之处在于它通过一个交织器的作用,达到接近随机编码的目的.它所采用的迭代译码策略,使得译码复杂性大大降低。它采用两个子译码器通过交换称为外信息的辅助信息,相互支持,从而提高译码性能。外信息的交换是在迭代译码的过程中实现的,前一次迭代产生的外信息经交换后将作为下一次迭代的先验信息。人们将Turbo码中子译码器互换信息以相互支持的思想称为“Turbo原理”。这种思想可运用于其他场合,如信道均衡,码调制,多用户检测,信源、信道联合译码等。日前Turbo码的研究尚缺少理论基础支持,但是在各种恶劣条件下(即低SNR情况下),提供接近Shannon极限的通信能力已经通过模拟证明。但Turbo码也存在着一些急待解决的问题,例如译码算法的改进、复杂性的降低、译码延时的减小。作为商用3G移动通信系统的关键技术之一,Turbo码也将逐渐获得较好的理论支持并且得到进一步开发和完善。3第2章Turbo码编码原理2.1Turbo码的编码结构Turbo码的典型编码器如图1所示,Turbo码编码器主要由分量编码器、交织器复接器组成。分量码一般选择为递归系统卷积(RSC,RecursiveSystematicConvolutional)码,当然也可以是分组码(BC,BlockCode)、非递归卷积(NRC,Non-RecursiveConvolutional)码以及非系统卷积(NSC,Non-SystematicConvolutional)码,但从后面的分析将看到,分量码的最佳选择是递归系统卷积码。通常两个分量码采用相同的生成矩阵,当然分量码也可以是不同的。kuskxkcpkx1pkx2'ku图1Turbo码的编码器结构以分量码为RSC为例,分量编码器为递归系统卷积码(RSC)编码器。第一个RSC之前不使用交织器,后续的每个RSC之前都有一个交织器与之对应。一个Turbo编码器中原则上可采用多个RSC,但通常只选用2个,因为过多的RSC分量编码器将使得译码非常复杂而难以实现。通常的Turbo分量编码器CRS1分量编码器CES2交织器复接器4码编码器中,长度为N的信息序列ku在送入第一个分量编码器的同时作为系统输出skx直接送至复接器,同时ku经过一个N位交织器,形成一个新序列'ku(长度与内容没变,但比特位置经过重新排列。ku与'ku分别传送到两个分量码编器(RSC1与RSC2)。一般情况下,两个分量码编码器的结构相同,生成分量码校验序列pkx1和pkx2。ku'ku与未编码的信息序列skx经过复接后,生成Turbo码序列kc,将编码序列调制后,即可发射进入信道传输。2.2递归系统卷积码(RSC)纠错编码是将k位的输入信息码元编成n位的输出信道码元,在编码中,可以采用一定的算法,使输出码元中的k位与输入码元一致。这样,输入码元与输出码元有明显的对应关系,这种码称为系统码[。系统码中一致的这k位数据称为信息位,输出码元其余的n-k位称为校验位,不满足这种关系的码称为非系统码。同样的,卷积码可以分为系统卷积(SC,SystematicConvolutional)码与非系统卷积(NSC,Non-SystematicConvolutional)码两大类。以下图2的(2,1,2)卷积码为例,设时刻k的输入码元为kd,输出码元为kX和kY,则输出码元与输入码元的关系为kYkdkX图210121KiikikkkkdgdddX(2-1)D1D251022KiikikkkdgddY(2-2)式中,ig1—1G的系数,ig2—2G的系数。非递推系统卷积码,约束长度K=3,但码生成多项式为Gl=4,G2=5。它的输出码元与输入码元的关系为kkdX(2-3)1022KiikikkkdgddY(2-4)系统码的结构比非系统码的简单,模2加法器和连线的数量都比非系统码的要少。RSC码是由一个NSC码编码器通过反馈,并使kX等于输入信息比特kd而构成的。对RSC编码器,移位寄存器输入不再是数据比特kd,而是一个新的二元变量ka。如果kX=kd,输出kY为式(2-4),其中kd由代替ka,而ka由下式递推计算11Kiikikkarda(2-5)式中iigr1(2-6)式(2-5)可写为10Kiikikard(2-7)下面讨论为什么选择RSC编码器作为Turbo码的子编码器。首先,RSC码具有系统码的优点。因为系统码在从码字恢复出信息序列时无需求逆,这一特性使用户在译码时无需变换码字而直接对接收的码序列进行译码。所以,RSC码对于NSC码而言译码简单、快速。其次,还可以从Turbo码重量分布的角度给予解释。通过观察递归卷积码与非递归卷积码的低重量信息序列所产生的码字的分布情况,可以发现二者之间有明显的不同,低重量的输入信息序列经过非递归卷积编码器之后,只能产生低重量的监督码元序列,低重量码字的增加将严重影响Turbo码的6性能,而低重量的信息序列经过递归卷积编码之后,输出的监督码元的重量分布在一个很宽的范围之内,这是由其反馈特性所造成的。因此,用非递归卷积码所构造的Turbo码的性能比较差,Turbo码需要递归卷积码实现。最后,从差错控制编码的相关文献中也可知,在对比实验中,非系统卷积码(NSC)的BER性能在高信噪比时比约束长度相同的非递归系统码要好,而在低信噪比时情况却正好相反[13]。递归系统卷积(RSC)码综合了NSC码和系统码的特性,虽然它与NSC码具有相同的trellis结构和自由距离,但是在高码率32R的情况下,对任何信噪比,它的性能均比等效的NSC码要好。由于系统递归卷积码具有以上特点,并且能改善误码率,所以通常选择RSC码作为Turbo码的子编码器。NSC的可由生成算子1111g和1012g来描述,也可将其表示为矩阵形式21,ggG.RSC可以表示为12,1ggG。NSC中的第一个支路输出被反馈到了输入端,从而引起了生成矩阵形式上的变化。RSC的矩阵表达式中,1对应着输出的系统信息序列,2g对应着编码器的前馈输出,1g对应着反馈到输入端的成分。研究指出RSC的原始生成多项式的基础上加上适当的反馈,往往能获得好码,因为应用了反馈之后,可以获得最大长度的编码序列,根据分组码的知识,我们知道这给码序列增加了随机性,从而能获得更好的误比特率。2.3交织器交织器其实是通信系统中进行数据处理而采用的一种技术,交织器从其本质上来说就是一种实现最大限度的改变信息结构而不改变信息内容的器件,也就是使在信道传输过程中所突发产生集中的错误最大限度的分散化,不规则化[。我们设X为交织器的输入,Y为交织器的输出,I就是交织器,所以XIY。一般的应用交织器往往都是有延时的,我们有必要引入一个新的概念:交织器的延时,它是指在时刻i,输出的iy与此时此刻或以前的输入ijxj有关,且iiI,用式子来表示就是0iIi,相应的iIiti0minmin为交织器的最小延时。交织器是Turbo码编码器主要的组成部分,也是Turbo码的重要特征之7一。线性码的纠错译码性能实质上是由码字的重量分布决定的,Turbo码也是线性码,所以其性能也是由码字重量分布决定的,由于交织器实际上决定了Turbo码的重量分布,所以,给定了卷积编码器后,Turbo码的性能主要是由交织器决定的。在低SNR时,交织器的大小将直接影响着Turbo码的差错性能。因为交织长度大时,两个子编码器接收的输入序列的相关性就可以很低,就越有利于译码迭代,从而使得迭代结果越准确。在高SNR时,是Turbo码的低重量码字、最小汉明距离或距离谱决定着它可以达到的BER性能,所以交织器的设计显著的影响着低重量码字或距离谱,重量分布是反映纠错码性能的重要指标,所谓具有好的重量分布,就是要尽量减少低重量的码字的数量。如果没有交织器的作用,Turbo码的两个子编码器的输入就相同。如果其中一个经编码后产生低重量的码字,那么该序列在经过第二个字编码器输出后也会产生低重量的码字。反之,加入交织器,由于交织器对输入序列进行了置换,使得数据在进入第二个编码器之前被打乱,也就改变了原来信息的排列方式,所以Turbo码的两个子编码器同时产生低重量输出的可能性就更小了,也就是说交织器减小了Turbo码产生低重量码字的概率,从而可以使Turbo码有比较好的纠错性能[15]。在Turbo码中,交织器的这种使输入码元符号的顺序尽可能随机分布的作用,将使码元符号之间的相关性减弱,使进入各个子译码器的信息序列之间不相关。这种去相关的结果使得各个子译码器可以彼此独立的工作。彼此独立进行译码的结果是,软判决信息可以互相利用,判决结果也因此逐渐准确。从而,使Turbo码译码器的性能远远好于其它类型的译码器,包括其他类型的级联译码器。但是,由于交织器的存在,使得Turbo码存在一定的时延,数据帧越长,延时越大。而且交织器的长度会对Turbo码的译码性能有很大的影响,交织深度越大,译码的误码率越低,传输质量越高。所以,对于那些允许有较大时延的业务,Turbo码的作用就可以得到充分的发挥。但是,对于那些不允许有较大时延的业务,Turbo码的应用却受到了限制。仿真用来如下三个寄存器的递归卷积编码器,生成多项式表示为g[1011,1101]8图3第3章Turbo码译码3.1Turbo码的译码结构通常情况下,Turbo码编码器使用两个分量RSC,编码输出包含了信息序列(在译码端常常被称为系统信息或系统比特)和两个分量RSC编码器输出的校验信息序列。对接收到的观测序列进行译码的时候,根据编码结果,把译码器分解为两个独立的译码器DECl和DEC2,分别跟两个RSC分量编码器相对应。为了得到对原始信息的最优估计,两个译码器分别对系统信息和两个校验序列进行译码时,应该相互利用校验序列所含的信息,采用迭代译码,通过分量译码器之问软信息的交换来提高译码性能,这也是Turbo码获得优异性能的根本原因之一.TTT9××Lc分量译码器1++交织器交织器分量译码器2解交织器解交织器硬判决图4Turbo码的译码结构以码率为1/3的Turbo码为例,编码输出信号为pkskkxxX,(3-1)对于BPSK调制,输出信号与编码码字pkskkccC,(3-2)之间满足关系12kskCEX(3-3)假定接收信号为pkskkyyY,(3-4)式中kskskixy(3-5)kpkpkqxy(3-6)ki和kq是服从均值为0,方差为20N的独立同分布高斯随机变量。在接收端,接收采样经过匹配滤波之后得到的接收序列NRRRR,...,,21(3-7)经过串并转换后得到如下三序列:系统接收信息序列sNsssyyyY,...,,21(3-8)用于DECl的接收校验序列pNpppyyyY112111,...,,(3-9)10用于DEC2的接收校验序列pNpppyyyY222212,...,,(3-10)若其中某些校验比特在编码过程中通过删余矩阵被删除,则在接收校验序列的相应位置以“0”填充。上述3个接收序列sY、pY1和pY2,经过信道置信度cL加权后作为系统信息序列Ics;,信息序列Icp;1和Icp;2送入译码器。对于噪声服从分布N(0,No/2)的AWGN信道来说,信道置信度定义为04NELsc(3-11)对于第k个被译比特,Turbo译码器中每个分

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功