采用维比特卷积编码器设计论文.doc_第1页
采用维比特卷积编码器设计论文.doc_第2页
采用维比特卷积编码器设计论文.doc_第3页
采用维比特卷积编码器设计论文.doc_第4页
采用维比特卷积编码器设计论文.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

辽 宁 工 业 大 学通信课程综合设计与制作(论文)题目: 信道编码中卷积编码器的设计 院(系):电子与信息工程学院专业班级: 通信工程061班 学 号: 060305015 学生姓名: 何文亮 指导教师: 王冬霞 教师职称: 教授 起止时间:2009.12.14-2010.1.4课程设计(论文)任务及评语院(系):电子与信息工程学院 教研室:通信工程学 号060305015学生姓名何文亮专业班级通信061课程设计(论文)题目信道编码中卷积码编码器的设计课程设计(论文)任务1设计一卷积码编码器,2确定当信息序列为 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1时,相应卷积编码器的输出。3理解并掌握卷积码编码器工作原理及其在信道编码中的应用;4实现卷积码编码器的仿真设计;5完成本次设计,填写设计指导书。指导教师评语及成绩平时成绩: 论文成绩: 指导教师签字: 答辩成绩: 总成绩 : 年 月 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 卷积编码器的原理与设计11.1 引言11.2 卷积编码原理11.3 卷积码的编码算法31.4 卷积码的结构和描述方法41.5 卷积编码器的设计7第2章matlab软件实现仿真及结果92.1 Matlab程序及结果92.2 Simulink仿真图显示102.3卷积码性能分析11第3章 设计总结13参考文献14第1章 卷积编码器的原理与设计1.1 引言卷积码是1955年由Elias等人提出的,是一种非常有前途的编码方法。我们在一些资料上可以找到关于分组码的一些介绍,分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码的过程中不同码组之间的码元无关。卷积码和分组码的根本区别在于,它不是把信息序列分组后再进行单独编码,而是由连续输入的信息序列得到连续输出的已编码序列。即进行分组编码时,其本组中的nk个校验元仅与本组的k个信息元有关,而与其它各组信息无关;但在卷积码中,其编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的段信息有关。同样,在卷积码译码过程中,不仅从此时刻收到的码组中提取译码信息,而且还要利用以前或以后各时刻收到的码组中提取有关信息。而且卷积码的纠错能力随约束长度的增加而增强,差错率则随着约束长度增加而呈指数下降。卷积码(n,k,m)主要用来纠随机错误,它的码元与前后码元有一定的约束关系,编码复杂度可用编码约束长度mn来表示。一般地,最小距离d表明了卷积码在连续m段以内的距离特性,该码可以在m个连续码流内纠正(d1)/2个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。总之,由于n,k较小,且利用了各组之间的相关性,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证实:卷积码的性能至少不比分组码差。1.2 卷积编码原理卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率( k/n),分组码的码组长度n通常都比较大。编译码时必须把整个信息码组存储起来,由此产生的延时随着n的增加而线性增加。 为了减少这个延迟,人们提出了各种解决方案,其中卷积码就是一种较好的信道编码方式。这种编码方式同样是把k个信息比特编成n个比特,但k和n通常很小,特别适宜于以串行形式传输信息,减小了编码延时。 与分组码不同,卷积码中编码后的n个码元不仅与当前段的k个信息有关,而且也与前面(N-1)段的信息有关,编码过程中相互关联的码元为nN个。因此,这N时间内的码元数目nN通常被称为这种码的约束长度。卷积码的纠错能力随着N的增加而增大,在编码器复杂程度相同的情况下,卷段积码的性能优于分组码。另一点不同的是:分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段,把纠错性能与码的结构十分有规律地联系起来,目前大都采用计算机来搜索好码。 下面通过一个例子来简要说明卷积码的编码工作原理。正如前面已经指出的那样,卷积码编码器在一段时间内输出的n位码,不仅与本段时间内的k位信息位有关,而且还与前面m段规定时间内的信息位有关,这里的mN-1通常用(n,k,m)表示卷积码(注意:有些文献中也用(n,k,N)来表示卷积码)。图1就是一个卷积码的编码器,该卷积码的n = 2,k = 1,m = 2,因此,它的约束长度nN = n(m+1) = 23 = 6。图1 (2,1,2)卷积码编码器在图1中,与 为移位寄存器,它们的起始状态均为零。、与、之间的关系如下: 假如输入的信息为D = 11010,为了使信息D全部通过移位寄存器,还必须在信息位后面加3个零。表1列出了对信息D进行卷积编码时的状态。 表1 信息D进行卷积编码时的状态输入信息D11010000 B3b2000 11 11 00 11 00 00 0 输出C1C21 10 10 10 01 01 10 00 0 描述卷积码的方法有两类,也就是图解表示和解析表示。解析表示较为抽象难懂,而用图解表示法来描述卷积码简单明了。常用的图解描述法包括树状图、网格图和状态图等。 卷积码的译码方法可分为代数译码和概率译码两大类。代数译码方法完全基于它的代数结构,也就是利用生成矩阵和监督矩阵来译码,在代数译码中最主要的方法就是大数逻辑译码。概率译码比较常用的有两种,一种叫序列译码,另一种叫维特比译码法。虽然代数译码所要求的设备简单,运算量小,但其译码性能(误码)要比概率译码方法差多因此,目前在数字通信的前向纠错中广泛使用的是概率译码方法1.3 卷积码的编码算法卷积码的编码描述方法有 5 种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、 状态图描述法和网格图描述法2。本文采用的是冲击响应描述法编码思想,下面以n=2,k=1,N=3,(2,1,3)卷积码为例展开研究,其编码方式如图1 所示。图 2 卷积码编码器(编码效率 1/ 2 , N = 3)冲激响应,就是编码器对移入的单个 “1” 比特的响应(假设寄存器初始状态为0 0 0) ,当一位1 通过图三 的寄存器时,寄存器的内容为:表2 卷积码寄存器内容寄存器内容分支字1Q100110101000111输入序列:1 0 0输出序列:1 1 1 0 1 1输入 “1” 所对应的输出序列就是这个编码的响应,输入序列 m = 101 时,对应的输出可按如下方式线性叠加时移输入 “脉冲” 得到。由于可以通过将按时间移位的脉冲进行线性叠加,或者将输入序列和编码器的脉冲响应相卷积,来产生输出编码,因此这种编码器称为卷积编码器。1.4 卷积码的结构和描述方法卷积码的一般结构:图3 卷积码编码结构由上图可以看到,n个输出比特不仅与当前的k个输入信息有关,还与前(N-1)k个信息有关。通常将N称为约束长度,(有的书的约束长度Nn)。常把卷积码记为:(n,k,N)其编码效率为k/n卷积码编码器的实例方框图:(n,K,N)=(3,1,3)每当输入1比特时,此编码器输出3比特c1,c2,c3描述卷积码的方法有两类:图解法和解析表示。图解法包括:树状图、状态图、网格图。解析法包括:矩阵形式、生成多项式形式。(一) 树状图描述如下000111001110011100010101000111001110011100010101c1c2c3000100111011001101110010c1c2c3111000001110c1c2c3信息位 1 1 0 1ba起点信息位000111c1c2c3abcdabcdabcdabcd上半部下半部10a状态 b3b2 a 0 0 b 0 1 c 1 0 d 1 1abcdabcdcdab011001 图4 树状图表示v 从树状图看到,对于第j个输入信息比特,相应出现有 条支路,且在 时树状图出现节点,自上而下重复取4种状态;当j变大时图的纵向尺寸越来越大。v 提出一种网格图,注意到码树状态的重复性,使图形变得紧凑。 (二) 状态图描述法当网格图达到稳定状态后,取出两个节点之间的一段网格图,得到状态转移图。此后,再把目前状态与下一节拍状态合并起来,即可得到最简的状态转移图,称之为卷积码状态图。(3,1,3)卷积码的状态图,随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很轻易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为c并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”其它输入信息依次类推,按照状态转移路径agt;cgt;dgt;bgt;cgt;bgt;a输出其对应的编码结果“110101001011”。 状态图可以完整的描述编码器的工作过程,但是其只能显示状态转移的过程而不能显示状态转移发生的时刻,由此引出用来表示卷积码的另一种常用方法网格图。网格图就是时间与对应状态的转移图,在网格图中每一个点表示该时刻的状态,状态之间的连线表示状态转移。通过观察网格图可以发现在网格图中输入信息x并没有标出,但如观察到转移后的状态表示,x)就可以发现输入信息已经隐含在转移后的状态中。在图4中还可以发现两个网格图不同主要集中在转移后状态位置不同。重新排序结构是为了优化运算而设计的,因为其中蝶型与蝶型之间是相互独立的。下面就让我们来看看网格图是如何描述卷积编码过程的:仍以(2,1,2)为例,假定输入序列为1011010100,起始状态为状态a。第一个有效时钟沿来临后,编码器接收到输入信息“1”,根据图4所示网格图知该时刻状态为c,并输出其对应的编码结果“11”,同样在下一个时刻接收到输入信息“0”,状态变为b并输出“10”,接下来的输入数据依次类推,由此我们可以用网格图作出该例子的卷积编码过程,如图5所示,其中两个状态连线之间的信息为输出结果图5网格图描述卷积编码过程由图可以看出网格图非常明了地描述了卷积码的编码过程。图5 状态图表示(三) 多项式法描述法多项式法就是由卷积码的生成多项式直接得出其编码器的结构图。如上面例子中的(2,1,2)卷积码的生成多项式矩阵为:G1+D+D2,1+D2其中,D是延迟算子,生成多项式的第一项为1+D+D2,表示输出编码的第一个码元等于输入码元x与前两个时刻输入的码元x、x的模2和,同理第二项类似。为了更好地理解卷积码生成多项式矩阵和编码器之间的关系,下面再举一个kgt;1的例子:卷积码的生成多项式矩阵为:123M3M1输入M2编码输出c2c1图6 多项式生成过程 输入序列1101110y1=1 1 0 1 1 1 0 0y2=1 1 1 0 1 0 0 1 y3=1 0 0 0 0 1 0 1 v 总的输出序列为 Y=y11,y21,y31,y12,y22,y32, = 1 1 1, 1 1 0, 0 1 0, 1 0 0, 1 1 0, 1 0 1, 0 0 0, 0 1 1, 结果与网格图是一样的。 1.5 卷积编码器的设计编码器的设计相对简单。但是,用代数方法构造性能优异,无恶性误差传播以及约束度不大的卷积码是很困难的,因此往往借助于计算机搜索好码。通过相关资料的查找,为了在译码时采用Viterbi译码方式,符合(2,1,8)码型的卷积码好码码字可确定为5618和7538,其编码器逻辑电路框图如图5所示。由图5可见,在编码器中,主要是进行输入信息的移位寄存和异或运算。编码输出一个2位的码字,其中编码输出码字的高位cl=dO+d1+d2+d3+d5+d7+d8,低位cO=-dO+d2+d3+d4+d8,这里的加号表示异或运算。根据第三章所述,在二进制生成多项式中,参与异或的输入数据位用l表示,不参与异或的输入数据位用0表示,因此其二进制生成多项式为polyO=101110001 (3-1)po&l=111101011 (3-2)其中,式(31)对应于编码输出的低位,式(32)对应于编码输出的高位。在编码器的逻辑设计中,可将最近输入的9个时刻的输入数据依次存入一个9位的移位寄存器,最新的数据在最低位,最旧的数据在最高位。这个9位的移位寄存器中的数据data temp8:0分别与生成多项式polyO和polyl按位进行与运算可求得两个9位的数据tempO8:0和templ8:0。通过这个与运算的过程,可将输入的9个时刻的数据中不参与异或运算的位去除,所得到的数据tempO和tempi中就只保留了编码所需的位上面存储的数据,其他位则置为0。最后将tempO中的所有数据逐位异或即可得到编码输出码字的低位codesO,将tempi中的所有数据逐位异或即可得到编码输出码字的高位codes1。用data伽表示编码器信息输入端,reset表示复位信号,c腩表示时钟输入端,codes1:O表示编码输出端,整个编码器顶层模块框图如下图所示 图7 编码器顶层模块图第2章 matlab软件实现仿真及结果2.1 Matlab程序及结果我们采用matlab来验证模块设计的正确性,在matlab6.5里有卷积编码函数convenc可调用。在本例中涉及到的参数分别设置为IG171、QG133、K7,所以将上述参数代入卷积编码多项式转换成网格描述的函数poly2trellis中即可完成convenc函数所需的必要转换,即trellispoly2trellis(K,IG,QG);这样就可以使用convenc函数进行卷积编码,msg_conconvenc(msg_bit,trellis),其中msg_bit为输入信息序列。假定msg_bit10110101000000,则matlab输出结果:msg_con1110001001101001110010110111;为了和matlab输出结果比较方便将msg_con用I、Q两路表示,则msg_i11010110101101,msg_q10001001100111函数卷积码M文件:function output = cnv_encd(g,k0,input)if rem(length(input),k0)0 %看填充0是否为必须, input=input,zeros(size(1:k0-rem(length(input),k0);end n=length(input)/k0; %把输出的比特按全0分组,n为所得的组数, if rem(size(g,2),k0)0 %检查矩阵的大小 error(Error, g is not of the right size.)end l=size(g,2)/k0; %寄存器的数+1,也就是通常所说的约束长度 n0=size(g,1); %编码后的并行输出端口数 u=zeros(size(1:(l-1)*k0),input,zeros(size(1:(l-1)*k0 ); %保证编码器从全0 开始,并回到全0状态ul=u(l*k0:-1:1);for i=1:n+l-2 ul=ul,u(i+l)*k0:-1:(i*k0+1) );enduu=reshape(ul,l*k0,n+l-1);output=reshape(rem(g*uu,2),1,n0*(l+n-1);主程序k0=2;%输入端口数,为2,g=0 0 1 0 1 0 0 1;0 0 0 0 0 0 0 1;1 0 0 0 0 0 0 1; %编码矩阵,几行就代表几个输出口,%列的最右边寄存器的连接状态input=1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1;%输入的二进制序列output=cnv_encd(g,k0,input);%编码输出当输入为当信息序列为 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1,其输出结果如下图所示,图8 matlab程序结果图2.2 Simulink仿真图显示 Simulink是通信系统中较常用的仿真运行软件含有多种模块,其通信系统模块工具箱内含纠错码编码与纠错码解调子库-Hamming,Bch,R-S,循环,线性,卷积编码与解码器,建模后仿真图如下所示图9 simulink仿真图2.3卷积码性能分析(1) 码率对误码性能的影响卷积码的码率 R = k/ n,他是卷积码的一个重要参数,当改变卷积码的码率时,系统的误码性能也将随之发生变化。从图4 中的误比特率曲线可以看出,当码率一定时,随着信道噪声的逐渐减小,系统的误比特率也逐渐减小,当改变系统码率时,随着卷积码码率的逐渐提高,系统的误比特率也呈现出增大的趋势,也就是说码率越低,系统的误比特率就越小,误码性能就越好,仿真表明4 ,当系统码率从2/ 3 降至1/ 3 时,可以使误比特率减小0125 dB ,然而,信道带宽和译码器的复杂性也将相应地增加,因此,对于二进制对称信道,当采用BPSK调制方式时,通常选取的码率为1/ 2。(2) 约束长度对误码性能的影响对于码率一定的卷积码,当约束长度 N 发生变化时,系统的误码性能也会随之发生变化,我们以码率 R = 1/ 2的(2 ,1 ,3)卷积码为例展开分析。从图5 中的误比特率曲线可以清楚地看到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当码(3) 回溯长度对卷积码性能的影响回溯长度是在 Viterbi 译码过程中一个很重要的参数,他决定了译码延迟,随着他的不断变化,误码性能也随从图6 中的误比特率曲线可以清楚地看到,当回溯长度一定时,随着信道噪声的逐渐减小,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,但是当回溯程度增加到 5 N 时( N 为编码的约束长度) ,误比特率数值趋于稳定,因此,在确定回溯长度时既要考虑到随着的增加误比特率随之降低的趋势,也要考虑到译码延迟

温馨提示

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

评论

0/150

提交评论