关于信道编码中Turbo码的原理与实现

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

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

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

资源描述

Turbo码的编码原理及实现摘要纠错码技术作为改善数字通信可靠性的一种有效手段,在数字通信的各个领域中获得极为广泛的应用。Turbo码是并行级联递归系统卷积码,在接近Shannon限的低信噪比下能获得较低的误码率,现已被很多系统所采用。本文分析了Turbo码编码译码的原理,为了使Turbo码仿真更容易,研究并建立了基于Matlab中Simulink通信模块的Turbo码仿真模型。使用所建立的模型进行仿真,结果表明,在信噪比相同的情况下,交织长度越大、迭代次数越多、译码算法越优,Turbo码性能越好,设计实际系统时,应综合考虑各因素。关键词:Turbo码;Simulink仿真;交织长度;迭代次数AbstractAsaneffectivemeanstoimprovethereliabilityofdigitalcommunication,errorcorrectingcodetechnologyiswidelyusedinthefieldofdigitalcommunication.Turbocodeisaparallelconcatenatedrecursivesystematicconvolutionalcode,whichcanobtainlowerbiterrorrateinthelowSNRnearShannonlimit,whichisnowusedbymanysystems.Inthispaper,theprincipleofTurbocodinganddecodingisanalyzed,inordertomaketheTurboCodesimulationeasier,aTurbocodesimulationmodelbasedonSimulinkmoduleofMatlabisstudied.Simulationresultusingtheestablishedmodelshowsthatthelongerinterleavinglength,themoreiterationtimesandthebetterdecodingalgorithmbringthebetterTurbocodeperformancewiththesameSNRvalue.Keywords:Turbocode;Simulinksimulation;Interleavinglength;Iterationtimes;引言根据Shanno噪信道编码定理,在信道传输速率R不超过信道容量C的前提下,只有在码组长度无限的码集合中随机地选择编码码字并且在接收端采用最大似然译码算法时,才能使误码率接近为零。但是最大似然译码的复杂性随编码长度的增加而加大,当编码长度趋于无穷大时,最大似然译码是不可能实现的。所以人们认为随机性编译码仅仅是为证明定理存在性而引人的一种数学方法和手段,在实际的编码构造中是不可能实现的。直到Turbo的出现,人们才改变了这种看法。1993年,ClaudBernou等人在国际通信会议(ICC'93)上提出了并行级联卷积码(PCCC)即Turbo码,由于它很好地应用了Shannon信道编码定理中的随机性编译码条件,从而获得了几乎接近Shannon理论极限的译码性能。Turbo码巧妙地将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个软输入/软输出(SISO)译码器之间进行多次迭代实现了伪随机译码。采用迭代译码的方法来提高通信系统的译码性能是Turbo码的最大特点。Turbo码的编码器、译码器结构繁琐,是一种非常复杂的信道编码方案,这使得对Turbo码的理论分析十分困难,且只能对运算复杂度作宏观分析,对Turbo码的具体实现并没有一个清楚的度量。因此,使用计算机对Turbo码进行仿真分析是十分必要的。本文分析了Turbo码编码译码的原理,考虑到Turbo码系统编译码的数据处理量很大,利用生成矩阵对信息序列进行编码、译码时的迭代计算等等,都涉及了矩阵运算,故采用Matlab/Simulink来进行建模仿真。1Turbo码编码原理Turbo码的典型编码器如图1所示,Turbo码编码器主要由分量编码器、交织器复接器组成。分量码一般选择为递归系统卷积(RSC,RecursiveSystematicConvolutional)码[2],当然也可以是分组码(BC,BlockCode)、非递归卷积(NRC,Non-RecursiveConvolutional)码以及非系统卷积(NSC,Non-SystematicConvolutional)码,但从后面的分析将看到,分量码的最佳选择是递归系统卷积码。通常两个分量码采用相同的生成矩阵,当然分量码也可以是不同的。以分量码为RSC为例,分量编码器为递归系统卷积码(RSC)编码器。第一个RSC之前不使用交织器,后续的每个RSC之前都有一个交织器与之对应。一个Turbo编码器中原则上可采用多个RSC,但通常只选用2个,因为过多的RSC分量编码器将使得译码非常复杂而难以实现。通常的Turbo码编码器中,长度为N的信息序列ku在送入第一个分量编码器的同时作为系统输出skx直接送至复接器,同时ku经过一个N位交织器,形成一个新序列'ku(长度与内容没变,但比特位置经过重新排列。ku与'ku分别传送到两个分量码编器(RSC1与RSC2)。一般情况下,两个分量码编码器的结构相同,生成分量码校验序列pkx1和pkx2。ku'ku与未编码的信息序列skx经过复接后,生成Turbo码序列kc,将编码序列调制后,即可发射进入信道传输。kuskxkcpkx1分量编码器CRS1分量编码器交织器复接2Matlab仿真及结果2.1Turbo码仿真系统的实现Turbo码是经过模拟仿真来的,而不是根据既定的设计准则得到的。许多研究者正寻找其工作机理以便更好为Turbo码的构造提供理论依据。至到现在Turbo码的研究成果很大一部分是通过对各种参数的模拟性能结果中得到的。模拟仿真时,衡量其编码性能的好坏主要以误码率BER(BitErrorRate)来的。仿真中使用加性高斯白噪声信道(AWGN)模型,因为它易于构建,也是具有代表性的信道模型之一,同时假设使用BPSK调制方式。根据Turbo码系统的结构特点,将整个Turbo编译码系统合理地划分成多个模块,使用MATLAB通过模块化设计实现了可以用于计算机模拟的Turbo编译码系统。系统所包涵的模块具体划分为:主程序、信道模型子程序、交织子程序、RSC编码子程序、使用不同的算法进行译码的译码子程序等。仿真中使用加性高斯白噪声信道(AWGN)模型,因为它易于构建,也是具有代表性的信道模型之一,同时假设使用BPSK调制方式。根据Turbo码系统的结构特点,本文将整个Turbo编译码系统合理地划分成多个模块,使用MATLAB通过模块化设计实现了可以用于计算机模拟的Turbo编译码系统。系统所包涵的模块具体划分为:主程序、信道模型子程序、交织子程序、RSC编码子程序、使用不同的算法进行译码的译码子程序等。主程序控制着整个系统的流程。主程序首先完成对系统的先期设置,包括分量RSC的生成矩阵、帧大小(即交织器的大小)、迭代次数、使用何种译码算法等等。然后,随即生成0,1信息源,调用各子程序完成编码、传输以及译码的过程。仿真中使用加性高斯白噪声信道(AWGN)模型,因为它易于构建,也是具有代表性的信道模型之一,同时假设使用BPSK调制方式。根据Turbo码系统的结构特点,本文将整个Turbo编译码系统合理地划分成多个模块,使用MATLAB通过模块化设计实现了可以用于计算机模拟的Turbo编译码系统。系统所包涵的模块具体划分为:主程序、信道模型子程序、交织子程序、RSC编码子程序、使用不同的算法进行译码的译码子程序等。交织子程序供主程序调用,主要完成对信息比特序列进行位置的随机置换,并提供给RSC2进行编码。对每帧进行置换的格式将保存下来,以便在译码过程中进行正确的解交织。RSC编码子程序供主程序调用,完成编码。网格图生成子程序供译码子程序调用,用于生成给定生成矩阵对应的网格图。对一帧编码的子程序供RSC编码子程序调用,用于对一帧的信息比特编码。对一位信息比特编码子程序供对一帧编码的子程序调用,用于对单个输入比特进行编码。信道模型及复用调制子程序供主程序调用,用于生成信道模型,将两个RSC分量编码器编码序列和信息序列进行复用,根据需要的码率组成整个编码器的编码结果,然后使用AWGN信道模型将编码序列进行调制,模拟进入信道传输。译码前解复用子程序供主程序调用,用于从模拟信道接收观测序列,并将观测序列解复用,分解成系统比特序列和两个校验序列。译码子程序同主程序调用,用于实现具体的译码算法,对观测序列进行译码。2.2Turbo码的仿真结果及分析影响Turbo码性能的参数很多,这里分别就不同的译码算法、迭代次数、交织长度对Turbo码性能的影响进行分析,给出仿真结果。2.2.1不同译码算法对Turbo码的性能影响图6给出了采用不同译码算法下的Turbo码仿真结果。Turbo码码率为1/3,Log-Map算法和MAX-Log-Map算法译码迭代次数为3。从图中可以观察到Log-MAP译码算法性能明显要优于MAX-Log-MAP和SOVA。在误码率为10-4时,Log-MAP译码算法比MAX-Log-Map译码算法好0.4dB,比SOVA好2dB以上。Max-Log-MAP算法用到了近似公式,故性能比Log-MAP有所下降。验证了译码算法性能MAPLog-MAPMAX-Log-MAPSOVA的结论。SOVA算法虽然性能是几种算法中最差的,但复杂性较低易于实现。在实际运用中,要结合具体的情况,权衡硬件的复杂度和性能要求,选择合适的译码算法。图6不同译码算法对Turbo码的影响2.2.2迭代次数图7迭代次数对Turbo码的影响图7给出了不同迭代次数下,Turbo码的误比特率与信噪比的关系曲线,采用MAX-Log-MAP算法,码率为31。从图7所示的仿真结果可以看出,随着迭代次数的增加,Turbo码的误比特率曲线不断降低并趋于收敛;而且随着信噪比的增加,迭代对误比特率性能的影响越来越明显。这是Turbo码通过迭代译码充分利用冗余信息来提高编译码性能这一特点的反映。最初,迭代译码的增益较高,但随着迭代次数的增加,译码增益增长相对缓慢,虽然继续增加迭代次数可以提高Turbo码的性能,但权衡迭代所需要的时间、性能改善的幅度,我们通常都选取合适的迭代次数。2.2.3交织长度图8交织长度对Turbo码的影响图8给出了不同交织长度下,Turbo码的误比特率与信噪比的关系曲线。从图8中可以看出,交织长度越大,性能就越好,而且交织长度对性能的影响是很大的,这是由于交织器的存在所产生的所谓交织增益,使得Turbo码的性能随交织长度的增长而改善且在交织长度足够长时接近信道容量。交织长度是决定Turbo码性能的一个重要因素。但是与Turbo码不同,卷积码的一个优点在于只要帧长远大于码的约束长度,其性能就与帧长没有关系,另外,Turbo码性能的另一个重要因素是迭代译码所产生的译码复杂度,所以我们有必要在短帧的情况下,将Turbo码与采用最大似然译码算法的卷积码纠错性能和复杂度作一个比较。在高斯信道环境下作了仿真比较,得到在同样信噪比的条件下,要达到310级BER的要求时,卷积码的复杂度小于Turbo码,在瑞利衰落信道下,结论也相似。短帧传输有着广泛的应用,诸如在移动通信中,话音和控制信息通常采用小于300比特的短帧,通常话音和信令的误码率要求在3105到4105之间。由上述结论可知,在对帧长有要求的移动通信系统中,在一定的误码率要求下,Turbo码并不是最佳的准则,在考虑译码复杂度的情况下,卷积码反而比Turbo码具有更好的性能。反之,对于帧长较长的情况下,采用Turbo码将更有优势。同时,我们还应该注意到交织深度和编译码

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

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

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

×
保存成功