Matlab实现turbo编译码毕业论文.doc

上传人:小小飞 文档编号:3902685 上传时间:2019-10-10 格式:DOC 页数:33 大小:1.56MB
返回 下载 相关 举报
Matlab实现turbo编译码毕业论文.doc_第1页
第1页 / 共33页
Matlab实现turbo编译码毕业论文.doc_第2页
第2页 / 共33页
Matlab实现turbo编译码毕业论文.doc_第3页
第3页 / 共33页
Matlab实现turbo编译码毕业论文.doc_第4页
第4页 / 共33页
Matlab实现turbo编译码毕业论文.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《Matlab实现turbo编译码毕业论文.doc》由会员分享,可在线阅读,更多相关《Matlab实现turbo编译码毕业论文.doc(33页珍藏版)》请在三一文库上搜索。

1、Matlab实现turbo编译码Matla实现turbo编译码本科毕业设计(论文) 题 目 学生姓名 专业班级 学 号 院 (系)指导教师(职称)完成时间 目 录摘 要IABSTRACTII1 信道编码11.1 信道编码及信道编码的提出11.2 信道编码的发展历程11.3 信道编码的分类42 相关基本概念和常识52.1 关于纠错码的基本概念52.2 卷积码初步63 Turbo码的产生及研究现状73.1 Turbo码的产生背景73.2 Turbo码的研究现状84 Turbo码编码104.1 编码器各部分介绍104.2 编码原理及算法115 Turbo码译码155.1 译码器结构155.2 Tur

2、bo码迭代译码基本原理165.3 MAP(maximum a posteriori)算法176 Matlab介绍及仿真结果216.1 Matlab程序设计语言概述216.2 程序仿真结果237 结束语28致 谢29参考文献30Matlab实现turbo编译码摘 要本文是对一种新型卷积码Turbo码的编译码算法进行研究及其Matlab仿真,着重讨论的是Turbo码译码算法的改进及性能分析。Turbo码由于在比特误码率方面的性能可以接近香农极限,成为当今的研究热点。它的编码器是将两个递归系统卷积码并行级联,而其相应的译码器采用迭代译码方法。第一章解释了信道编码及其相关知识,包括信道编码的分类和发展

3、过程;第二章介绍了编码中常用的基本概念和卷积码的初步知识;第三章介绍了Turbo码的提出以及研究现状;第四章主要讲了Turbo码编码方法、编码器的结构,并给出了具体的编码算法;第五章是本文的核心,重点阐述了Turbo码的译码原理、译码算法。第六章对Matlab做了简要的介绍,并利用它对Turbo码的编码、译码的整个过程做了仿真。第七章列举了Turbo码的不足,然后对本毕业设计做了简要总结及致谢。关键词 信道编码/Turbo码/维特比译码 MATLAB SIMULATION OF TURBO-CODE ENCODING AND DECODINGABSTRACTThis paper deals w

4、ith the study of encoding & decoding algorithm and Matlab simulation of a new convolutional code which called Turbo-code, Specially dicusses the improvement of decoding algorithm and analyszes their performances. Because of its performances in terms of Bit Error Rate (BER) are close to the SHANNON l

5、imit, it be hotspot. Turbo-code encoder uses a parallel concatenation of two Recursive Systematic Convolutional codes and the associated decoder uses iterative decoding methods. Chapter explains what channel coding is and some knowledge pertinent to it. Chapter gives us some basic concepts about enc

6、oding and decoding, then explains convolutional codes and how to generate them. Chapter comes to contact with Turbo codes and generalizes what aspects we are studying of Turbo codes. Chapter makes eyes on encoders structure and how to encode the information bits to Turbo codes. At the end of this pa

7、rt we give a idiographic encoding algorithm. Chapter is the core of this project. This part lay strong emphases on Decoding algorithm of Turbo-code. Chapter introduces Matlab and makes use of it to simulate the whole process of Turbo encoding and decoding. Chapter enumerates the disadvantages of Tur

8、bo codes and summarizes what I obtain from this project, and then express my thanks to my tutor.KEY WORDS channel-coding, Turbo-code, viterbi-decoding281 信道编码1.1 信道编码及信道编码的提出所谓信道编码,就是按照一定的规则给待传送的数字序列d增加一些多余的码元,称之为监督码元,使不具有规律性的数字序列d变换为具有某种规律性的数字序列c,又称为码序列。经变换后得到的码序列中,信息序列的诸码元与多余码元之间是相关的,接收端的译码器则根据这种相

9、关性来检测和纠正传输过程中产生的差错。长期以来,人们一直在努力探索着如何安全可靠的进行信息传输的途径。1948年,香农(C.Shannon)在他的开创性论文通信的数学理论(A mathematical theory of communication)中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的“有扰信道编码定理”,奠定了信道编码(即纠错码)的基石。定理指出:在有噪声的信道环境下,只要信源的信息速率不超过信道容量,就可以找到一种编码方法,使信息的传输速率任意逼近信道容量,而传输的错误概率任意逼近于零,或者传输的失真度能够任意的逼近给定的要求,即实现可靠通信。在这里,香农定理指出了信

10、道编码在实现有效、可靠通信方面的重要地位和作用,并从理论上为信道编码的发展指出来努力的方向。由此,人们还认识到,没有必要建立性能特别好的耗费特别高的信道去保证通信的可靠性,只需应用适当的编码技术便可以达到目的,而且更为经济。自此以后,汉明(Hamming)、斯列宾(Slepian)、普兰奇(Prange)等人在50年代初,根据香农的思想,给出了一系列设计好码和有效译码的方法。1.2 信道编码的发展历程迄今为止,信道编码已有50多年的历史,其发展过程可分为以下几个阶段:50年代和60年代里,人们主要致力于寻找能保证差错概率为任意小的码及译码算法。首先得到重视的是分组码。人们利用代数方法逐步认识了

11、Hamming码、BCH码、RS码等分组码,并发现了一些有效的译码算法。后来,人们又着重用概率方法对卷积码的结构进行研究,提出来Viterbi算法之类的译码算法方法。同时,还提出了一些结构特殊或功能特殊的码,如错误定位码、级联码(concatenated code)、收缩码、不等错误保护码等等。G.D.Forney在1966年提出了一种由短码构造长码的方案:串行级联码方案。如下图所示。级联码的性能良好,译码技术简单,具有实用潜力。图1-1 串行级连码编码器框图 图1-2 串行级连码译码器框图在70年代和80年代,人们不仅对分组码、卷积码分别进行了更深入的研究,而且将代数方法和概率方法结合起来,

12、设计出了几种码字很长、性能较好的码族,使得信道编码理论向着C.Shannon指出的方向进一步推进。这时,人们开始将注意力转向差错控制码在实际通信系统中的应用,设计出来很多适用的差错控制方案。这期间,人们对级联码也进行了初步考察。这些研究为今后信道编码的广泛应用打下了理论基础。80年代以来,信道编码无论在理论上或是在应用方面都得到空前的发展。在理论上,人们不仅从码的未检出错误概率、重量分布、覆盖半径、球半径等各个方面综合进行研究,以期发现性能更好、译码方案更简单的编码方案、而且对级联码之类的特殊码进行深入分析。人们还将差错控制编码与其他抗干扰技术如调制、扩频、保密等结合起来,再用最优化方法进行讨

13、论分析,研究出一些适合于各种通信系统的最优抗干扰方案。集成电路和计算机技术的发展使差错控制编码在通信系统中得到广泛应用,为了适应某些现代通信的要求,如深空通信、流星通信等,人们又设计出了许多新的编码方案。1993 年Berrou提出来当前最热门的一种接近香农极限性能的Turbo码(Turbocodes),这种码又名并行级联反馈系统卷积码。此码的算法简单,却可以很快达到香农限。1.3 信道编码的分类信道编码方法有多种,一般可以按以下方式对其分类:按照信息码元和监督码元之间约束方式的不同,可以分为分组码和卷积码。若本码组的监督码元仅与本码组的信息码元有关,而与其他码组的信息码元无关,则称这列码为分

14、组码;若本码组的监督码元不仅与本码组的信息码元有关而且还和本码组相邻的前若干个码组的信息码元有关,则这列码成为卷积码。按照信息码元与监督码元之间的检验关系又可以分为线性码和非线性码。若编码规则可以用线性方程组来表示,则称之为线性码,反之,若两者不存在线性关系,则称为非线性码。按照编码后每个码字的结构可分为系统码和非系统码。在系统码中,编码后的信息码元保持原样不变,而非系统码中信息码元则改变了原有的信号形式。按照纠正错误的类型的不同,可分为纠正随机错误和纠正突发错误的码。前者主要用于发生零星独立错误的信道,而后者则用于对付以突发错误为主的信道。2 相关基本概念和常识上一章,简单介绍了信道编码相关

15、的一些情况,在本章中,将介绍有关编码的一些相关概念以及卷积码的编码方法。2.1 关于纠错码的基本概念本节中,介绍了一些与信道编码有关的重要的概念知识,这些概念在编、译码理论中非常重要。1、错误图样设发送的是n个码元长的序列C:()通过信道传输到达接收端(纠错码译码器的输入端)的序列为R:。由于信道中存在干扰,R序列中某些码元可能与C序列中对应的码元的值不同。而在二进制序列中的错误只有0错成1或者1错成0,因此把信道中的干扰也用二进制序列E:来表示,则相应有错误的位取值为“1”,无错的位取值为“0”,而R就是C与E序列模2加的结果,即:。我们称E为信道的错误图样或干扰矢量。2、码字和码率分组码是

16、对每段k位长的信息组,以一定的规则增加个校验元,组成长为n的序列:(),这个序列就称为码字(码组或码矢)。码率是指在一个码字中信息位所占地比重,用R表示,R=k/n。R体现了传输信息的有效性。3、汉明距离和汉明重量汉明距离指两个码字之间对应位取不同值得个数;汉明重量是指一个码字中非零码元的个数;最小汉明距离指的是在各种有用码组中汉明距离的最小值。4、码的抗干扰能力与最小汉明距离之间的关系 若码集中码字间的最小距离满足,则该码集中的码字具有检测e个错误的能力; 若码集中码字间的最小距离满足,则该码集中码字具有纠正t个错误的能力; 若码集中码字间最小距离满足(et),则该码集中的码字具有纠t个错误

17、同时检出e个错误的能力。2.2 卷积码初步在当今数字通信系统中大都使用信道编码来提高系统性能。最常用的信道编码是卷积码。一个Turbo码可以看成是二维或多维的卷积码。因此在这里将对卷积码作简单的介绍。卷积码的特点如下:当n和k均较小,且要求纠错能力较强,可使用卷积码。1、卷积码中一个码字(n位)的校验元不仅取决于本码字信息元(k位),而且取决于前m组的信息元。表示为。称为编码记忆,N=m1(N为约束长度);2、译码也需要考虑若干码组的影响方能译出一个码组信息元;3、由于各码组间及码组内相关性较分组码强,卷积码的n、k可用较小的数而获得多位分组码同样的性能。3 Turbo码的产生及研究现状Tur

18、bo码是一类新型的信道编码。Turbo码在编码领域里有三大特点,(1)使用递归系统卷积码作为编码器的编码单元;(2)使用随机交织器;(3)在译码器中使用内部信息和外部信息。3.1 Turbo码的产生背景1948年香农在通信的数学理论中提出了香农第二定理(也称信道编码定理),具体表述为:设信道容量为,对于任何的信息传输速率,都存在长为的分组码可使错误译码概率满足下式: (3-1)式中的指数项是一个在下的的正函数,并且该项只与信道的特性有关。上式说明,对于任何低于的传输速率,可在码率不变的前提下增加分组码的长度,使差错概率为任意小。对卷积码也有类似的界限式,其中由码的约束长度代替。在极限情况下趋向

19、无穷,要求带宽趋向无穷。由信息论的基本知识可知,信道容量 (3-2) 由于 (3-3)由上式可知,当信噪比大于1.6dB,信道容量C大于信息速率R,此时就可实现高斯白噪声信道下的无误传输。这就是带宽无限高斯白噪声信道的极限传输能力,称为香农限。香农在导出上式时,是以随机编码论证为基础的。该界限是对随机选取编码总体上的差错概率取平均得到的。由于总体中肯定存在一些超过平均性能的码,因此这个定理保证存在一些能达到上式界限的码。但是需要考虑的实际问题是一、编码定理并未给出构造有效码的方法;二、当要求的差错率很低时,将迫使采用非常长的码,这导致译码算法非常复杂。因此在过去的几十年内,编码领域中的研究工作

20、主要围绕两个关键问题,即寻求不同长度下具有良好性能的码类,以及复杂程度能够接受下的能实现码的固有性能的译码算法。香农理论已经指出,增加分组码的长度或卷积码的约束长度可以提高码的纠错性能。但是由于最大似然译码的复杂度随增加而增加,以至于物理不可实现,这样人们就试图构造出具有大的等效分组长度,性能强大,同时译码算法又不至于过于复杂的码。如乘积码、级联码、大约束长度的卷积码等都是这方面尝试,因此传统的级联码等及其译码与信道的极限之间还有着很大差距。1993年,法国的C.Berrou 等提出了一种新的纠错码-Turbo码。Turbo码一经提出,就以其优异的性能被编码界专家认为是近几年来最令人兴奋和最具

21、有潜力的重大发展。Turbo码与以往所有的码的不同之处在于它通过一个交织器的作用,达到接近随机编码的目的,并且使等效分组长度很大。香农指出“随机码”是一种好码,因此Turbo码也必然是一种好码。此外它所采用的迭代译码策略,使得译码复杂性大大降低。它采用两个子译码器通过交换称为边信息(或外部信息)的辅助信息,相互支持,从而提高译码性能。边信息的交换是在迭代译码的过程中实现的,前一次迭代产生的边信息经交换后将作为下一次迭代的先验信息。3.2 Turbo码的研究现状自从Turbo码提出以来,Turbo码很快就成为纠错编码界研究的热点。它的研究目前主要集中在以下几个方面:1编码器的研究目前编码器的研究

22、着重于: 子码的选择;非二元Turbo码,即子码用元码代替二元码;编码器结构的研究,如提出采用多子编码器结构;为适应语音、图象等的传输,提出不等能力纠错的Turbo编码,即对信息比特和校验比特的功率分配进行优化。2迭代译码算法的研究目前的一些译码算法存在以下几个主要问题。虽然由于Turbo码采用了迭代译码的思想,每个迭代单元的译码并不是非常复杂,但是要使误码率达到一定要求,迭代次数必须较多,从而使译码时延增大。如果要将Turbo码用于语音传输,时延将不可忍受;译码复杂性随卷积码的约束长度或分组码的码字长度增加而呈指数增加。因此迭代译码算法的研究主要是在保证一定算法性能的前提下,寻找译码复杂性与

23、约束长度无关的算法,并且简化算法,使其便于用硬件实现。同时减少时延,以能用于实时语音通信中。目前的改进集中在以下几方面:(1)通过减少非线性运算减少算法计算量,如提出对数域的MAP算法,使得性能优异的MAP算法便于硬件实现;(2)改进SOVA算法,尤其是减少SOVA算法在短交织长度下和MAP算法的性能差距,使得短交织长度下SOVA算法能以可接受的性能取代MAP算法;(3)采用对偶码的概念译码,避免译码复杂性与约束长度或分组码码字长度成指数关系。(4)改进迭代过程中信息传递的方式,提出了并发(concurrent)算法、双向Viterbi译码方法等,从而加速译码过程; (5)寻找判决迭代收敛的规

24、则,及时结束译码迭代;(6)将神经网络计算器用于Turbo码译码。4 Turbo码编码由于编码方式的不同将直接影响译码的方式、方法,所以,在本章里,将详细介绍有关Turbo码编码器的结构及具体编码方法的算法。Turbo码的基本思想是利用短码构造等效长度意义上的长码。一个典型的Turbo码编码器如图4-1所示。图4-1 Turbo码编码器基本结构编码是通过两个相同的编码器和一个交织器组成。第一个编码器直接对信源信息序列进行编码,第二个编码器则对经过交织器后的信息序列进行编码,交织器对输入的原信息序列进行随机交织后输出。在编码时,为使编码器初始状态置于全零状态,需要在信息序列之后加m个比特尾信息(

25、tail bits),而要使两个编码器同步归零,必须设计合适的交织器。(实际上,在本文中后边对SOVA具体实现时,使得第一个编码器最终的状态归零了,而第二个未归零,但仍可以用类似的方法译码)。4.1 编码器各部分介绍1成员编码器(component encoder)成员编码器(component encoder)也叫子编码器。一般一个Turbo码编码器由两个(可以多个)子编码器和通过交织器的作用并行级联组成.子编码器的结构可以不同,但一般取相同结构,以简化译码.子码可以是卷积码或者是分组码。2交织器(interleaver)Turbo码中交织器的主要作用是减少校验比特间的相关性, 进而在迭代译

26、码过程中降低误比特。其基本的原则是: 通过增加交织器的长度, 可使译码性能得到提高交织器应该使输入序列尽能地随机化, 从而避免编码生成码字的信息序列交织后, 编码仍旧生成低重码字, 导致Turbo码的自由距离减少。交织器一般有这样几种:分块交织、伪随机交织以及两者结合的交织方式。分块交织分为两种:型,采用行顺序写入、列顺序读出方式;型写入顺序与型交织器的写入顺序一致,但读出顺序是以列的倒序来完成的。即从最后一列向第一列读出,而每一列则是从最后一行向第一行的顺序来读出。伪随机交织器。本文中实现的算法就是采用的这种方式,所以在这里详细的介绍一下。伪随机交织器反映的实际上是一种映射关系。其工作过程是

27、:对于长为n的信息序列,首先标记每个比特的位置,然后生成n个0,1之间的随机数,按产生的顺序排列成序列X,每个随机数都对应于信息序列中的信息比特。然后把X中元素按一定的规则重新排列得到新的序列Y,并按Y中元素的顺序读出相应的信息比特,这样就完成了交织。比如伪随机序列0.7621 0.4565 0.0185 0.8214 0.4447,它对应信息序列X为 。将随机序列按升序排列得到0.0185 0.4447 0.4565 0.7621 0.8214,则现在对应的信息序列Y为 。这样,就完成了交织。4.2 编码原理及算法1编码原理如果一个码率为的卷积码的生成矩阵为: (4-1)则其对应的递归系统卷

28、积码的生成矩阵为: (4-2)如以生成矩阵为(也可以表示为g1 1 0 1;1 1 1 1)的递归系统卷积码作为子码,它对应的Turbo码结构如图4-2所示。图4-2 15,17递归卷积码编码结构图输入编码器的信息序列为,它一方面直接输入到进行编码,生成系统序列和校验序列,另一方面,U经过交织器后,输入到中进行编码,产生另一个校验序列,这三个序列经复用单元复用后完成编码,得到发送序列。复用单元的作用是调整编码速率,并将并行数据变换为串行数据流。通常系统序列全部传送,校验序列按照收缩矩阵收缩。图示Turbo码编码器可以采用收缩矩阵将编码速率调整到1/2,矩阵的每行对应一个子编码器,第一列和第二列

29、分别对应子编码器输出的第偶数个码元和第奇数个码元。1表示该码元需要传送,0表示不需传送。如果称对原始信息序列编码为水平方向的编码,称对经过交织器后的信息序列编码为垂直方向的编码。在每个方向上,个信息比特经过编码器输出为 (4-3)其中,或 表示信息比特,表示与该信息比特对应的校验比特,校验比特数取决于系统卷积码的生成多项式。显然 (4-4)传输前经过收缩,有一部分校验比特将不予传送,在接收端未被传送的比特位用零填充。从上面的介绍我们可以看到,Turbo码编码部分级联结构和交织器的共同作用,使Turbo编码接近随机编码,从而保证了Turbo码必定是一种好码。2编码算法1、首先谈一下对生成多项式g

30、的理解。 图4-3 递归系统码对照递归系统卷积码的一般的编码结构图4-3。如前所述,其中1,m+1(其中m是寄存器的数目)。是矩阵g的第一行,可以看成是对应的图5中的反馈环支路;是矩阵g的第二行,可以看成对应的是输出的支路。和分别对应两点的信息。无论还是中的后m个信息位的每一位都分别对应一个寄存器。它们可以看成是标志着一种状态。第一行中的后m位表示产生反馈信息所用到的寄存器,比如说第j1位,它对应于第j个寄存器,该位为1表示用到了该寄存器内的信息,即该寄存器有反馈到输出信息的那个加法器,为零则表示没有反馈回去。同理,中的后m位表示产生信息所用到的寄存器。2、编码算法(1) 对于encoder1

31、:dinput ;L_info=length(d) ;L_total=L_info + m ;goto (3) ;Y(1,:)X ;Y (2,:) Y ;(2) 对于encoder2:dY(1,:)(alpha) ;alpha为伪随机交织图样(是L_total列行向量)L_totallength(d) ;L_infoL_total ;goto (3) ;Y (3,:) Y ;Goto (4)。(3) state为一m列行向量。初始化为零 if L_info,; elseif L_infoL_total 2:m+1 state ;endif = state ; state ; state= st

32、ate(1:m1) ; kk1 ; if k L_total goto ;(4) 令Y=2Y1 (把0和1信号调制成1和1信号 );然后进行并/串变换:如果没有删余,则对矩阵Y按列的顺序取,取完第一列,取第二列,直到最后一列(第L_total列);如果有删余,则对于Y的第一行系统码,当取第奇数个系统码时,取对应列第二行的校验码,当取第偶数个系统码时,取对应列第三行的校验码。5 Turbo码译码译码算法的研究是Turbo码研究的一个主要方面,因为它决定整个系统能否充分发挥Turbo码的固有性能。选择算法的基本原则是在一定的复杂性和时延要求下保持一定的性能,并且利于硬件实现。选择合适的译码算法,对

33、于使Turbo码能在实用系统中充分发挥其性能优势是非常重要的。迭代(iterative)译码思想是Turbo码的一大特色。它采用两个子译码器,通过交换称为边信息(外部信息)的辅助信息相互支持,从而提高译码性能。边信息的交换在迭代的过程中实现,前一次迭代产生的边信息经交换后将作为下一次迭代的先验信息。5.1 译码器结构接收端将串行的数据流转换成适合译码的并行数据流,如果经过了删余(puncture),则对未传送的校验比特以零填充。译码器由DEC1和DEC2两个子译码器组成,分别对应编码器和。图5-1 Turbo码译码器结构图5-1所示的是Turbo码译码器结构,其输入分别是和。每个子译码器将从本

34、身的译码过程中得到的外部信息(Extrinsic Information)提供给另一个子译码器,作为其译码的辅助信息,从而提高整体译码性能。图示译码器只是一种概念上的结构,实际实现采用迭代译码方式如图5-2所示,这也是Turbo码的重要特色。在执行软输入/软输出的迭代译码过程中,子译码器之间相互配合,从而达到一种全局译码的效果,充分挖掘了码的固有纠错性能。Turbo码的译码策略,在于使用简单的译码单元的迭代来替代复杂的一次性译码,相对于长约束长度的卷积码来说,Turbo码每个译码单元的状态数要少得多,因而译码复杂性减少,其缺点是迭代过程带来的不可避免的时延,因为从时间的角度看,它相当于n级(n

35、等于迭代次数)具有相同结构得译码单元相连,如图5-2。为了产生和利用边信息(外部信息),子译码单元必须具有软输入/软输出的能力。适合于这种译码思想的算法以Bahl的算法最具有代表性,应用也最广。这是一种对具有有限状态马尔可夫特性的码及离散无记忆特性的信道提供逐符号或逐比特似然值的最优算法。图5-2 Turbo码迭代译码形式这种算法的缺点是复杂性高,涉及对数及乘法等运算,不利于硬件实现。在维特比译码算法上改进的软输出维特比算法,简称SOVA译码,复杂性较低,比较利于硬件实现,但是相应地性能也有所下降。根据要达到同样的误码率,SOVA算法所需要的信噪比要比MAP算法大0.8dB左右。5.2 Tur

36、bo码迭代译码基本原理为了下文介绍的方便,首先介绍一下迭代译码中常用的一些概念,然后介绍迭代译码的基本原理。1、似然函数设是元素为+1,-1的GF(2)即二元伽罗华域的元素,在模2加下,+1表示零元。随机变量的对数似然函数定义为 (5-1)其中表示随机变量取值为的概率。似然函数称为随机变量的软值。的符号代表硬判决值,的绝对值表示该判决的可靠性。没有特殊说明,对数取自然对数。在已知另一随机变量的条件下,条件似然函数比定义为 (5-2)2、软信道值对一个软值为的二进制变量进行编码,可得到一个软值为的码元。对于一个系统码,前个码元和信息比特相等。经过一个二进制对称信道或高斯/衰落信道,在接收端匹配滤

37、波器输出为的条件下,有: (5-3)运用前面定义,有 (5-4)其中称为信道可靠性能。表示衰落因子,在高斯信道中,我们令。是信号能量,是高斯白噪声的单边带功率密度谱。在通常情况下,如衰落信道,是时变的,而在高斯信道中是恒定不变的。以下部分我们假定信道是高斯信道。软信道值中包含了关于信道的信息。下一节分别介绍MAP算法和SOVA算法,并且以SOVA算法为主,并给出具体比较实用的算法。5.3 MAP(maximum a posteriori)算法MAP算法是由Bahl,Cocke,Jelinek,和Raviv等人提出的,所以也称为BCJR算法。 编码器的输出码字序列为: ,在经过离散无记忆高斯信道

38、的传输后,码字变为,其中, 。设为时刻编码器所处的状态,是时刻到时刻转移时的输入比特,时刻和时的状态分别用m和表示。译码的数据比特的后验概率可以从联合概率得到,其中,由下式定义: (5-5)这样,译码的数据比特的后验概率则等于: (5-6)由(11),与解码比特相联系的对数似然比可写成: (5-7)最后,解码器通过对和一个等于0的门限值比较后,作出以下判决: 若 若 (5-8)为了计算概率,我们引入概率函数, 和: (5-9) (5-10) (5-11)这里,表示从格栅起始时刻到时刻收到的符号序列,表示从时刻到格栅终止收到的符号序列。其中中得q(|)取值为“0”或“1”,最后一项(|)为译码器

39、的状态转移概率,由于编码比特以等概率1/2取“0”和“1”,所以这一项就等于1/2。则联合概率可用贝叶斯定理重写为: (5-12)这样,我们得到 (5-13)考虑到如果状态已知,时刻k后的事件不受观察值和比特的影响,则概率等于: (5-14)MAP算法从概率采用前、后向递推的方式来计算和。最后我们可得: (5-15)及 (5-16)显然在的递推过程中,要知道格栅最后时刻所处的状态,我们通常假设格栅的起始和终止状态都为零。这样和可初始化为: (5-17) (5-18)运用(5-6)式所定义的对数似然比公式及(5-14)、(5-15)和(5-16)式, 为: (5-19)由于编码器是系统码(),表

40、达式中的转移概率是与状态值和无关的。因此,将这个条件代入(5-19)式的分子和分母,则有: (5-20) 根据条件(或,变量是均值为1(或-1)和方差为的高斯变量,因此对数似然比依然是等于: (5-21)其中, (5-22)是一个由编码器引入的冗余信息函数,一般情况下和的符号一样,因此可以改进每一个解码器数据比特的对数似然比。这个数值代表了解码器提供的外在信息,但它并不依赖于解码器的输入,这个性质可以用来对两个并行级连编码器进行解码。6 Matlab介绍及仿真结果本章重点讲述了利用Matlab这个工具对Turbo的编、译码过程进行仿真。译码算法采用的是SOVA算法以及改进的双向SOVA算法,并

41、总结了这两种算法的译码性能以及它们之间的性能比较。6.1 Matlab程序设计语言概述计算机对科学技术的几乎一切领域产成了极其深远的影响。熟练掌握并利用计算机进行科学计算研究及工程应用已是广大科研设计人员所必备的基本技能之一。从事科学研究和工程应用时候所遇到的最大的困扰大抵是我们在计算涉及矩阵运算或画图时,采用Fortran、C及C等计算机语言进行程序设计是一项十分麻烦的工作,不仅需要对所利用的有关算法有深刻的了解,还需要掌握所用语言的语法及编程技巧。为了准确的把一个控制系统的复杂模型输入计算机,然后对之进行进一步的分析与仿真,1990年Mathworks公司为Matlab提供了新的控制系统模

42、型图形输入与仿真工具Simulab,该工具很快在控制界得到了广泛的使用。但因其名字与著名的软件公司Simula相似,所以在1992年正式改名为Simulink,此软件有两个明显的功能:仿真与连接,亦即利用鼠标在模型窗口上画出所需的控制系统模型,然后利用该软件提供的功能对系统直接进行仿真处理。很明显,这种做法使得一个很复杂的系统的输入相当容易。Simulink的出现,使得Matlab为控制系统的仿真及其在CAD等中的应用打开了崭新的局面。1、Matlab的特点Matlab作为一种数值计算和与图形处理工具软件,其特点是语法结构简明、数值计算高效、图形处理完备、易学易用,它在矩阵代数数值计算、数字信

43、号处理、震动理论、神经网络控制、动态仿真等领域都有广泛的应用。与C、C+、Fortran等高级语言相比,Matlab不但在数学语言的表达与解释方面表现出人机交互的高度一致,而且具有优秀高技术计算环境所不可缺少的如下特征:(1) 高质量、高可靠的数值计算能力;(2) 基于向量、数组和矩阵的高维设计语言;(3) 高级图形和可视化数据处理的能力;(4) 广泛解决各学科各专业领域内复杂问题的能力;(5) 拥有一个强大的非线性系统仿真工具箱Silmulink;(6) 支持科学和工程计算标准的开放式、可交互结构;(7) 跨平台兼容。2、Matlab工具箱和内容目前Matlab已经成为国际上最流行的软件之一

44、,它除了传统的交互式编程外,还提供了丰富可靠的矩阵运算。图形绘制、数据处理、图象处理、方便的Windows编程等便利工具。出现了各种以Matlab为基础的使用工具箱,广泛的应用于自动控制、图象信号处理、生物医学工程、语言处理、雷达工程、信号分析、震动理论、时序分析与建模、化学统计学、优化设计等领域,并表现出一般高级语言难以比拟的优势。较为常见的工具箱主要包括:(1) 控制系统工具箱(Contorl systems toolbox)(2) 系统识别工具箱(Systems identification toolbox)(3) 多变量频率设计工具箱(Multivariable freguency design toolbox)(4) 鲁棒控制工具箱(Robust control toolbox)(5) 分析与综合工具箱(analysis and synthesis toolbox)(6) 神经网络工具箱(Neural network toolbox)(7) 最优化工具箱(Optimizat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1