卷积码编码技术仿真与性能分析

更新时间:2023-11-18 22:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第1页 共19页

基于Matlab/simulink的卷积码编码技术仿真与性能分析

学生姓名:付应文 指导老师:胡双红

摘 要 本课程设计主要解决通信系统中基带传输信道纠错编码技术中的卷积码编码技术。产生一段随机的二进制非归零码的基带信号,对其进行卷积编码 ,而后采用维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真,并进行差错率-误码率曲线绘制和性能分析。

关键词 课程设计;卷积码编码器;维特比译码器,Matlab;Simulink;设计与仿真,性能分析。

1 引 言

本课程设计主要解决信号传输过程中的卷积编码和卷积解码的问题。对一个串非归零二进制信号卷积码序列进行维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真。

1.1 课程设计目的

卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编

码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。

本课程设计的目的主要是仿真通信系统中基带传输信道纠错编码技术中的卷积码编码技术。产生一段随机的二进制非归零码的基带信号,对其进行卷积码编码后再送入二进制对称信道传输,在接收端对其进行卷积解码以恢复原信号,观察还原是否成功,改变二进制对称信道的差错率,计算传输前后的误码率,绘制信道差错率-误码率曲线,并与理论曲线比较进行说明。

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第2页 共19页

1.2 课程设计的原理 1.2.1 卷积编码原理

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

卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。

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

图1-1 卷积码编码器原理框图

图1-1是一般情况下的卷积码编码器框图。它包括NK级的输入移位器,一组n个模2和加法器和n级的输出移位寄存器 。对应于每段k比特的输入序列,输出n个比特。由图可知,n个输出比特不但与当前的k个输入比特有关,而且与以前的(N-1)k个输入信息比特有关。整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。本文采用的是冲击响应描述法编码思想。

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第3页 共19页

图1-2 卷积编码器

如图1-2是卷积码(2,1,3)卷积编码器的一个框图。左边是信息的输入。下面分别是系统位输出和校验位输出。其中间是3个移位寄存器和一个模2加法器。简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。可以看出:每输入一个比特,移位寄存器中就向右移动一个位子。原来的第三个寄存器就被移出。可见卷积编码不只与现在的输入比特有关还与前面的3-1个比特有关。所以约束长度是3。在这里,其中K=1 ,n=2所以码率R=K/ n=1/2。

1.2.2 维特比译码原理

卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决);另一种是概率译码(软判决),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差。

当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。

采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第4页 共19页

得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。

下面以图1-3的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图1-4

b

00 输入序列 m1,m2,…mj,… y1j 11 a 11 00 10 01 d 01 c mj mj-1 mj-2 输出序列 y2j

图1-3 卷积码编码器

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

所示。维特比译码需要利用图来说明移码过程。根据卷积码画网格的方法,我们可以画出该码的网格图,如图1-5所示。该图设输入信息数目L=5,所以画L+N=8个时间单位,图中分别标以0至7。这里设编码器从a状态开始运作。该网格图的每一条路径都对应着不同的输入信息序列。由于所有可能输入信息序列共有2kL个,因而网格图中所有可能的路径也为2kL条。这里节点a=00,b=01,c=10,d=11。 节点号

0

00 11 1

00 11 2

00 11 11 3

00 11 11 10 01 01 01 10 4

00 11 11 00 10 11 11 5

00 6

00 7

a b

10 00 c d

01 01 01 01 01 01 01 01

图1-5 卷积码网格图

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第5页 共19页

设输入编码器的信息序列为(11011000),则由编码器对应输出的序列为Y=(1101010001011100),编码器的状态转移路线为abdcbdca。若收到的序列R=(0101011001011100),对照网格图来说明维特比译码的方法。

由于该卷积码的约束长度为6位,因此先选择接收序列的前6位序列R1=(010101)同到达第3时刻的可能的8个码序列(即8条路径)进行比较,并计算出码距。该例中到达第3时刻a点的路径序列是(000000)和(111011),他们与R1的距离分别为3和4;到达第3时刻b点的路径序列是(000011)和(111000),他们与R1的距离分别为3和4;到达第3时刻c点的路径序列是(001110)和(110101),他们与R1的距离分别为4和1;到达第3时刻d点的路径序列是(001101)和(110110),他们与R1的距离分别为2和3。上述每个节点都保留码距较小的路径作为幸存路径,所以幸存路径码序列是(000000)、(000011)、(1101001)和(001101),如图1-6所示。用于上面类似的方法可以得到第4、5、6、7时刻的幸存路径。

节点号

0

00 11 1

00 11 2

00 11 3

a b c d

01 01 01

图1-6 维特比译码第3时刻幸存路径

需要指出的是,对于某个节点,如果比较两条路径与接收序列的累计码距值

相等时,则可以任意选者一条路径作为幸存路径,吃时不会影响最终的译码结果。在码的终了时刻a状态,得到一条幸存路径。如果1-7所示。由此可看到译码器

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第6页 共19页

节点号 0

11 1 2 3

4 5 6 7 00 11 8

a b c d

00 01 01 01 01

图1-7 第8时刻幸存路径

输出是R’=(1101010001011100),即可变换成序列(11011000),恢复了发端原始信息。比较R’和R序列,可以看到在译码过程中已纠正了在码序列第1和第7位上的差错。当然如果差错出现太频繁,以致超出卷积码的纠错能力,还是会发生纠误的。

2 Matlab中卷积码编码器和译码器的设计与仿真

2.1 Matlab/Simulink卷积编码信源模块介绍

本设计是采用语音文件作为信源,所以需要实现录制还有段声音文件bbbb.wav,放入work文件夹下.整个信源模块如图2-1

图2-1 信源模块

其中,各个元件具体参数如下图所示:

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第7页 共19页

图2-2 from wave file 参数设置 图2-3 zero-order hold参数设置

将所得到的采样信号进行PCM编码,PCM编码模块如图2.1-3,再通过并串转换,如图2-4;

图2-4 PCM编码模块

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第8页 共19页

图2-5并串转换模块

具体参数设置如下列各图所示:

图2-6 Saturation参数设置 图2-7 Relay 参数设置

图2-8 A-Law Compressor参数设置 图2-9 Buffer参数设置

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第9页 共19页

在语音信号经过信源上述模块后,模拟信号将会变为非归零二进制基带信号,接着就可以进行本次设计的关键步骤了——卷积编码

2.2 Matlab/Simulink卷积编码信源模块介绍

在得到二进制非归零信号后,为了增加数据的可靠性,就可以进行卷积编码了。卷积编码模块设计如图2-10所示。

图2-10 卷积编码,卷积解码模块

此模块分别由Convolutional Encoder(卷积码编码器),BSC信道,Viterbi Decoder(维特比译码器)。其各元件具体参数设置如下列各图所示:

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第10页 共19页

图2-11 卷积编码器参数设置 图2-12 信道参数设置

图2-13 维特比译码器参数设置

可以看出延时34个码元。故Traceback depth 参数设置为34

信道中差错率可以人为修改,这里暂时设为0。通过示波器观测,如图2-14

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第11页 共19页

图2-14 卷积编码,卷积解码

2.3 Matlab/Simulink卷积编码信源模块介绍

为了得到完整的语音信号,就得接受到的信号进行延时补偿,PCM解码,串并转换,最后进过缓冲器,导入到工作文件夹下。其原理图如图2-15所示;

图2-15 信宿模块

各元件参数设置均和编码时参数相同。最后接入语音生成元件。其参数设置如图下,

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第12页 共19页

图2-16 To wave file参数设置

2.4 Matlab/Simulink卷积编码——维特比译码系统测试

完成上述三大步骤后,在接入Error Rate Calculation进行误码率统计。整个原理图如图2-17

图2-17 卷积编码——维特比译码系统

由图2.2-5可知,本系统延时34,故作如下图参数设置

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第13页 共19页

图2-18 Error Rate calculation参数设置

完成上述参数设置后点击运行。运行结束后,便可以在Work文件夹下生成名为fuyingwen.wav的声音文件,点击播放,所得声音和输入声音一样,说明该设计成功。各示波器显示如图2-19:

图2-19 卷积编码输入,维特比译码输出

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第14页 共19页

由图2-17可以看出,输入和输出对比,出了在时间上有34个码元的延迟以外,波形是一样的,所以此卷积编码,维特比译码正确。

图2-30 输入波形和输出波形对比

由图2-30所示,输入波形和输出波形一样,这是因为信道的差错率为0 改变信道的差错率为0.05。输入输出波形对比如图2-31;

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第15页 共19页

图 2-31 加入噪声的输入波形和输出波形

由此可知,信道的特性是影响信息传输的一大因素,只有信道的差错率在一定范围内,才能保证信息的正确传输。

3 Matlab中卷积码差错率——误码率分析

编制M文件maidi.m,使xy.mdl在不同的信噪比条件下重复执行前面建立的项目maidi.mdl。然后绘制信道的差错率与编码信号误码率之间的关系曲线图。

M文件代码如下: %x表示差错率 x=0:0.01:0.05 %y表示信号的误比特率 y=x;

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第16页 共19页

%重复运行xy.mdl,检验不同条件下硬判决译码的性能 for i=1:length(x) %信道的信噪比依次取x中的元素 Fu1=x(i);

%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中 sim('maidi');

%计算BitErrorRate的均值作为本次仿真的误比特率 y(i)=mean(data1); end

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

执行此M文件,得到如图3.1所示的关系曲线图,由此图可见,随着信道差错率的提升,维特比译码所得结果的误码率升高,信道的可信度降低,

图3.1 差错率——误码率曲线

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第17页 共19页

由图3.1差粗率——误码率可以看出,随着差错率的升高,到误码率大于0.02

时后误码率开始明显变大,可信将度越来越低。0.02以前。误码率几乎没有什么变化,这就说明,卷积码的纠错能力也是有限的,并且超出纠错范围,误码率就会剧烈增加。但是它在很大程度上,提高的了信息的可信度。

4 结束语

此课程设计对整个通信系统包含的编码、传输和译码都进行了设计与仿真,从这些过程中我们看到了通信系统的基本工作原理。通过整个卷积码系统的设计与仿真,使我们加深了对卷积码的理解,掌握维特比译码的基本思路,知道如何进行误码率分析从而选者合适的信道传输信号,更重要的是学会了使用Matlab作为学习工具来对我们的通信系统进行设计和仿真等操作,这对我们以后的学习和工作有着重要意义。

通过本次课题的研究,针对Viterbi算法在理论和实现两方面分别进行了较深的研究。理论方面,在深入了解了用于卷积码的Viterbi译码算法基本原理后,进一步将其拓展到SIMULINK模块仿真方面的应用,主要给出了基于Matlab的卷积编码和Viterbi算法应用过程。在实现方面,本文重点研究的是用SIMULINK实现不同差错率下的卷积码的误码性能的对比研究.最后仿真得到对比图,达到了研究的预期目的。

经过自己的努力和胡老师的耐心指导,毕业设计顺利按时完成。它是对我们把本科三年所学的理论知识运用到实践中的一次系统的检验。从接到题目到设计结束的过程中经历了很多,总的来说可以概括为以下几点。

(1)设计中要用到的Simulink仿真软件是我第一次接触,所以刚接到题目时无从下手,后来通过上网和借助图书馆的书籍,学习这门新的软件,学习过程中遇到很多困难,但通过自己的努力和老师的帮助,最终掌握了仿真的基本方法。

(2)由于面临回家过节的问题,和此次设计工作的时间安排上有一定的冲突。为了顺利完成设计工作,老师安排了每周的工作量和所要达到的目标,自己也制定了相应的时间表,以求更充分的利用时间。

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第18页 共19页

(3)刚开始在设计的步骤和方法上比较混乱,后通过借阅各种资料和请教老师,有了明确的工作方向和清晰的设计步骤,使我能在更短的时间内很好的完成了本次毕业设计。

由于时间原因,本文的工作在很多方面未能更深入地研究下去。如对于Viterbi译码的软,硬判决的误码性能对比和应用还有必要进一步研究。

《基于Matlab/Simulink的卷积码编码技术仿真与性能分析》 第19页 共19页

参考文献

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

[2]《现代通信系统—使用MATLAB》 西安交通大学出版社 约翰.G.普罗克斯 马苏德.萨勒赫 编刘树棠译

[3]《SIMULINK通信仿真教程》国防工业出版社 主编 李贺冰 副主编 袁杰萍 孔俊霞 [4]《MATLAB通信仿真及应用实例详解》人民邮电出版社 邓华等编著 [5]《MATLAB基础与编程入门》 西安电子科技大学出版社 张威编

本文来源:https://www.bwwdw.com/article/e25v.html

Top