turbo码的编译码实现及logmap算法性能仿真read

上传人:工**** 文档编号:490192985 上传时间:2023-05-04 格式:DOC 页数:11 大小:658.50KB
返回 下载 相关 举报
turbo码的编译码实现及logmap算法性能仿真read_第1页
第1页 / 共11页
turbo码的编译码实现及logmap算法性能仿真read_第2页
第2页 / 共11页
turbo码的编译码实现及logmap算法性能仿真read_第3页
第3页 / 共11页
turbo码的编译码实现及logmap算法性能仿真read_第4页
第4页 / 共11页
turbo码的编译码实现及logmap算法性能仿真read_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《turbo码的编译码实现及logmap算法性能仿真read》由会员分享,可在线阅读,更多相关《turbo码的编译码实现及logmap算法性能仿真read(11页珍藏版)》请在金锄头文库上搜索。

1、信息编码理论小论文 Turbo码的编译码实现及Log-MAP算法性能仿真 摘要:Turbo码是信道中的一种编码方式,可以改善数字通信的可靠性。它是并行级联递归系统卷积码RSC,在接近Shannon限的低信噪比下能获得较低的误码率。因为其优越的性能,现在已经被许多通信系统所采用。本文对近年来的研究热点Turbo码进行分析。在阐明了Turbo码基本原理的基础上,采用MATLAB工具实现了随机信息序列的Turbo码的编译过程,以及仿真了在加性白噪声干扰信道情况下Log-MAP算法译码表现出的性能。 关键词:Turbo码 ,Log-MAP算法 ,迭代译码 Abstract: Turbo code is

2、 a kind of channel encoding,that can improve the reliability of digital communications. It is a parallel concatenated and recursive systematic convolutional codes(RSC). With a low SNR , nearing the Shannon limit ,can get a lower error rate. Because of its superior performance, it has now been applie

3、d in many communication systems. In this paper, we accomplish the analysis of Turbo codes, which is the research hotspot in recent years. After elucidating the basic principle of the Turbo codes, we use MATLAB to implement Turbo encoding ande decoding for the random message sequence and simulate the

4、 performances of Log-MAP decoding algorithm with a white noise channel.Key words: Turbo codes, Log-MAP algorithm, iterative decoding一、引言1993年Turbo码由C.Berrou等人最先提出,它在编码端用两个或更多子编码器并联构成,译码端采用基于软判决信息输入/输出的反馈迭代结构。Turbo码自提出以来1,就以其优越的译码性能倍受关注。它在误码率为时与香农的理论极限仅相差0.5dB,且对信道变化不敏感,所以近几年成为编码理论研究的重点方向,并广泛应用于3G2通信

5、体系中。目前对Turbo码的研究主要集中在译码算法、交织器设计和译码结构等方面。Turbo码的译码算法总体上可分为MAP和SOVA两类主要算法3MAP类算法主要包括MAP算法、LOG-MAP算法、MAX-LOG-MAP算法。其中MAP算法是一种最佳后验率算法,LOG-MAP是MAP算法在对数域上的计算方式,MAX-LOG-MAP算法是对LOG-MAP算法简化后的次优算法。SOVA类算法主要包括软输出的维特比算法(SOVA)和连续列表输出维特比算法(SLVA)。由于Turbo码接近于随机码2,有很好的距离特性,因而有很强的抗衰落和抗干扰能力,这使得它在信道条件较差的移动通信系统中有很大的应用潜力

6、。Turbo码的编译码器中交织器的长度都一般比较长,这是因为码长是决定Turbo码性能的一个重要因素。但是,采用较长的码长必然会带来较大的延时。因此,延时对Turbo码的应用有一定的限制作用。码长较长以及对延时要求不高的情况是Turbo码最佳的适用情况。所以Turbo码最早被应用于深空通信等对码率要求很低、但信道环境恶劣的场合,以及磁记录的纠错编码等非实时场合。但随着迭代译码算法的改进、大规模集成电路工艺的改进,Turbo码渐渐被用到实时通信当中,从卫星通信到网络到广播到个人通信等等。现在Turbo码已经成为3G以及4G的信道编码标准的一部分4。MAP算法是一种基于码元的最大后验概率译码算法,

7、对于线性块编码的卷积码,它能使比特错误率最小。也是最早应用于Turbo码中的译码算法5。但是采用此算法计算量大,译码复杂度高。针对这些译码算法的复杂性,人们对其进行了修正和改进。对Turbo码的译码算法的简化、复杂度的降低、内存的减少,并在理论上对Turbo码进行解释一直是人们研究的热点。其中,LOG-MAP 是在MAP算法的基础上改进而得到的,是MAP算法的对数形式,通过将大量的乘法运算转化成加法来简化复杂性。 二、Turbo码译码实现原理Turbo码在一般译码复杂度下获得较高的编码增益。在发送端,编码器采用并行级联编码技术,用简单的码构造长码;在接收端,译码器把长码化成短码,利用软输入/软

8、输出迭代译码算法进行译码。Turbo码的性能距离Shannon 限已相当接近。62.1 Turbo码编码器 图2-1是标准的Turbo码编码框图。它由2个(也可多个)R=1/2的子编码器C1和C2 ,1个N-bit交织器和1个凿孔功能模块组成。C1和C2并行级联,均属递归系统卷积编码器(RSC),其结构一般是相同的,也可以不同。假设输入编码器的信息序列为u=(u1, u2,、un,它一方面直接输入C1进行编码,生成系统序列和校验序列。另一方面经交织后,输入C2进行编码,产生一个经交织的系统序列和另一个校验序列,和仅存在交织关系,因此,只保留即可。显然,若没有凿孔单元,编码器速率为1 /3即N为

9、比特信息输入,3N为编码比特输出。为了得到较高的码率,可采用凿孔的方法,按一定的格式,对和删除一些校验位。例如删除所有的奇比特和偶比特,子编N-bit交织器RSC1:g2(D)/g1(D)RSC2:g2(D) /g1(D)凿孔单元u=xsX1p X2p图 2-1 Turbo码编码框图码器的码率为= 2 / 3,整个编码器的码率为R= 1 /2,当然,我们也可以使C1和C2具有不同的码率,整个编码器码率R与子编码器码率和的关系为: (2-1) 下面将逐一讨论编码器各组成部分。(1)递归系统编码器 码率为1 /2的递归系统编码器的生成矩阵可表示为: (2-2)显然,输入序列能被g1(D)除尽时,输

10、出码字序列才具有有限的重量,可得出如下两个推论: (1)重量为1的输入将产生无限大重量的输出(这样的输入不可能被g1(D)整除)。(2)对任一非平凡的g1(D),存在一组重量为2,形式为Dj(1+D(q-1),j0,能被g1(D)整除的输入,其产生的输出为有限重量。当g1(D)为阶数M的既约多项式时q=2m;通常g1(D)产生的伪随机序列长度为(q一1)。 在码的网格图中,推论1意味着对于重量为1的输入,将产生一个从全0开始,但再不会合的路径。推论2表明,重量为2的数据序列总能产生一个开始时有分支,但能会合的网格路径。 选用并联时,必然首选系统码形式的子编码器。这样,只发送一个编码器的系统序列

11、,从而提高码率。RSC码当前码元的生成与当前时刻之前的所有码元有关系。要证明这点比较复杂,有个明显的例子,就是有限输入码重很可能产生无限输出码重。编码约束长度越长,性能就越好,因此RSC对Turbo码很合适。 (2)交织器 交织器的功能是将每一组N比特数据重新组织,再送往第一个编码器进行编码。在译码端,对于某一个子译码器来说不可纠的错误事件,在另一子译码器中被打散,成为可纠差错。交织方式主要有规则交织、不规则交织和随机交织3种。规则交织就是通常所说的行写列读的交织方法,它的效果比较差;随机交织指交织格式是随机分配的,理论上它的性能最好,但若采用真正的随机交织,势必要将整个交织位置信息传送给译码

12、器,降低了编码效率;不规则交织是一种伪随机交织,它对每一编码块采用固定的交织方法,但块与块之间的交织器结构不同。不规则交织器的构造方式有很多,例如:假定i和j,ir和jr分别为交织前后某位数据所处的行和列,交织方式如下式所示: (2-3) 式中,P()是一组质数,交织后的数据在每一行的位置由P()决定,具有伪随机性。random是一个与L 互质且小于L的随机正整数,在每个编码块开始之前随机取值,并在此次编码中保持不变。每块的random值需传送到译码器,由于它仅取值范围有限的正整数,所以对整个系统编码效率影响极小。(3) 凿孔对于太空应用,适用低码率的码。而在其它环境下,如在卫星通信中,优先选

13、择1 /2或更高一些码率。Turbo码的凿孔器周期性地删除一些特定的比特,以减小编码开销。对采用迭代译码的情形,最好仅删除图1中所示的校验比特,但这不能保证码字间的最小距离最大化。例如为获得一个1 /2码率的码,我们可以删除上位编码器输出的所有偶校验比特和下位编码器输出的所有奇校验比特。2.2 Turbo码的译码器 图2-2是采用迭代译码的译码框图。Turbo码的编码部分由两个子编码器组成,在其译码部分也就相应有两个子译码器。一般情况下,两个子译码器可采用多级级联结构。由于Turbo码第二个子编码器的信息位没有输出,第一个子译码器只能利用第一个子译码器译出的信息序列进行译码。软判决译码比硬判决

14、译码性能提高23dB,因此每一子译码器都用软输入软输出译码器。译码器工作原理如下:由于接收序列为串行数据,首先要进行数据的串并转换,同时将凿孔的比特位填上“虚拟比特”,(不影响译码判决的值如0)。将经过串并转换后的和送入了译码器1译码,并产生可靠性信息,将和交织后作为子译码器2的软输入,子译码器2根据译码算法对、和译码产生可靠性信息,经过反交织后,与和作为子译码器1的软输入,经子译码器1译码再次得到可靠性信息送给了译码器2。如此循环进行,直到译码性能不再提高。 采用这种迭代译码器的好处是,每个译码器不仅能利用本译码器的信息比特和校验比特,还能利用前一译码器提供的信息进行译码,从而提高译码的准确

15、性。Turbo码的译码算法建立在卷积码算法基础上,较典型的算法有MAP和SOVA两种。MAP是为每个符号计算一个后验概率,并选择符号差错概率最小的作为输出。它不是序列差错概率最优,而是符号差错概率最优,这种算法在每一时刻都要考虑到所有路径,比较复杂。 N-bit反交织器译码器1N-bit反交织器N-bit反交织器译码器2 图2-2 采用两个MAP译码器的迭代译码器框图2.3 译码算法Turbo码译码算法基于最大后验概率(MAP)算法或者是软输出维特比(SOVA)算法。MAP算法是最小化符号或比特差错概率,SOVA算法是最小化序列差错概率。在低SNR环境下,MAP算法比SOVA算法的性能有一定改善,。MAP是Turbo码译码的最优算法。MAP算法采用对数似然比函数(LLR,也即后验概率APP的比值的对数值)作为其软判决的输出,但是MAP算法在每一时刻都要考虑所有路径,并且其运算是乘法和指数运算,比较复杂,需要大量的运算,限制了译码的规模和速度

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号