Matlab编译码器仿真与设计方案.docx
- 文档编号:10539668
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:30
- 大小:38.27KB
Matlab编译码器仿真与设计方案.docx
《Matlab编译码器仿真与设计方案.docx》由会员分享,可在线阅读,更多相关《Matlab编译码器仿真与设计方案.docx(30页珍藏版)》请在冰豆网上搜索。
Matlab编译码器仿真与设计方案
封面
作者:
PanHongliang
仅供个人学习
摘要
本课程设计主要解决信源编码和信道编码中的卷积码的数字调制,信源输出的模拟信号要转换成数字信号,就需要对信源信道进行编码译码操作,并通过Simulink软件进行设计与仿真,进行误码率分析。
卷积码是一种性能优越的信道编码。
它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。
随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。
本文简明地介绍了卷积码的编码原理和译码原理。
并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。
最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。
经过仿真和实测,并对测试结果作了分析。
得出了以下三个结论:
(1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。
(2)对于码率一定的卷积码,当约束长度N发生变化时,系统的误码性能也会随之发生变化。
(3)回溯长度也会不同程度上地影响误码性能。
关键词:
编译码器;simulink;设计与仿真卷积码;码率
ABSTRACT
Thiscourseisdesignedtosolvesourcecodingandchannelcodingconvolutionalcodesinthedigitalmodulation,thesourceoutputanalogsignalsintodigitalsignalstobeconvertedtotheneedforthesourceandchannelcodinganddecodingoperations,andthroughtheSimulinksoftwaredesignandsimulation,andthebiterrorrateanalysis.Convolutionalcodeisasuperiorperformanceofchannelcoding.Itsencoderanddecoderarerelativelyeasytoimplement,andithasastrongerrorcorrectioncapability.Error-correctingcodingtheoryresearchwiththedeepeningofthepracticalapplicationofconvolutionalcodesmorewidely.Thisconciseintroductiontotheprinciplesofconvolutionalcodinganddecodingprinciples.SIMULINKmoduleinthedesign,completedthecodinganddecodingconvolutionalcodeandbiterrorstatisticsofthewholeprocesssimulationmodule.Finally,changesinthesimulationprocessofconvolutionalcodes,respectively,todeepenourunderstandingoftheimportantparametersoftheseparametersonconvolutionalcodesconvolutionalcodeserrorperformance.Thesimulationandmeasurement,andtestresultsareanalyzed.Reachedthefollowingthreeconclusions:
(1)Whenthechangerateconvolutionalcode,thesystemerrorperformancewillsubsequentlychange.
(2)Foracertainrateconvolutionalcodes,whentheconstraintlengthNchanges,thesystemBERperformancealsowillbechanged.(3)backlengthwillbeaffectedtovaryingdegrees,errorperformance.
Keywords:
codec。
simulink。
designandsimulationofconvolutionalcode
第1章引言1
1.1课题背景1
1.2国内外研究现状1
1.3本课题的意义1
1.4本课题的研究方法2
第2章MATLAB组件介绍及通信系统概述3
2.1MATLAB与通信仿真的发展现状及应用3
2.2通信系统概述与组成3
2.3通信仿真4
2.4Simulink仿真及工作原理6
第3章信源编码8
3.1A律μ律编码特性8
3.1.1A律编码8
3.1.2μ律编码8
3.1.3A律13折线9
3.2A律、μ律的特性比较11
第4章信道编码及译码15
4.1卷积码的概念介绍15
4.2卷积码的编码过程介绍15
4.3卷积码译码过程的概述16
4.4卷积码的最大似然译码19
4.5输入与同步单元21
第5章卷积码的仿真22
5.1Simulink仿真模块的参数设置以及重要参数的意义22
5.2简化维特比译码器的仿真26
第6章卷积码译码器的误码率分析28
6.1信噪比与误码率的关系28
6.2.不同回溯长度对卷积码性能的影响29
6.3不同码率对卷积码误码性能的响31
6.4不同约束长度对卷积码的误码性能影响32
第7章结论35
参考文献36
致谢37
第1章引言
1.1课题背景
随着现代通信的发展,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。
A律编码、μ律编码以及卷积码以其高速性和可靠性在实际应用中越来越广泛。
其中1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码方式之一[1]。
1.2国内外研究现状
在对A律、μ律研究中,随着数字化技术的发展,逐步形成了使用折现分段近似压扩特性的方法,这类方法简单且准确,因而获得了广泛的应用,并被采纳为相应的国际建议。
而在对卷积码的研究中,其中编码器较简单,模式也很统一。
主要是研究提高卷积码的译码速度和可靠度。
译码算法中最重要的卷积码的Viterbi算法问世以来,软件仿真和实现都得到了迅速发展。
目前,利用计算机仿真Viterbi算法,模拟在各种不同情况下卷积编码时的译码性能,寻找Viterbi算法的最佳适用信道和不同要求(如误码率)下最优编码。
1.3本课题的意义
在信源编码中,随着数字化技术的发展,逐步形成了使用折现分段近似压扩特性的方法,这类方法简单且准确,因而获得了广泛的应用,并被采纳为相应的国际建议。
在卷积码中,因为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。
在现代信息处理系统中,需要处理的信息量越来越大,实时性要求越来越高。
为减少对主处理器各种资源的占用,要求通信模块方面的大部分工作能独立完成。
因此采用Viterbi译码算法具有非常现实的意义。
1.4本课题的研究方法
本文通过基于MATLAB的SIMULINK下的模块对A律和μ律码以及卷积编码,解码进行仿真。
通过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进行了分析。
得出卷积码Viterbi译码的误比特性能和回溯长度,码率,约束长度的关系。
第2章MATLAB组件介绍及通信系统概述
2.1MATLAB与通信仿真的发展现状及应用
MATLAB是由美国的MathWorks公司推出的一种科学计算和工程仿真软件,它的名字院子MatrixLaboratory,专门以矩阵的形式处理数据。
MATLAB将高性能的科学计算、结果可视化和编程集中在一个易于操作的环境中,并提供大量的内置函数,具有强大的矩阵计算和绘画功能,是用于科学计算、控制系统、信息处理等领域分析、仿真和设计工作。
目前,在世界范围内被科研工作者、工程技术人员和院校师生广泛应用。
Simulink是MATLAB中的一种可视化仿真工具,广泛应用于线性系统、数字控制、非线性系统以及数字信号处理的建模和仿真中。
Simulink采用模块化建模方式,每个模块都有自己的输入/输出端口,实现其功能[5]。
本课题能避开硬件系统的不足,巧妙的运用软件来仿真硬件才能实现的实验结果,大大降低了实验设备要求,节约了人力和财力,而且有很多的库函数可以在实验时直接调用,避免了用硬件做实验的局限性。
可以更方便的做信号系统实验,为教案和研究提供了方便。
还能够锻炼一个人在面对一个具体的工程时,遇到问题,分析问题,解决问题的能力;获得独立策划、实施课题,并按照既定计划进行开发的经验,以及查找相关文献的能力。
通过自己的努力使得对于Matlab有一个全面的、深刻的认识,并且对Matlab做界面的软件有了一定的了解,对系统规划有了初步的认识。
为以后研发工作打下坚实的基础,积累宝贵的经验。
2.2通信系统概述与组成
通信系统(CommunicationSystem)是用以完成信息传输过程的技术系统的总称。
现代通信系统主要借助电磁波在自由空间的传播或导引媒体中的传输机理来实现,前者成为无线通信系统,后者成为有线通信系统。
由于人们对通信容量要求越来越高,对通信的业务要求越来越多样化,所以通信系统正迅速向着宽带化方向发展,而光纤通信系统将在通信网中发挥越来越重要的作用[2]。
通信是将信息从发信者传递给在另外一个时空点的收信者。
通信流程可用下图2-1所示基本模型图来表示。
整个流程是由信源、发送设备、信道(或传输媒质)、接收设备和收信者(信宿)五部分组成。
图2-1通信系统的基本模型
(1)信源
信源是信息的产生者或信息的形成者。
根据信源所产生信号的性质不同,可分为模拟信源和离散信源。
(2)发送设备
发送设备的基本功能是将信源和传输媒介匹配起来,即将信源产生的消息信号变换为有利于传送的信号形式送往传输媒介。
(3)信道
信道是指信号传输的媒介,信号是经过信道传送到接收设备的。
在信号传输过程中,必然会引入发送设备、接收设备和传输媒介的热噪声和各种干扰和衰减,及信号在信道中传输时,会产生信道噪声。
(4)接收设备
接收设备的主要作用是将来自信道的带有干扰的发送信号加以处理,并从中提取原始信息,完成发送变换过程的逆变换——解调和译码。
(5)信宿
信宿是将复原的原始信号转换成相应的消息。
2.3通信仿真
通信仿真是衡量通信系统性能的工具。
实际的通信系统是一个功能结构相当复杂的系统,对这个系统作出的任何改变都可能影响到整个系统的性能和稳定。
因此,在对原有的通信系统作出改进或建立一个新系统之前,通常对这个系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后在应用到实际系统中,这个过程就叫通信仿真[2]。
通信系统仿真一般分为3个步骤,即仿真建模、仿真实验、仿真分析。
由于仿真过程是一个螺旋式发展的过程,因此,这3个步骤可能需要循环执行多次之后才能够获得令人满意的仿真结果。
(1)仿真建模
仿真建模是根据实际通信系统建立仿真模型,它是整个通信仿真过程中的一个关键步骤,因为仿真模型的好坏直接影响着仿真的结果以及仿真结构的真实性和可靠性。
仿真模型是对实际系统的一种模拟和抽象。
过于简单的仿真模型会忽略实际系统的细节,在一定程度上会影响仿真结果的可靠性。
但过于复杂的仿真模型会产生很多相互因素,从而大大延长仿真时间和增加仿真结果分析的复杂度。
因此,仿真模型的建立需要综合考虑其可行性和简单性。
在仿真建模过程中,可以先建立一个相对简单的仿真模型,然后再根据仿真结果和仿真过程的需要逐步增加仿真模型的复杂度。
在仿真建模过程中,首先需要分析实际系统存在的问题或设立系统改造的目标,并把这些问题和目标转化成数学变量和公式。
确定了方针目标后,下一步是获取实际通信系统的各种运行参数。
在以上工作准备好仿真模型后,就是仿真软件的选择了,使用仿真软件建立好模型后,仿真建模的这一步骤就基本完成了。
(2)仿真实验
仿真实验是一个或一系列针对仿真模型的测试。
在仿真实验过程中,通常需要多次改变仿真模型输入信号的数值,以观察和分析仿真模型对这些输入信号的反应,以及仿真系统在这个过程中表现出来的性能。
在明确了仿真系统对输入/输出信号的要求之后,最好把这些设置整理成一份简单的文档。
(3)仿真分析
仿真分析是一个通信仿真流程的最后一个步骤。
在仿真过程中,用户已经从仿真过程中获得了足够多的关于系统性能的消息,但是这些信息只是一些原始数据,一般还需要经过数值分析和处理才能获得衡量系统性能的尺度,从而获得对仿真性能的一个总体评价。
仿真分析并不一定意味着通信仿真过程的完全结束。
如果仿真分析得到的结果打不到预期的目标,用户还需要重新修改通信仿真模型,这时候仿真分析就成为了一个新的循环的开始
2.4Simulink仿真及工作原理
Simulink是MATLAB提供的用于对动态系统进行建模、仿真和分析的工具包。
Simulink提供了专门用于显示输出信号的模块,可以在仿真过程中随时观察仿真结果。
同时,通过Simulink的存储模块,仿真数据可以方便地以各种形式保存到工作空间或文件中,以供用户在仿真结束后对数据进行分析和处理。
另外Simulink把具有等级结构的子系统,因此具有内在的模块化设计要求。
基于以上优点,Simulink作为一种通用的仿真建模工具,广泛用于通信仿真、数字信号处理、机械控制和虚拟现实等领域中[2]。
作为一款专业仿真软件,Simulink具有以下特点:
·基于矩阵的数值计算;
·高级编程语言已经可视化的图形操作界面;
·包含各领域的仿真工具箱,使用方便快捷并可以扩展;
·丰富数据的I/O接口;
·提供与其他高级语言的接口;
·支持多平台(PC/UNIX)
根据输出信号与输入信号的关系,Simulink提供三种类型的模块:
连续模块、离散模块和混合模块。
连续模块是指输出信号随着输入信号发生连续变化的模块;离散模块则是输出信号以固定间隔变化的模块。
对于连续模块,Simulink采用积分方式计算输出信号的数值,因此,连续模块主要涉及数值的计算及其积分。
离散模块的输出信号在下一个抽样到来之前保持恒定,这时候Simulink只需要以一定的间隔计算输出信号的数值。
混合模块是根据输入信号的类型来确定输出信号类型的,它既能差生连续输出的信号,也能够产生离散输出信号。
Simulink仿真包括两个阶段:
初始化阶段和模型执行阶段。
(1)初始化阶段
在初始化阶段,Simulink内部主要完成以下工作。
·模型参数传给MATLAB进行估值,得到的数值结果将作为模型的实际参数。
·展开模型的各个层次,每一个非条件执行的子系统被它包含的模块代替。
·模型中模块按更新的次序进行排序。
·决定模型由无显示设定的信号属性。
·决定所有无显示设定才采样的时间的模块的采样时间。
·分配和初始化用于储存每个模块的状态和输入当前值的存储空间。
完成以上工作后就可以进行下一步工作了,也就是模块执行阶段
(2)模块执行阶段
一般模型是使用数值积分来进行仿真的,所运用的仿真解法器(仿真算法)依赖于模型提供它的连续积分能力。
计算微分可分为以下两步来进行。
首先,按照排列所确定的次序计算每个模块的输出。
然后,根据当前时刻的输入和状态来决定状态的微分;得到微分向量后再把它返回给解法器;后者用它来计算下一个采样点的状态向量。
一旦新的状态向量计算完毕,被采样的数据模块和接收模块才被更新。
在仿真开始时,模型设定待仿真系统的初始状态和输出。
在每个时间步中,Simulink计算系统的输入、状态和输出,并更新模块来反映计算出的值。
在仿真结束时,模型得出系统的输入、状态和输出。
在每个时间步中,Simulink所采取的动作依次如下:
(1)按照排列好的次序更新模型中的输出。
Simulink通过调用模块的输出函数计算模块的输出。
Simulink只把当前值、模块的输入以及状态量传给这些函数计算模块的输出。
对于离散系统,Simulink只有在当前时间是模块采样时间的整数倍时,才会更新模块的输出。
(2)按照排列好的次序更新模块中模块的状态。
Simulink计算一个模块的离散状态的方法是调用模块的离散状态更新函数。
而对于连续状态,则对连续状态的微分进行数值积分来获得当前的连续状态。
(3)检查函数连续状态的不连续点。
Simulink使用过零检测来检测连续状态的不连续点。
(4)计算下一个仿真时间步的时间。
这是通过调用模块获得下一个采样时间函数来完成的。
第3章信源编码
3.1A律μ律编码特性
信源编码也称为量化或信号格式化,它一般是为了减少冗余度或为后续的处理做准备而进行的数据处理。
在Simulink中,包含了A律编码、μ律编码等,这里分别进行介绍。
3.1.1A律编码
如果输入信号为x,输出信号为y,则A律压缩满足式3-1。
sgn(x)
(3-1)
sgn(x)
式中,A为A律压缩参数,最常采用的A值为87.6;V为输入信号的峰值;log为自然对数;sgn函数当输入为正时,输出1,当输出为负时,输出0。
模块的输入并无限制。
如果输入为向量,则向量中的每一个分量将被单独处理[7]。
A律压缩编码模块及其参数及其设定框如图3-1所示。
A律压缩编码模块中包含两个参数:
Avalue:
用于指定浓缩参数A的值
Peaksignalmagnitude:
用于指定能输入信号的峰值V。
3.1.2μ律编码
和A律压缩编码类似,μ律压缩编码中如果输入信号为x,输出信号为y,则μ律压缩满足式3-2。
sgn(x)(3-2)
式中,μ为μ律压缩参数;V为输入信号的峰值;log为自然对数;sgn函数当输入为正时,输出1,当输入为负时,输出0
模块的输入并无限制。
如果输入为向量,则向量中的每一个分量将会被单独处理[7]。
μ律压缩编码中包含两个参数:
muvalue:
用于指定μ律压缩参数μ的值
Peaksignalmagnitude:
用于指定能输入信号的峰值V,也是输出信号的峰值。
3.1.3A律13折线
13段折线的压缩特性如下图3-3所示。
过程为:
第一步:
把x(x>0部分)划分为不均匀的8段。
第一分点取在V/2处,然后每段都是剩下部分的1/2。
;依次取第八段为V~V/2,第七段为V/2~V/4;第一段为V/128~0。
第二步:
把每段均匀划分为16等份,每一份表示一个量化级,显然8段共16x8=128=个量化级,需要二进制7位编码表示。
可以看出每个量化级是不均匀的。
在小信号的量化台阶很小,使小信号时量化噪声减小。
如果按均匀量化计算,以最小台阶为单位,最大信号需用L=128X16=2048个量化级表示,既需要11位编码。
这样非均匀编码使小信号量化台阶缩小了16倍,相当于小信号信噪比改善了20dB。
第三步:
把y轴均匀划分为8段,每段均匀分为16分。
这样y也分为128个量化级,与x轴的128个量化级对应。
因此,压扩特性各段的斜率是不同的。
第一段斜率其他段为[7]:
以上分段为x取正值时的情况。
而x取负值时,压扩特性与x取正值成奇对称。
在正8段和负8段中,正1,2段和负1,2段斜率相同,合为一段。
所以原来的16段折线变为13段折线。
图3-113折线A律压扩特性
实际中,往往都采用近似于A律函数规律的13折线(A=87.6)的压扩特性。
这样,它基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现。
折线形成的方法是把x轴的0-1分成8个不均匀段,而y轴的0-1均匀地分成八段,与x轴的八段一一对应。
至于当x在-1-0及y在-1-0的第三象限中,压缩特性的形状与以上讨论的第一象限压缩特性的形状相同,且它们以原点为奇对称,所以负方向也有八段直线,合起来共有16个线段。
由于正向一、二两段和负向一、二两段的斜率相同,这四段实际上为一条直线,因此正、负双向的折线总共由13条直线段构成,故称其为13折线。
13折线和A律(A=87.6)压扩特性的近似程度,可以由表3-1看出:
表3-1A律13折线
y
0
1/8
2/8
3/8
4/8
5/8
6/8
7/8
1
x1
0
1/128
1/60.6
1/30.6
1/15.4
1/7.79
1/3.93
1/1.98
1
x2
0
1/128
1/64
1/32
1/16
1/8
1/4
1/2
1
段落
1
2
3
4
5
6
7
8
斜率
16
16
8
4
2
1
1/2
1/4
u律15折线形成如下。
把y坐标从0到1之间划分为八个均匀等分,对应于分界点y坐标i/8的x坐标,根据律压缩特性得到(u=255),共14个斜率发生变化的分界点,将其分成15段直折线。
其具体值可见表3-2:
表3-2u律15折线
i
0
1
2
3
4
5
6
7
8
y=i/8
0
1/8
2/8
3/8
4/8
5/8
6/8
7/8
1
x=(2i-1)/255
0
1/255
3/255
7/255
15/255
31/255
63/255
127/255
1
相对斜率8/255(△y/△x)
1
1/2
1/4
1/8
1/16
1/32
1/64
1/128
段落
1
2
3
4
5
6
7
8
3.2A律、u律的特性比较
画出A律13折线近似的压缩特性曲线,与A=87.56对应的压缩特性曲线进行比较。
2画出u律15折线近似的压缩特性曲线,与u=255对应的压缩特性曲线进行比较。
MATLAB程序:
clearall
closeall
dx=0.01。
x=-1:
dx:
1。
u=255。
A=87.6。
%uLaw
yu=sign(x).*log(1+u*abs(x))/log(1+u)。
%ALaw
fori=1:
length(x)
ifabs(x(i))<1/A
ya(i)=A*x(i)/(1+log(A))。
else
ya(i)=sign(x(i))*(1+log(A*abs(x(i))))/(1+log(A))。
end
end
figure
(1)
plot(x,yu,'k.:
')
title('uLaw')
xlabel('x')
ylabel('y')
gridon
holdon
xx=[-1,-127/255,-63/255,-31/255,-15/255,-7/255,-3/255,-1/255,1/255,3/255,7/255,15/255,31/255,63/255,127/255,1]。
yy
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 译码器 仿真 设计方案