基于matlab的2-3卷积码编码译码设计与仿真_第1页
基于matlab的2-3卷积码编码译码设计与仿真_第2页
基于matlab的2-3卷积码编码译码设计与仿真_第3页
基于matlab的2-3卷积码编码译码设计与仿真_第4页
基于matlab的2-3卷积码编码译码设计与仿真_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、设 计 报 告课程名称: 通信工程方向设计 设计名称: 2/3卷积码编译码器仿真与性能分析 姓 名: 学 号: 班 级: 指导教师: 起止日期: 2011.12.12-2012.1.6 方 向 设 计 任 务 书学生班级: 学生姓名: 学号: 设计名称: 2/3卷积码编译码器仿真与性能分析 起止日期: 2011.12.12-2012.1.6 指导教师: 设计要求:(1)分析2/3卷积码编码器结构;(2)分析2/3卷积码译码的Viterbi算法;(3)基于SIMULINK进行2/3卷积码的纠错性能仿真;方 向 设 计 学 生 日 志时间设计内容12.15-12.17查看题目及设计要求。12.18

2、-12.23查阅相关资料,设计方案。12.23-12.27编写报告及调试程序。12.28-12.29完善修改课程设计报告。12.30-12.31答辩。方 向 设 计 考 勤 表周星期一星期二星期三星期四星期五方 向 设 计 评 语 表指导教师评语:成绩: 指导教师: 年 月 日2/3卷积码编译码器仿真与性能分析摘要:卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。 本文简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统

3、计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。关键词:卷积码编码器、viterbi译码器、SIMULINK目录一 设计目的和意义1二 设计方法1三 设计原理13.1 卷积码的基本概念13.2 卷积码的结构23.3 卷积码的图解表示33.3.1 卷积码的树状图33.3.2 卷积码网格图43.4卷积码的解析表示43.5 卷积码的译码53.5.1 卷积码译码的方式53.5.2 卷积码的viterbi译码6四 SIMULINK下的仿真设计74.1 SIMULINK下卷积码的仿真74.1.1

4、SIMULINK仿真模块参数设置及意义84.2 改变卷积码参数分析124.2.1 回溯长度对卷积码的影响124.2.2 约束长度对卷积码的影响14五 心得体会15六 参考文献15一、设计目的和意义因为信道中信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。而编码理论可以解决这个问题,使得成本降低,实用性增强。随着现代通信的发展,卷积码以其高速性和可靠性在实际应用中越来越广泛。1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码

5、方式之一。在卷积码中,因为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。特别是深空通信、卫星通信系统中。因此采用Viterbi译码算法具有非常现实的意义。二、设计方法本文在分析卷积码编译码器原理的基础上,通过基于MATLAB的SIMULINK下的模块对卷积编码,解码进行仿真。通过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进行了分析。得出卷积码Viterbi译码的误比特性能和回溯长度,码率,约束长度的关系。三、设计原理3.1 卷积码基本概念卷积码是一种性能优越的信道编码。(n ,k ,N) 表示把k个信息比特编成n个比特,N 为编码约束

6、长度,说明编码过程中互相约束的码段个数。卷积码编码后的n 个码元不仅与当前组的k 个信息比特有关,而且与前N - 1 个输入组的信息比特有关6。编码过程中相互关联的码元有N ×n 个。R = k/ n 是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数。卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。分组码的译码算法可以由其代数特性得到。卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码

7、),但性能不如维特比译码和序列译码3.2 卷积码的结构 图2-1卷积码的编码器一般都比较简单。下图2-1是一般情况下的卷积码编码器框图。它包括:一个由N段组成的输入移位寄存器,每段有k级,共Nk位寄存器;一组n个模2和相加器;一个由n级组成的输出移位寄存器。对应于每段k个比特的输入序列,输出n个比特。由图可知,n个输出比特不但与当前k个比特的输入比特有关,而且与以前的(N-1)k个输入信息有关。整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。 图2-2如图2-2是卷积码(3,2,2)卷积编码器的一个框图。左边是信息的输入。下面分别

8、是系统位输出和校验位输出。其中间是四个移位寄存器和三个模2加法器。简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。可以看出:每输入一个比特,移位寄存器中就向右移动一个位子。原来的第四个寄存器就被移出。可见卷积编码不只与现在的输入比特有关还与前面的1个比特有关。在这里,其中约束长度是N=2,k=2 ,n=3所以码率R=k/n=2/3。3.3 卷积码的图解表示3.3.1 卷积码的树状图对于图2-2所示的(3,2,2)卷积码编码电路,其树状图如下图2-3所示。若寄存器初始状态为全0,第一组输入的两个信息比特可以是:00,01,10,11,与他们对应的输出比特是00

9、0,010,111,101。第二组两个输入比特进入移位寄存器时,第一组两个输入比特右移到右边那组寄存器,此时输出比特不但取决于当前的二个输入比特,而且取决于第一组的二个输入比特。由于每组输入两个比特,因此树状图每个节点有2的平方条支路。由于约束长度为2从第二级后开始重复出现4种状态,可以得到整个树状图。如下图2-3 图2-33.3.2 卷积码的网格图如下图24是(3,2,2)卷积编码的网格图。 图2-4 (3,2,2)卷积编码的网格图图2-5 (3,2,2)卷积码的状态图3.4 卷积码的解析表示除上述图解表示方法外,常常还用解析表示方法描述卷积码,即延时算子多项式。在延时算子多项式表示中,编码

10、器中的移位寄存器与模2加法器的连接关系以及输入、输出序列都表示为延时算子D的多项式。在一般情况下,输入序列可表示为: (2-1)变量D的幂的次数等于相对于时间起点的单位延时数目,时间起点通常选在第1个输出比特,ml,m2,m3,m.为输入比特的二进制表示(1或0)。用D算子多项式表示移位寄存器各级与各模2项连接关系时。若某级寄存器与某模2和相连,则多项式中相应项的系数为1,否则为0(表示无连接)。通常把表示移位寄存器与模2和连接关系的多项式称为生成多项式,因为由它们可以用多项式相乘计算出输出序列。卷积码的图解与解析表示方法各有特点。用延时算子多项式表示卷积码编码器的生成多项式最为方便。网格图对

11、于分析卷积码的译码算法十分有用。3.5 卷积码的译码3.5.1 卷积码译码的方式卷积码的译码方式有三种:(1)1963年由梅西(Massey)提出的门限译码,这是一种基于码代数结构的代数译码,类似于分组码中的大数逻辑译码;(2) 1963年由费诺(Fano)改进的序列译码,这是基于码的树状图结构上的一种准最佳的概率译码;(3) 1967年由维特比提出的Viterbi算法。这是基于码的网(trellis)图基础上的一种最大似然译码算法,是一种最佳的概率译码方法。其中,代数译码,利用编码本身的代数结构进行译码,不考虑信道本身的统计特性。该方法的硬件实现简单,但性能较差,其中具有典型意义的是门限译码

12、。另一类是概率译码,这种译码通常建立在最大似然准则的基础上。由于计算是用到了信道的统计特性.因而提高了译码性能,但这种性能的提高是以增加硬件的复杂度为代价的。常用的概率译码方法有维特比译码和序列译码。维特比译码具有最佳性能,但硬件实现复杂;门限译码性能最差,但硬件简单;序列译码在性能和硬件方面介于维特比译码和门限译码之间。3.5.2 卷积码的Viterbi译码卷积码概率译码的基本思路是:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似

13、然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L级(L为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi译码正是基于这种想法。 对于(n, k,

14、K )卷积码,其网格图中共2kL种状态。由网格图的前K-1条连续支路构成的路径互不相交,即最初2k_1条路径各不相同,当接收到第K条支路时,每条路径都有2条支路延伸到第K级上,而第K级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第K级只留下2K条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由

15、此可见,上述译码过程中的基本操作是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。因此,当序列发送完毕后,要在网格图的终结处加上(K-1)个己知的信息作为结束信息。在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支路被延伸,因而在每级比较后,幸存路径减少一半。因此,在接收到(K-1)个己知信息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就是译码所得的路径。也就是说,在

16、己知接收到的序列的情况下,这条译码路径和发送序列是最相似的。由上述可见,Viterbi译码过程并不复杂,译码器的运行是前向的、无反馈的。它接收一段,计算一段,选择一段最可能的码段(分支),从而达到整个码序列是一个有最大似然函数的序列。传输序列很长时,判决需要的长延时和相当大的存储量是我们无法承受的。因此,实际应用中采用截短Viterbi算法,即不需要接收到所有序列才进行判决,当译码器接收并处理完了固定的T (T <<L)个码段后,在接收第(T+1)个码段的时候,它将比较前T级的路径量度,然后从中选取最小者,由此得到与最小量度对应的幸存路径,将此路径对应的T个码段判决输出。T称为截短

17、深度,T选的足够大时,则对译码器输出的译码错误概率影响很小。四、SIMULINK下仿真设计4.1 卷积码的仿真 图4-1卷积码的编码译码框图如上图4-1的信号流程可以表示为先由Bernoulli Binary Generator(贝努利二进制序列产生器)产生一个0,1等概序列,经过Convolutional Encoder(卷积编码器)对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。加入信道噪声(高斯白噪声)后再经过BPSK解调制后送入Viterbi Decoder(Viterbi译码器)进行硬判决译码。最后经过Error Rate Calculation(误码统计)后由Disp

18、lay(显示)输出。然后通过Selector(数据选通器)将结果输出到To workspace(工作区间)。4.1.1 SIMULINK仿真模块的参数设置及意义在建立如图4-1的仿真模块后,对各个模块分别一一进行设置后并运行仿真。图4-2贝努利二进制序列产生器模块的设置框图如上图4-2是贝努利二进制序列产生器模块的设置框图,其中参数有三项:第一项probability of a zero取值为0.5,表示0和1出现的概率相等。Initial seed 表示随机种子数。不同的随机种子数将产生不同的二进制序列,特定的随机种子数可以产生一个特定的二进制序列。Sample time=0.0001表示抽

19、样时间,也就是说输出序列中每个二进制符号的持续时间是0.0001秒。Samples per frame 表示每帧的抽样数用来确定每帧的抽样点的数目。Output date type 是用来确定帧的输出格式。 Poly2trellis()函数的参数计算(1,1)连接情况是第一、第四和第一个相连所以用向量表示为"10011"用八进制表示为"23"(1,2)="11,101"="35"(1,3)="0000"="0"(2,1)="0000"="0&qu

20、ot;(2,2)="0,101"="05"(2,3)="1,011"="13",最后得到 23,35,0;0,05,13。图4-4卷积编码器模块的设置框图如上图4-4是卷积编码器模块的设置框图。其中Trellis structure( Trellis结构)中通过poly2trellis()函数把卷积码的约束长度,生成多项式以及反馈多项式转换成Trellis结构的形式。图4-3 BPSK调制器模块的设置框图如上图4-3是BPSK调制器模块的设置框图。Phase offset(rad)(相位偏移),这里设置为0。图4-

21、5误比特统计模块的设置框图如上图4-5是误比特统计模块的设置框图。其中Receive delay表示接收延迟,意思是在通信接收端口需要对接收到的信号进行解调,解码或解交织而带来一定的延迟,使得到达误码统计模块接收端的信号滞后于发送端的信号。为了补偿这种延迟这里设置为0。Computation delay表示计算延迟,在仿真过程中,有时间需要忽略最初的若干个输入数据就通过计算延迟来实现。这里设置为0。Computation mode表示计算模式,帧的计算模式(Entire frame),误码统计模块对发送端和接收端的所有输入数据进行统计。output data是输出数据,这里设置为Port的意思

22、是表示把统计数据从端口中输出。workspace表示把统计数据输出到工作区。图4-6 数据选通器模块的设置框图如上图4-6是数据选通器模块的设置框图。Input port width表示输入端口的个数为3。图4-7卷积码译码器模块的设置框图如上图4-7是卷积码译码器模块的设置框图。Trellis structure: Trellis结构(前面已说明)。Decision type是指判决类型,有3种:(1)Unquantized(非量化)(2)Hard Decision(硬判决),(3)Soft Decision(软判决) Traceback depth表示反馈深度。它的值会影响译码精度和解码延

23、迟。Operation mode是指操作模式。在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全0状态,它与卷积编码器的on each frame复位方式相对应。4.2 改变卷积码的参数分析4.2.1回溯长度对卷积码的影响将译码模块中的Traceback depth分别设置为20,35,50并在一个图中画出这三种方式下的误码性能曲线得到下图4-8。从上到下的三条曲线分别是Traceback depth为20,35,50。可以看出:回溯长度在Viterbi 译码过程中一个很重要的参数,他决定了译码延迟,随着他的不断变化,误码性能也随误比特率曲线可以清楚地看到,当回溯长度一定时,随

24、着信道噪声的逐渐提高,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,当回溯程度增加一定程度时,误比特率数值趋于稳定。 图4-8回溯长度对卷积码误码性能的影响不同回溯长度对卷积码误码性能的影响程序如下:x=-10:5; %x表示信噪比y=x; % y表示信号的误比特率,它的长度与x相同hold off; %准备一空白图形%重复运行convh.mdl,检验不同条件下硬判决译码的性能for i=1:length(x) SNR=x(i); %信道的信噪比依次取x中的元素 sim('juanjima'); %运行仿真程序,误比特率保持在BitErrorRate中

25、 y(i)=mean(BitErrorRate); %计算BitErrorRate的均值作为本次仿真的误比特率 end semilogy(x,y); %绘制x和y的关系曲线图,纵坐标采用对数坐标 hold on; %保持已经绘制的图形 for i=1:length(x) SNR=x(i); sim('juanjima2'); y(i)=mean(BitErrorRate); end semilogy(x,y); hold on; for i=1:length(x) SNR=x(i); sim('juanjima3'); y(i)=mean(BitErrorRate); end semilogy(x,y);xlabel('SNR')ylabel('BitErrorRate')grid on;4.2.2约束长度对卷积码的影响如下图4-10,对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 我们以码率R = 2/3的(5,4,23,35,0;0,05,13)和(3,2,7,3,0;0,3,3) 卷积码为例展开分析。较弯曲的曲线是(5,4,23,35,0;0,05,13)卷积码的误码

温馨提示

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

评论

0/150

提交评论