Turbo码的编译码实现及Log-MAP算法性能仿真_第1页
Turbo码的编译码实现及Log-MAP算法性能仿真_第2页
Turbo码的编译码实现及Log-MAP算法性能仿真_第3页
Turbo码的编译码实现及Log-MAP算法性能仿真_第4页
Turbo码的编译码实现及Log-MAP算法性能仿真_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息编码理论小论文1TURBO码的编译码实现及LOGMAP算法性能仿真摘要TURBO码是信道中的一种编码方式,可以改善数字通信的可靠性。它是并行级联递归系统卷积码RSC,在接近SHANNON限的低信噪比下能获得较低的误码率。因为其优越的性能,现在已经被许多通信系统所采用。本文对近年来的研究热点TURBO码进行分析。在阐明了TURBO码基本原理的基础上,采用MATLAB工具实现了随机信息序列的TURBO码的编译过程,以及仿真了在加性白噪声干扰信道情况下LOGMAP算法译码表现出的性能。关键词TURBO码,LOGMAP算法,迭代译码ABSTRACTTURBOCODEISAKINDOFCHANNELENCODING,THATCANIMPROVETHERELIABILITYOFDIGITALCOMMUNICATIONSITISAPARALLELCONCATENATEDANDRECURSIVESYSTEMATICCONVOLUTIONALCODESRSCWITHALOWSNR,NEARINGTHESHANNONLIMIT,CANGETALOWERERRORRATEBECAUSEOFITSSUPERIORPERFORMANCE,ITHASNOWBEENAPPLIEDINMANYCOMMUNICATIONSYSTEMSINTHISPAPER,WEACCOMPLISHTHEANALYSISOFTURBOCODES,WHICHISTHERESEARCHHOTSPOTINRECENTYEARSAFTERELUCIDATINGTHEBASICPRINCIPLEOFTHETURBOCODES,WEUSEMATLABTOIMPLEMENTTURBOENCODINGANDEDECODINGFORTHERANDOMMESSAGESEQUENCEANDSIMULATETHEPERFORMANCESOFLOGMAPDECODINGALGORITHMWITHAWHITENOISECHANNELKEYWORDSTURBOCODES,LOGMAPALGORITHM,ITERATIVEDECODING一、引言1993年TURBO码由CBERROU等人最先提出,它在编码端用两个或更多子编码器并联构成,译码端采用基于软判决信息输入/输出的反馈迭代结构。TURBO码自提出以来1,就以其优越的译码性能倍受关注。它在误码率为510时与香农的理论极限仅相差05DB,且对信道变化不敏感,所以近几年成为编码理论研究的重点方向,并广泛应用于3G2通信体系中。目前对TURBO码的研究主要集中在译码算法、交织器设计和译码结构等方面。TURBO码的译码算法总体上可分为MAP和SOVA两类主要算法3MAP类算法主要包括MAP算法、LOGMAP算法、MAXLOGMAP算法。其中MAP算法是一种最佳后验率算法,LOGMAP是MAP算法在对数域上的计算方式,MAXLOGMAP算法是对LOGMAP算法简化后的次优算法。SOVA类算法主要包括软输出的维特比算法(SOVA)和连续列表输出维特比算法(SLVA)。TURBO码的编译码实现及LOGMAP算法性能仿真由于TURBO码接近于随机码2,有很好的距离特性,因而有很强的抗衰落和抗干扰能力,这使得它在信道条件较差的移动通信系统中有很大的应用潜力。TURBO码的编译码器中交织器的长度都一般比较长,这是因为码长是决定TURBO码性能的一个重要因素。但是,采用较长的码长必然会带来较大的延时。因此,延时对TURBO码的应用有一定的限制作用。码长较长以及对延时要求不高的情况是TURBO码最佳的适用情况。所以TURBO码最早被应用于深空通信等对码率要求很低、但信道环境恶劣的场合,以及磁记录的纠错编码等非实时场合。但随着迭代译码算法的改进、大规模集成电路工艺的改进,TURBO码渐渐被用到实时通信当中,从卫星通信到网络到广播到个人通信等等。现在TURBO码已经成为3G以及4G的信道编码标准的一部分4。MAP算法是一种基于码元的最大后验概率译码算法,对于线性块编码的卷积码,它能使比特错误率最小。也是最早应用于TURBO码中的译码算法5。但是采用此算法计算量大,译码复杂度高。针对这些译码算法的复杂性,人们对其进行了修正和改进。对TURBO码的译码算法的简化、复杂度的降低、内存的减少,并在理论上对TURBO码进行解释一直是人们研究的热点。其中,LOGMAP是在MAP算法的基础上改进而得到的,是MAP算法的对数形式,通过将大量的乘法运算转化成加法来简化复杂性。二、TURBO码译码实现原理TURBO码在一般译码复杂度下获得较高的编码增益。在发送端,编码器采用并行级联编码技术,用简单的码构造长码;在接收端,译码器把长码化成短码,利用软输入/软输出迭代译码算法进行译码。TURBO码的性能距离SHANNON限已相当接近。621TURBO码编码器图21是标准的TURBO码编码框图。它由2个也可多个R1/2的子编码器C1和C2,1个NBIT交织器和1个凿孔功能模块组成。C1和C2并行级联,均属递归系统卷积编码器RSC,其结构一般是相同的,也可以不同。假设输入编码器的信息序列为U(U1,U2,、UN,它一方面直接输入C1进行编码,生成系统序列1SX和校验序列1P。另一方面经交织后,输入C2进行编码,产生一个经交织的系统序列2S和另一个校验序列2PX,1S和2S仅存在交织关系,因此,只保留1S即可。显然,若没有凿孔单元,编码器速率为1/3即N为比特信息输入,3N为编码比特输出。为了得到较高的码率,可采用凿孔的方法,按信息编码理论小论文3一定的格式,对1PX和2删除一些校验位。例如删除所有的1PX奇比特和2PX偶比特,子编NBIT交织器RSC1G2D/G1DRSC2G2D/G1D凿孔单元UXSX1PX2P图21TURBO码编码框图码器的码率为1R22/3,整个编码器的码率为R1/2,当然,我们也可以使C1和C2具有不同的码率,整个编码器码率R与子编码器码率1R和2的关系为12R(21)下面将逐一讨论编码器各组成部分。(1)递归系统编码器码率为1/2的递归系统编码器的生成矩阵可表示为21RGDG22显然,输入序列能被G1D除尽时,输出码字序列才具有有限的重量,可得出如下两个推论1重量为1的输入将产生无限大重量的输出这样的输入不可能被G1D整除。(2对任一非平凡的G1D,存在一组重量为2,形式为DJ1DQ1,J0,能被G1D整除的输入,其产生的输出为有限重量。当G1D为阶数M的既约多项式时Q2M;通常G1D产生的伪随机序列长度为Q一1。在码的网格图中,推论1意味着对于重量为1的输入,将产生一个从全0开始,但再不会合的路径。推论2表明,重量为2的数据序列总能产生一个开始时有分支,但能会合的网格路径。TURBO码的编译码实现及LOGMAP算法性能仿真选用并联时,必然首选系统码形式的子编码器。这样,只发送一个编码器的系统序列,从而提高码率。RSC码当前码元的生成与当前时刻之前的所有码元有关系。要证明这点比较复杂,有个明显的例子,就是有限输入码重很可能产生无限输出码重。编码约束长度越长,性能就越好,因此RSC对TURBO码很合适。(2)交织器交织器的功能是将每一组N比特数据重新组织,再送往第一个编码器进行编码。在译码端,对于某一个子译码器来说不可纠的错误事件,在另一子译码器中被打散,成为可纠差错。交织方式主要有规则交织、不规则交织和随机交织3种。规则交织就是通常所说的行写列读的交织方法,它的效果比较差随机交织指交织格式是随机分配的,理论上它的性能最好,但若采用真正的随机交织,势必要将整个交织位置信息传送给译码器,降低了编码效率不规则交织是一种伪随机交织,它对每一编码块采用固定的交织方法,但块与块之间的交织器结构不同。不规则交织器的构造方式有很多,例如假定I和J,IR和JR分别为交织前后某位数据所处的行和列,交织方式如下式所示MOD1RRIANDIJLJJPI(23)式中,P是一组质数,交织后的数据在每一行的位置由P决定,具有伪随机性。RANDOM是一个与L互质且小于L的随机正整数,在每个编码块开始之前随机取值,并在此次编码中保持不变。每块的RANDOM值需传送到译码器,由于它仅取值范围有限的正整数,所以对整个系统编码效率影响极小。3凿孔对于太空应用,适用低码率的码。而在其它环境下,如在卫星通信中,优先选择1/2或更高一些码率。TURBO码的凿孔器周期性地删除一些特定的比特,以减小编码开销。对采用迭代译码的情形,最好仅删除图1中所示的校验比特,但这不能保证码字间的最小距离最大化。例如为获得一个1/2码率的码,我们可以删除上位编码器输出的所有偶校验比特和下位编码器输出的所有奇校验比特。22TURBO码的译码器图22是采用迭代译码的译码框图。TURBO码的编码部分由两个子编码器组成,在其译码部分也就相应有两个子译码器。一般情况下,两个子译码器可采信息编码理论小论文5NBIT反交织器译码器1NBIT反交织器NBIT反交织器译码器2用多级级联结构。由于TURBO码第二个子编码器的信息位没有输出,第一个子译码器只能利用第一个子译码器译出的信息序列进行译码。软判决译码比硬判决译码性能提高23DB,因此每一子译码器都用软输入软输出译码器。译码器工作原理如下由于接收序列为串行数据,首先要进行数据的串并转换,同时将凿孔的比特位填上“虚拟比特”,不影响译码判决的值如0。将经过串并转换后的SY和1P送入了译码器1译码,并产生可靠性信息12SL,将SY和12交织后作为子译码器2的软输入,子译码器2根据译码算法对、和P译码产生可靠性信息1SL,S经过反交织后,与SY和1P作为子译码器1的软输入,经子译码器1译码再次得到可靠性信息送给了译码器2。如此循环进行,直到译码性能不再提高。采用这种迭代译码器的好处是,每个译码器不仅能利用本译码器的信息比特和校验比特,还能利用前一译码器提供的信息进行译码,从而提高译码的准确性。TURBO码的译码算法建立在卷积码算法基础上,较典型的算法有MAP和SOVA两种。MAP是为每个符号计算一个后验概率,并选择符号差错概率最小的作为输出。它不是序列差错概率最优,而是符号差错概率最优,这种算法在每一时刻都要考虑到所有路径,比较复杂。图22采用两个MAP译码器的迭代译码器框图23译码算法TURBO码译码算法基于最大后验概率(MAP)算法或者是软输出维特比(SOVA)算法。MAP算法是最小化符号或比特差错概率,SOVA算法是最小化序列差错概率。在低SNR环境下,MAP算法比SOVA算法的性能有一定改善,。MAP是TURBO码译码的最优算法。MAP算法采用对数似然比函数LLR,也即后验概率APP的比值的对数值作为其软判决的输出,但是MAP算法在每一时刻都要考虑所有路径,并且其运算是乘法和指数运算,比较复杂,需要大量的运算,限制了译码的规模和速度。下面对LOGMAP算法做个详细的说明。由于TURBO码的译码由多级迭代译码实现,译码单元之间采用软输入软输出TURBO码的编译码实现及LOGMAP算法性能仿真SISO译码器,它能为每一译码比特提供对数似然比输出。LOGMAP是MAP算法在对数域上的计算方式。假设MAP译码器的输入序列为为RN,LDK是关于信息序列KD的先验信息,LDK是关于KD对数似然比7。它的定义为1LOG0KKPLD241/LNKKRP25MAP算法从联合概率分布KM计算译码比特KD的先验概率APP,KM的定义为,|INRKIPDISR26译码比特K的先验信息为|,01NIRKIKMDR27则(25)可写为11LOG/KKKMD(28)通过K进行判决,判决式如下1KD若0KD0若(29)而KD利用利用BAYES定律,引入引入前向递归量A,后向递归量P,转移分支度量Y等参数可求得,1,111,|,|LOG|0|NKRKKKRKKMKPRSMRPDSMR(210)3TURBO码的实验仿真和分析运用MATLAB对TURBO码的性能进行计算机仿真分析,可以得到TURBO码译信息编码理论小论文7码算法中一些关键参数对误码率性能的影响方式和影响程度。要对TURB码性能进行仿真测试,就必须构造出其编码器,对由信源产生的随机信息比特分组进行编码,然后将编码后的码字经过加性高斯白噪声信道发送到接收端,利用LOGMAP算法进行相应的译码而得到解码后的信息比特分组,最后比较编译码前后的信息比特分组,计算不同信噪比情况下的误码率,并做出曲线加以分析。仿真框图图31所示随机信源编码信道译码BER计算图31TURBO码性能仿真框图本次仿真译码方法采用LOGMAP算法。下面分别介绍各个模块的功能随机信源用于产生“0”和“1”随机分布的消息比特组,比特组个数为K,可看成为一帧。编码器用于对信源输出的消息比特组进行TURBO编码。信道用于产生加性高斯白噪声,对编码器输出的码字进行干扰。在仿真工程中,信道的噪声功率谱密度应该为可调的。译码译码器采用了LOGMAP译码算法,译码器的性能和其迭代次数ITER有关系,因此这边ITER设置为可调。LOGMAP译码算法在对数域实现,计算可以更加简单。BER计算将原本的信息比特组同译码后的信息比特组逐一比较,从而进行系统误码率的计算。仿真一在有扰信道中,不同信噪比下,简单地仿真MAP译码算法的TURBO码下的性能。该仿真由LOGMAPM实现,其仿真结果如图32图32信噪比与误比特率关系图观察曲线,很明显地,随着信噪比的增加,信道的误码率也跟随着下降。另外,由曲线可知采用LOGMAP译码TURBO码可使在信噪比比较小的情况下,得到较低的误码率,比如EB/NO4DB时,误码率只为000075。仿真二数据帧(程序每帧设置为400BIT,即为比特组在有扰信道传输时,TURBO码的编译码实现及LOGMAP算法性能仿真采用TURBO码进行编译码,并在固定信噪比时,仿真LOGMAP译码算法在不同迭代次数下的性能。该仿真程序流程图33所示仿真输入变量为帧长400比特的随机信息序列,经过随机交织,用TUBRO码进行编码,经过加性高斯白噪声信道,采用LOGMAP算法进行译码,迭代译码的最大迭代次数设为5,当出现15帧传输错误时终止程序运行。仿真的输出变量为比特流在译码迭代次数不同时,经过信道后的误比特率和误帧率。最终用图形的形式显示结果。由于信噪比对误比特率和误帧率均有影响,因此,该仿真也将其考虑进来,可设置不同的信噪比来进行实验仿真。下面分别信噪比为20DB和10DB情况下的仿真结果。图34是信噪比为20DB时,TURBO译码迭代次数不同时,相对应的误帧率;图35是信噪比为20DB时,TURBO译码迭代次数不同时,相对应的误比特率;图36为,信噪比为15DB时,TURBO译码迭代次数不同时,相对应的误帧率;图37是信噪比为15DB时,TURBO译码迭代次数不同时,相对应的误比特率。图34SNR20DB,误帧率与迭代次数关系图YN初始化各种变量,错误帧数FERRLIM0产生随机的400比特信息序列信息序列交织并编码,输出删除校验序列,设定码率R1/2加入噪声产生,译码输出译码输入复用作为信息序列选择译码算法进行译码计算误比特率和误帧率错误帧数规定值结束图33主程序流程图信息编码理论小论文9图35SNR20DB,误比特率与迭代次数关系图图2图36SNR15DB,误帧率与迭代次数关系图TURBO码的编译码实现及LOGMAP算法性能仿真图37SNR15DB,误比特率与迭代次数关系图通过以上仿真曲线图可以看出,在相同的信噪比下,只进行一次循环迭代时,即译码单元只计算一次,TURBO码的性能非常差。经过几次迭代后,误比特率和误帧率下降十分明显。但是在4至5次循环迭代后的译码性能的改善就很微小了,考虑到每一次迭代所带来的额外时延,这时再增加迭代次数就显得没有必要了。一般认为,TURBO码在510次循环迭代之间达到饱和。将图1与图3,图2与图4进行对比,不难发现,译码迭代次数相同时,信噪比为20DB下的误帧率和误比特率均小于信噪比为15DB时的值,比如迭代次数为3时,信噪比为20DB的误码率为0004小于信噪比为15DB下的0013,这表明信噪比的增加可以降低误码率或误帧率。曲线也反映了采用LOGMAP算法译码的TURBO码性能的优越,在信噪比要求不高时,就可以做到较低的误码率。比如本仿真采用的15DB,经过一次迭代时,误码率为037左右,但经过5次迭代后,其误码率仅为00025。这个若用其他码来编译的话,是比较不容易做到的。另外,曲线中很明显地,大概前30帧,误比特率和误帧率地统计是不平稳的,即变化比较大,这是因为刚开始传输时,传输的比特总数偏少,对总的误比特率缺乏科学性。随着传输帧的增加,传输的比特数也跟着增加,此时的统计才是科学的,图行所显示的误比特率才可以反映此时LOGMAP算法的性能。最后,在实验仿真过程中发现,整个运算花费时间比较长,随着迭代次数的增多,运算量增大,运算时间也增长。这是因为1LOGMAP译码算法在计算中求对数似然比和中间变量的迭代过程中存在着大量的指数、乘法和加法运算2译码时需要与接收序列大小成正比的存储量3需要接收完整的序列才能获得信息位软输出。因此,在实际应用中,采用TURBO码时,需考虑其译码时延的问题,对算法进行研究改善。4结束语TURBO码的出现为编码理论和实践带来了一场革命。在理论上,TURBO码不仅有着不同于以往的结构,而且它给我们带来了迭代译码的思想,使通过可译编码逼近信道容量成为可能。目前,TURBO码已作为第三代移动通信系统的信道编码方案之一;而且,在国际海事卫星组织最新公布的INMARSATPHONEM4中,就是以TURBO码为核心技术来实现压缩频带的高速数据传输的;由于TURBO码的译码采用了迭代译码的思想,因此可以把它推广到CDMA多用户检信息编码理论小论文11测中,实现基于TURBO码译码原理的CDMA多用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论