62卷积码

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

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

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

资源描述

西安邮电大学通信与信息工程学院科研训练报告专业班级:通工1112班学生姓名:苏越学号(班内序号):03111030(05号)2014年4月11日——————————————————————————装订线—————————————————————————————————报告份数:实验总成绩:-1-摘要卷积码是P.Elias于1955年发明的一种分组码。分组码在编码时,先将输入信息码元序列分为长度为k的段,然后按照编码规则,给每段附加上r位监督码元,构成长度为n的码组。各个码组之间没有约束关系,即监督码元只监督本码组的码元有无错码。因此在解码时各个接收码组也是分别独立地进行解码的。卷积码则不同。卷积码在编码时,虽然也是把k个比特的信息段变成n个比特的码组,但是监督码元不仅仅和当前的k比特信息段有关,而且还同前面m=(N-1)个信息段有关。所以一个码组中的监督码元监督着N个信息段。通常将N成为码组的约束度。一般来说,对于卷积码,k和n的值是比较小的整数。通常将卷积码记作做(n,k,m),其码率为k/n。关键词:卷积码、编码、编码器-2-AbstractConvolutioncodeisP.Eliasin1955agroupofinventioncode.Inthecodeblockcode,atfirsttheinputinformationcodeyuansequenceintotheperiodlengthisk,thenaccordingtocodingrulestogiveeachsectiononrasupervisioncodeadditionalRMB,constitutethelengthisnyardsgroup.Eachcodewithoutconstraintrelationbetweengroup,namelysupervisioncodeyuanonlysupervisethiscodeofthegroupcodeelementforwrongwords.ifit.Sowhenreceivingyardsinthedecodingeachgroupwerealsoindependentlyofthedecoding.Convolutioncodeisdifferent.Convolutioncodeinthecoding,althoughit'sabitofinformationsectionknbitsofcodeintoagroup,butsupervisioncodeyuanandthecurrentkbitnotjustforinformation,butalsoonthefrontwithm=(n-1)informationsectionon.SoagroupofthesupervisioncodecodeelementoverseesNinformationsection.UsuallywillbecomeyardsofthegroupNconstraintdegree.Generallyspeaking,forconvolutioncode,kandnvalueissmallerinteger.Usuallywillconvolutioncodewrittenfordo(n,k,m),thecoderatefork/n.Keywords:convolutioncode,coding,encoder-3-一、引言卷积编码在通信系统当中是一种重要的编码技术,对其进行编码人工来做比较复杂,本次就利用matlab擅长的矩阵运算,对序列信息进行卷积编码。再这次编码当中可以发现,matlab在通信系统当中的应用是比较广泛的,包括上次做的滤波器论文。经过这次论文写作,对matlab熟悉了很多,也明白对matlab的学习程度直接影响通信原理的学习好坏。二、发展背景1948年,Bell实验室的C.E.Shannon发表的《通信的数学理论》,是关于代信息理论的奠基性论文,它的发表标志着信息与编码理论这一学科的创立。Shannon在该文中指出,任何一个通信信道都有确定的信道容量C,如果通信系统所要求的传输速率R小于C,则存在一种编码方法,当码长n充分大并应用时,信息的错误概率可以达到任意小。从Shannon信道编码定理可知,随着分组码的码长n或卷积码的约束长度N的增加,系统可以取得更好的性能(即更大的保护能力或编码增益),而译码的最优算法是MLD,MLD算法的复杂性随n或N的增加呈指数增加,因此当n或N较大时,MLD在物理上是不可实现的。因此,构造物理可实现编码方案及寻找有效译码算法一直是信道编码理论与技术研究的中心任务。Shannon指出了可以通过差错控制码在信息传输速率不大于信道容量的前提下实现可靠通信,但却没有给出具体实现差错控制编码的方法。20世纪40年代,R.Hamming和M.Golay提出了第一个实用的差错控制编码方案,使编码理论这个应用数学分支的发展得到了极大的推动。通常认为是R.Hamming提出了第一个差错控制码。当时他作为一个数学家受雇于贝尔实验室,主要从事弹性理论的研究。他发现计算机经常在计算过程中出现错误,而一旦有错误发生,程序就会停止运行。这个问题促使他编制了使计算机具有检测错误能力的程序,通过对输入数据编码,使计算机能够纠正这些错误并继续运行。Hamming所采用的方法就是将输入数据每4个比特分为一组,然后通过计算这些信息比特的线性组合来得到3个校验比特,然后将得到的7个比特送入计算机。计算机按照一定的原则读取这些码字,通过采用一定的算法,不仅能够检测到是否有错误发生,同时还可以找到发生单个比特错误的比特的位置,该码可以纠正7个比特中所发生的单个比特错误。这个编码方法就是分组码的基本思想,Hamming提出的编码方案后来被命名为汉明码。分组码所存在的固有缺点可以通过采用其他的编码方法来改善。这种编码方法就是卷积码。卷积码是Elias等人在1955年提出的。卷积码与分组码的不同在于:它充分利用了各个信息块之间的相关性。通常卷积码记为(n,k,N)码。卷积码的编码过程是连续进行的,依次连续将每k个信息元输入编码-4-器,得到n个码元,得到的码元中的检验元不仅与本码的信息元有关,还与以前时刻输入到编码器的信息元(反映在编码寄存器的内容上)有关。同样,在卷积码的译码过程中,不仅要从本码中提取译码信息,还要充分利用以前和以后时刻收到的码组.从这些码组中提取译码相关信息,而且译码也是可以连续进行的,这样可以保证卷积码的译码延时相对比较小。通常,在系统条件相同的条件下,在达到相同译码性能时,卷积码的信息块长度和码字长度都要比分组码的信息块长度和码字长度小,相应译码复杂性也小一些。三、原理内容及研究现状、卷积码编码器原理编码器由3种主要元件构成,即移存器、模2加法器和旋转开关。移存器共有Nk级,模2加法器共有n个。每个模2加法器的输入端数目不等,它连接到某些移存器的输出端;模2加法器的输出端接到旋转开关上。在每个时隙中,一次有k个比特从左端进入移存器,并且移存器各级暂存的内容向右移了k位。在此时隙中,旋转开关旋转一周,输出n个比特(nk)。下面我们仅仅讨论实用中最常用的卷积码,其k=1。这时,移存器共有N级。每个时隙中,只有1比特的输入信息进入移存器并且,移存器各级暂存的内容向右移1位,开关旋转一周输出n比特。所以,码率为1/n。在右图中给出一个这种编码器的实例,它是一个(n,k,m)=(3,2,1)卷积码的编码器,其码率等译1/3。我们将以它为例,做较详细的讨论。每当输入1比特时,此编码器,输出3比特𝑐1𝑐2𝑐3,输入和输出关系如下:𝑐1=𝑏1𝑐2=𝑏1⊕𝑏3𝑐3=𝑏1⊕𝑏2⨁𝑏3式中,𝑏1是当前输入信息位,𝑏2和𝑏3是移存器存储的前两个信息位。在输出中信息位在前,后接监督位,故这种码也是系统码。设编码器初始状态的𝑏1、𝑏2、和𝑏3是000,输入的信息位是1101,则此编码器的工作状态变化如下表所示:移存器后,使移存器回到初始状态,在表中信息位后面加了3个“0”。-5-此外,由于𝑏3𝑏2只有4个状态:00,01,10,11,因此在表中,用a、b、c和d表示这4种状态。卷积码译码卷积码的译码通常有如下几个比较流行的译码算法:由Wozencraft和Reiffen在1961年提出,Fano和Jelinek分别在1963年和1969年进行改进了的序贯译码算法。该算法是基于码字树图结构的一种次最优概率译码算法。由Massey在1963年提出的门限译码算法。这个算法利用码字的代数结构进行代数译码。由Viterbi在1967年提出的Viterbi算法。算法是基于码字格图结构的一种最大似然译码算法,是一种最优译码算法。在Viterbi译码算法提出之后,卷积码在通信系统中得到了极为广泛的应用。如GSM、3G、商业卫星通信系统等。Viterbi译码对于网格图描述Viterbi算法,整个Viterbi译码算法可以简单概括为“相加-比较-保留”,译码器运行是前向的、无反馈的,实现过程并不复杂。分析Viterbi算法的复杂度:(n,k,N)卷积码的状态数为2k(N−1),对每一时刻要做2k(N−1)次“加-比-存”操作,每一操作包括2k次加法和2k−1次比较,同时要保留2k(N−1)条幸存路径。由此可见,Viterbi算法的复杂度与信道质量无关,其计算量和存储量都随约束长度N和信息元分组k呈指数增长。因此,在约束长度和信息元分组较大时并不适用。为了充分利用信道信息,提高卷积码译码的可靠性,可以采用软判决Viterbi译码算法。此时解调器不进行判决而是直接输出模拟量,或是将解调器输出波形进行多电平量化而不是简单的0、1两电平量化,然后送往译码器。即编码信道的输出是没有经过判决的“信息”。软判决算法与硬判决算法相比,软判决译码算法的路径度量采用“软距离”而不是汉明距离。最常采用的是欧几里德距离,也就是接收波形与可能的发送波形之间的几何距离。在采用软距离的情况下,路径度量的值是模拟量,需要经过一些处理以便于相加和比较。因此,使计算复杂度有所提高。除了路径度量以外,软判决算法与硬判决算法在结构和过程上完全相同。一般而言,由于硬判决译码的判决过程损失了信道信息,软判决译码比硬判决译码性能上要好约2dB。不管采用软判决还是硬判决,由于Viterbi算法是基于序列的译码,其译码错误往往具有突发性。viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着-6-约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。先说编码(举例约束长度为7):编码器7个延迟器的状态(0,1)组成了整个编码器的64个状态。每个状态在编码器输入0或1时,会跳转到另一个之中。比如110100输入1时,变成101001(其实就是移位寄存器)。并且输出也是随之而改变的。这样解码的过程就是逆过程。算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出。四、仿真及分析在本次课题研究中,按照要求,所得的仿真程序设计思路如下图:在本次课题中,在编译程序过程中,采用的matlab自带函数有:编码主要函数:code=convenc(inp,trellis);译码主要函数:decoded1=vitdec(code1,t,tblen,'trunc','hard');序列产生信道编码BPSK调制AWGN信道传输BPSK解调Viter

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

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

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

×
保存成功