卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx

上传人:b****5 文档编号:19737915 上传时间:2023-01-09 格式:DOCX 页数:17 大小:688.82KB
下载 相关 举报
卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx_第1页
第1页 / 共17页
卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx_第2页
第2页 / 共17页
卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx_第3页
第3页 / 共17页
卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx_第4页
第4页 / 共17页
卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx

《卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

卷积编码与解码的MATLAB实现及性能分析Word格式文档下载.docx

2.3卷积码的解码.......................................8

3卷积码的仿真与性能分析.................................9

3.1卷积码的仿真.......................................9

3.1.1卷积码的设计框图.............................9

3.1.2Simulink仿真模块的参数设置....................9

3.2卷积码的波形输出..................................15

3.2.1输入信号波形...................................15

3.2.2输入信号与解码输出波形.........................16

3.3卷积码的性能分析....................................17

4出现的问题及解决方法...................................19

5结束语.................................................19

6参考文献...............................................20

1引言

本课程设计主要解决基于Matlab的Simulink下的模块对卷积编码与解码进行仿。

通过仿真可以更清楚的认识到卷积码的编码与解码的各个环节,并对仿真结果进行分析。

得出Viterbi译码的误码率性能和约束长度的关系。

1.1课程设计目的

卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码[4]。

卷积码是一种向前纠错控制编码。

它将连续的信息比特序列映射为连续的编码器输出符号。

这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。

可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。

对于某个特定的应用,采用分组编码还是采用卷秘编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。

本课程设计的目的主要是仿真通信系统中基带传输信道纠错编码技术。

把贝努利二进制序列产生器作为信号源,产生基带信号,对其中的卷积进行编码,送入含噪信道在通过BSK调制与解调后,采用Viterbi译码输出,然后计算传输前后的误码率,改变信道误码率大小,测试接收信号与发送信号之间的误码率,分析该种纠错编码系统的抗噪声性能。

1.2课程设计的基本任务和要求

1.2.1本次课程设计的基本任务:

(1)通过课程设计掌握通信系统中卷积的编码与解码,能够分析该种纠错码系统的性能。

(2)掌握通信电路的设计方法,能够进行设计简单的仿真通信电路系统。

(3)运用学过的MATLAB基本知识,熟悉MATLAB集成环境下的Simulink仿真平台的使用和m文件。

1.2.2课程设计中的要求:

(1)模型设计应该符合工程实际,模块参数设置必须与原理相符合。

(2)处理结果和分析结论应该一致,而且应符合理论。

(3)独立完成课程设计并按要求编写课程设计报告书

1.3设计平台

本设计开发平台为MATLAB中的Simulink。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

2设计原理

2.1卷积码的基本概念

卷积码是一种性能优越的信道编码。

若以(n,k,N)来描述卷积码[1],表示把k个信息比特编成n个比特,N为编码约束长度,说明编码过程中互相约束的码段个数。

卷积码将k比特输入码元编成n个输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。

与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面N-1个输入的k元组有关,编码过程中互相关联的码元个数为N*n。

2.2卷积码的编码

卷积码的编码表述方法有3种:

码树图、状态图和网格图。

卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。

在编码器复杂性相同的情况下,卷积码的性能优于分组码。

分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段。

分组码的译码算法可以由其代数特性得到。

卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码。

2.2.1卷积编码

卷积码的编码器一般都比较简单。

如图2-1是一般情况下的卷积码编码器框图[5]。

它包括NK级的输入移位器,一组n个模2和加法器和n级的输出移位寄存器。

对应于每段k比特的输入序列,输出n个比特。

由图可知,n个输出比特不但与当前的k个输入比特有关,而且与以前的(N-1)k个输入信息比特有关。

整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器[6]的连接方式所决定的另一个序列的卷积,卷积码由此得名。

本文采用的是冲击响应描述法编码思想。

图2-1卷积编码器框图

如图2-2是卷积码(2,l,3)卷积编码器的一个框图。

左边是信息的输入。

下面分别是系统位输出和校验位输出。

其中间是3个移位寄存器和一个模2加法器。

简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。

可以看出:

每输入一个比特,移位寄存器中就向右移动一个位子。

原来的第三个寄存器就被移出。

可见卷积编码不只与现在的输入比特有关还与前面的3-1个比特有关。

所以约束长度是3。

图2-2(2,1,3)卷积编码器

2.2.2卷积码的树状图

对于图2-2所示的(2,1,3)卷积码编码电路.其树状图如下图2-3所示。

里,分别用a,b,c和d表示寄存器的4种状态:

00,01,10,和11,作为树状图中每条支路的节点。

以全零状态a为起点,当输入位信息位为O时,输出码元c1c2=00,寄存器保持状态a不变,对应图中从起点出发的上支路:

当输入为l时,输出码元clc2=11,寄存器则转移到状态b,对应图中的下支路:

然后再分别以这两条支路的终节点a和b作为处理下一位输入信息的起点,从而得到4条支路.以此类推,可以得到整个树状图。

图2-3(2,1,3)卷积码的码状图

2.2.3卷积码的网格图

如下图2-4是(2,1,3)卷积编码的网格图

图2-4(2,1,3)卷积码的网格图

2.2.4卷积码的状态图

如下图2-5是(2,1,3)卷积编码的状态图

图2-5(2,1,3)卷积码的状态图

2.3卷积码的解码

卷积码的解码方式可以分为两类:

代数解码和概率解码。

代数解码是利用编码本身的代数结构进行译码,不考虑信道本身的统计特性。

大数逻辑解码,又称门限解码,是卷积码代数解码的最主要的一种方法它也应用于循环码的解码。

大数逻辑解码对于约束长度较短的卷积码最为有效,而且设备简单。

概率解码则是基于信道的统计特性和卷积码的特点进行计算。

首先由Wozencraft针对无记忆信道提出的序贯解码[3]就是概率解码方法之一;

另一种概率解码方法是Viterbi算法[6]。

当码的约束长度较短时,它比序贯解码算法的效率更高、速度更快,目前得到广泛的应用。

本课程设计中采用Viterbi算法。

3卷积码的仿真与性能分析

3.1卷积码的仿真

3.1.1卷积码的设计框图

本课程设计是通过MATLAB下的Simulink模块进行仿真。

卷积码的仿真框图如下图3-1

图3-1卷积编码与解码仿真图

在图3-1中的仿真流程可以表示为先由BernoulliBinaryGenerator(贝努利二进制序列产生器)产生一个0,l等概序列,经过ConvolutionalEncoder(卷积编码器)对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。

加入信道噪声--高斯白噪声(AWGN),再经过BPSK解调制后送入ViterbiDecoder(Viterbi译码器)进行硬判决译码。

最后经过ErrorRateCalculation(误码统计)后由Display(显示)输出。

然后通过Selector(数据选通器)将结果输出到Toworkspace(工作区间)。

3.1.2Simulink仿真模块的参数设置

在建立如图3-1的仿真模块后,对各个模块进行设置并运行仿真。

其中各个模块的具体参数如下:

图3-2贝努利二进制序列产生器的参数设置

如上图3-2是贝努利二进制序列产生器模块的设置框图,其中参数有三项:

第一项probabilityofazero取值为0.5,表示0和l出现的概率相等。

Initialseed表示随机种子数。

不同的随机种子数将产生不同的二进制序列,特定的随机种子数可以产生一个特定的二进制序列。

Sampletime=0.001表示抽样时间,也就是说输出序列中每个二进制符号的持续时间是0.001秒。

Samplesperframe表示每帧的抽样数用来确定每帧的抽样点的数目。

Frame-basedoutputs是用来确定帧的输出格式。

图3-3卷积编码器的参数设置图3-4卷积解码器的参数设置

如上图3-3,在参数设置中要注意卷积编码器模块,其中Trellisstructure(Trellis结构)中通过poly2trellis()函数把卷积码的约束长度,如上面是(2,l,3)卷积码的参数设置。

(3,[67])说明约束长度是3,生成多项式是(八进制)6和7。

后面还要用到的(2,l,7)的参数是(7,[171,133])是约束长度是7。

同时与之对应的卷积解码器Trellisstructure设置要相同。

图3-5BPSK调制器的参数设置图3-6BPSK解调器的参数设置

如上图3-5是BPSK调制器模块的设置框图中有二项,第一项是Phase

offset(rad)(相位偏移),这里设置为0。

第二项是Samplespersymbol(输出信号采样数)这里设置为l。

同时如图3-6,BSK解调器的参数设置要和BPSK调制器一样。

图3-7高斯白噪声(AWGN)参数设置

如上图3-7,在高斯白噪声中要注意SNR(db)的参数设置要是变量,其中参数SNR就是m文件中的一个变量。

图3-8误码统计模块的参数设置

如上图3-8,在ErrorRateCalculation(误码统计)模块中我们要注意Outputdata的参数设置是Port,这样误码统计框图才能有输出端口。

图3-9数据选通器模块的参数设置

如上图3-9是数据选通器模块的设置框图。

对应图3-9看Elements是指输出

端口的个数为l。

Inputportwidth表示输入端口的个数为3。

图3-10ToWorkspace模块的参数设置

如上图3-10是ToWorkspace的设置,其中Variablename的参数是一个自定义的变量,同时也是m文件中的重要变量。

Saveformat的参数要设为Array,这样才能使m文件出来的图易于观察和进行性能分析。

3.2卷积码的波形输出

3.2.1输入信号波形

通过单独对输入信号进行测量显示,其下列仿真框图3-10

图3-10输入信号波形测量框图

通过运行上述框图3-10,我们得到系统的输入信号波形如下图3-11

图3-11卷积码的输入波形

3.2.2输入信号与解码输出波形

根据卷积编码与解码的仿真框图,我们可以对其输入信号和解码输出进行波形测量,结果如下图3-12

图3-12输入信号与解码信号测量框图

通过对上述框图3-12进行仿真运行,得到的波形输出结果如下图3-13:

图3-13输入信号与解码输出信号

通过上图3-13,我们可以看出解码输出后信号与输入信号波形差不多,但是有点差别,这就是在解码过程中出现了误码,但是从整体上看误码非常少,还有就是通过输入输出对比,我们可以看出两者之间的有时间延迟。

当把图3-12中的信道噪声中的SNR参数设为0时,我们可以得到如下图3-14:

图3-14没加噪声的输入与解码输出波形

通过图3-12与图3-14,我们可以看出信道的特性是影响信息传输的一大因素,只有信道的性噪比在一定范围内才能保证信息的正确传输。

3.3卷积码的性能分析

在本课程设计中我们采用根据不同的约束长度来改变信道误码率大小,同时比较在相同性噪比下,不同约束长度对信道误码率的影响。

在本次设计中,我们以(2,l,3)和(2,1,7)卷积码为例展开分析。

从图3-11中的误码率曲线可以清楚地看到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当性噪比一定时,增加约束长度可以降低系统的误比特率,但是随着约束长度的增加,译码设备的复杂性也会随之增加,而且在性噪比较小时,其结果不准确。

图3-11不同约束长度对卷积码误码性能的影响

分析不同约束长度对卷积码误码性能的影响用到的程序如下:

x=-10:

10;

%x表示性噪比

y=x;

%y表示误码率

fori=1:

length(x)%重复运行wq.mdl,检查不同条件下硬判决译码的性能

SNR=x(i);

sim('

wq.mdl'

);

%运行仿真程序得到的误码率保存到工作区变量BitErrorRate中y(i)=mean(BitErrorRate);

%计算BitErrorRate的均值作为本次仿真的误码率

end

semilogy(x,y);

%绘制x和y的关系曲线图,纵坐标采用对数坐标

holdon;

length(x)

SNR=x(i);

wq1.mdl'

y(i)=mean(BitErrorRate);

plot(x,y,'

r'

xlabel('

SNR'

ylabel('

BitErrorRate'

%给横坐标和纵坐标命名

通过约束长度这个卷积码的重要参数的变化后对解码性能的分析,我们得到在卷积码的编码,解码过程中有很多条件影响误码率。

所以我们要根据具体情况来选择合适的设置参数,使我们的系统设计更加合理。

4出现的问题及解决方法

本次课程设计运用了MATLAB软件下Simulink模块建立工作模型,在仿真的过程中遇到了许多的问题,但是通过自己的探索和老师及同学的帮助下总算得以解决。

总结所遇到的问题及解决方法如下:

(1)在贝努利二进制序列产生器参数设置时没有选中Frame-basedoutputs及没有确定帧的输出格式,导致整个程序一运行就报错。

(2)对信号的调制,开始时选用M-PSK与后面的BPSK解调不对应,使程序通过调制解调时报错,换成BPSK调制后程序通过。

(3)在信号噪声中我选择的是高斯白噪声,但是参数设置时SNR选项,我给的是一个数值不是一个变量,使m文件运行时,误码率一直是一个常数。

后把SNR参数设置成变量,m文件运行出来的图形才是正确的。

(4)在结果输出时,由于display模块没有放大,导致结果只显示一个值。

在ToWorkspace模块中Saveformat参数要选择Array,这样才能使m文件出来的图形易于各个数值的比较。

5结束语

本次课程设计通过Matlab软件中的Simulink模块对卷积编码与解码以及信道传输都进行了仿真并通过约束长度对其性能进行分析。

从这些过程中我们看到了通信系统的基本工作原理。

通过整个卷积码系统的设计与仿真,加深了我们对卷积码的理解,掌握Viterbi译码的基本思路,并进一步将其拓展到Simulink模块仿真方面,知道了如何进行误码率分析从而选者合适的信道传输信号,学会了使用Matlab作为学习工具来对我们的通信系统进行设计和仿真等操作,加深了我对Mtalab的了解,扩展了我对Matlab认识,同时也使我充分的了解卷积码的特点和性能。

通过本次课程设计,我收获很多,不仅仅是课本知识上的收获,还有实践的收获。

这次设计把我们三年所学理论知识综合起来运用到本次实践中。

在刚接触Simulink时,我完全不懂,不知道怎么写,但通过老师的讲解和自己查找资料我渐渐的了解Simulink,这使我有一种成就感,为自己增加了知识高兴,也为自己努力的学习高兴。

在做仿真时刚开始在设计的步骤和方法上比较混乱,后通过借阅各种资料和请教老师,有了明确的方向和清晰的设计步骤,使我更好的完成了自己的设计。

在仿真时,由于贝努利二进制序列产生器一个参数设置忘记选中,导致整个仿真运行错误,经过一步步的排查,找到了此问题。

虽然问题解决了但也占据我好多时间。

这事让我认识到做设计仿真时我们要严谨仔细,一个小的错误它就能导致我们花费大量的时间。

同时,我们在做事方面也要严谨仔细,因为一个小错误就能导致整体失败。

最后感谢各位老师的指导和同学的帮助。

6参考文献

[1]樊昌信曹丽娜.《通信原理》国防工业出版社,2012

[2]张威《MAl-LAB基础与编程入门》西安电子科技大学出版社,2007

[3]仇佩亮《信息论与编码》高等教育出版社,2006

[4]邓华《MATIAB通信仿真及应用实例详解》人民邮电出版社,2003

[5]张化光刘鑫蕊孙秋野.《MATLAB/Simulink实用教程》人民邮电出版社,2009

[6]李贺冰袁杰萍孔俊霞.《SIMUIINK通信仿真教程》国防工业山版社,2010

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1