




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要IAbstractII引言1第一章 绪论21.1 题目背景21.2 课题研究意义21.3 国内外相关研究情况21.4 本文主要研究工作3第二章 相关技术介绍42.1 差错控制技术42.1.1 差错控制的基本方式42.1.2 差错控制编码52.1.3 差错控制编码的分类52.1.4 差错控制编码的基本原理52.2 线性分组码62.2.1 线性分组码基本概念62.2.2 线性分组码编码原理62.2.3 差线性分组码译码原理72.3 循环码82.3.1 循环码基本概念82.3.2 循环码的多项式表示及生成矩阵82.3.3 循环码编码原理92.3.4 循环码译码原理10第三章 Matlab软件与S
2、imulink仿真平台123.1 Matlab软件介绍123.1.1 Matlab发展史123.1.2 M文件133.1.3 程控流语句133.2 Simulink143.2.1 Simulink简介143.2.2 Simulink模块15第四章 基于Matlab差错控制技术仿真及结果分析174.1 线性分组码差错控制仿真174.1.1 线性分组码仿真步骤174.1.2 线性分组码差错控制仿真系统模型174.1.3 线性分组码仿真流程及结果分析174.2 循环码差错控制仿真174.2.1 循环码仿真步骤234.2.2 循环码差错控制仿真系统模型254.2.3 循环码仿真流程及结果分析254.2
3、.4 主要功能模块及参数设置264.2.5 循环码的误码率与差错率的关系29结论32致谢33参考文献34基于Matlab的差错控制技术仿真摘要:近些年来,通信增值业务得到迅速发展,保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要,而差错控制技术对于提高通信系统的传输可靠性具有重要意义。 在通信传输过程中,由于各种因素的影响数据可能变得紊乱或丢失,造成发送的数据和接收的数据不一致而出现差错。差错控制是在数字通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。而信道编码是通信系统中采用的一种差错控制措施。 在信道编码过程中,发送端将会给被传输的
4、信息上附加一些监督码元,进行特定编码,在监督码元与信息码元之间以某种确定的规则相互关联且约束。在接收端以既定之规则来校验信息码元与监督码元之间的关系,一旦在传输过程中发生差错,则信息码元与监督码元的关系就会受到破坏,从而在接收端可以发现错误乃至纠正错误。 由此可见一种好的信道编码即一种好的差错控制技术对于提高通信系统的传输可靠性具有重要意义。关键词:差错控制;信道;Matlab;线性码;循环码The error control simulation based on MatlabAbstract:In recent years, the communication value-added se
5、rvices have developed rapidly. To ensure that data is correctly trans missed in low SNR, it is important to improve the effectiveness and reliability of communication. Indeed, error control techniques play a major role in enhancing the reliability of the communication system. Due to the influence of
6、 various factors, the data may become disordered or lost in the transmission process; and result to inconsistent data during dispatch and reception. Error control makes use of coding method to control the errors in the transmission in digital communication; in order to improve accuracy of transmissi
7、on. Moreover, the channel coding is one of error control measures used in the communication system. In the channel encoding process, the data will be attached several supervise code elements by sending terminal for specific coding; thus, establish certain rules and relevant constraints between super
8、vise code element and information code element. The receiving terminal verify the supervise code element and information code element by certain rules. Once errors occur during transmission, the destroyed relationship between supervise code element and information code element can be discovered and
9、corrected by the receiving terminal.In a word, a good channel coding that is, a good error control techniques have an important significance for improving the transmission reliability of the communication system.Key Words: Error control; Channel; Matlab; Linear coding; Cyclic code引 言 通信过程中,在实际信道上传输数
10、字信号时,由于信道传输特性不理想以及加性噪声的影响,导致接收端所收到的数字信号不可避免地会发生一些随机性的错误。为了能够在已知信噪比的情况下达到一定的比特误码率指标,首先应该合理的设计基带信号,选择调制解调方式,来使比特误码率尽可能降低。而实际上,在许多通信系统中的比特误码率并不能够满足实际的需求。保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要。此时则必须采用有效的信道编码,即差错控制编码才能够将比特误码率进一步的降低,以满足系统的要求。差错控制技术中的许多译码思想和方法,可以解决神经网络中的一些问题,差错控制技术方兴未艾,当然差错控制技术还存在一些现实的问题
11、,以目前世界范围内研究最热门的随机码为例1,由于随机码的算法非常复杂,随机性的可靠度不高,随即交织器的实现难度大,使随机码在通信系统中应用存在成本过高,稳定性不够,无法大规模的普及等问题,而此类问题正是国际研究的热点方向,有待在今后的研究中进一步解决。差错控制编码基本的实现方法是在发送端要被传输的信息上附加上一些监督码元,这些多余的码元与信息码元之间以某种的确定规则相互关联约束。在接收端按照既定之规则校验信息码元和监督码元之间的关系,一旦传输途中发生差错,会导致信息码元与监督码元之间的关系受到破坏,进而接收端可以发现错误乃至纠正错误。因此,研究各种的编码和译码的方法是差错控制编码所需要解决的问
12、题。此文就是为了研究比较出最适合采用的差错控制编码技术,从而以最低的成本最大程度的降低误码率。 第一章 绪论1.1 题目背景近些年来,通信增值业务得到迅速发展,保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要。差错控制技术对于提高通信系统的传输可靠性,降低通信设备的发射功率和减小体积具有重要意义,随着数字通信的发展与电子计算机的广泛应用,差错控制编码日益受到人们的重视并取得迅速发展,因而在通信系统发达的今天,差错控制技术已经广泛的应用于卫星通信系统,移动通信系统,数据存储等各种数字通信方面,它对保证信息传输的可靠运行起着重要作用。以差错控制技术,实现对信道传输数
13、据进行纠错编码,在现有的通信系统和将来的新型通信系统数据传输中进行有效差错控制是一种必然的趋势,可以预见,在寻求一种在较低信噪比情况下具有强大纠错能力的差错控制技术是我们急待解决的课题。1.2 课题研究意义由于在信道传输中存在多种干扰因素,严重影响数据传输性能,因此,如何在信道中实现可靠有效的通信成为业界非常关注的问题,而对差错控制技术的研究正是实现更佳的可靠性,有效性的最佳方法之一。差错控制编码技术广泛应用于通信系统.在通信系统中应用差错控制编码不仅可给系统提供很高的可靠性和传输稳定性,而且编码增益的提高对于降低发射机功率和个人移动终端的体积都具有重要意义,特别是对低功率受限的卫星信道。34
14、1.3 国内外相关研究情况 目前,利用差错控制技术降低各类数字通信系统以及计算机存储和计算系统中的误码率,提高通信质量,在西方国家中已经作为一门标准技术而广泛应用,而且差错控制技术还应用于超大规模集成电路中,以提高集成电路芯片的成品率,不仅如此,差错控制技术中的许多译码思想和方法,可以解决神经网络中的一些问题,差错控制技术方兴未艾,当然差错控制技术还存在一些现实的问题,以目前世界范围内研究最热门的随机码为例,由于随机码的算法非常复杂,随机性的可靠度不高,随即交织器的实现难度大,使随机码在通信系统中应用存在成本过高,稳定性不够,无法大规模的普及等问题,而此类问题正是国际研究的热点方向,有待在今后
15、的研究中进一步解决2。1.4 本文主要研究工作差错控制编码基本的实现方法是在发送端要被传输的信息上附加上一些监督码元,这些多余的码元与信息码元之间以某种的确定规则相互关联约束。在接收端按照既定之规则校验信息码元和监督码元之间的关系,一旦传输途中发生差错,会导致信息码元与监督码元之间的关系受到破坏,进而接收端可以发现错误乃至纠正错误3。因此,研究各种的编码和译码的方法是差错控制编码所需要解决的问题。 编码涉及到的内容也比较广泛,前向纠错编码(FEC)、普通线性码、线性分组码(汉明码、循环码)、理德所罗门码(RS码)、BCH码、FIRE码、交织码,卷积码、TCM编码、Turbo码等都是差错控制常用
16、编码。本文只对其中的线性分组码、线性循环码做以介绍,并对相关内容进行仿真。 先分别进行线性分组码编码与循环码编码的基于Matlab系统仿真,分别得到最终的误码率曲线图,进行单一变量的两次对比,分别是未经过差错控制编码的系统传输比特差错率与经过差错控制编码的系统传输比特差错率,经过线性分组码编码的系统传输比特差错率与经过线性循环码编码的系统传输比特差错率的数据比较,由此以来可以得出结果:在信号传输过程中经过差错控制编码后的信道比特差错率会有明显的下降,即差错控制编码技术对于提高通信系统的传输可靠性具有重要意义;不同的差错控制编码方式会产生不同的差错可控效果,选择一种有效的编码方式对于提高数通信系
17、统的传输可靠性至关重要。第二章 相关技术介绍2.1 差错控制技术2.1.1 差错控制的基本方式 1. 检错重发方式(ARQ)。采用检错重发方式,发端经编码后发出能够发现错误的码,接收端收到后经检验如果发现传输中有错误,则通过反向信道把这一判断结果回馈给发送端。然后,发送端把信息重发一次,直到接收端确认为止。采用这种差错控制方法需要具备双向信道,一般在计算机数据通信中应用。检错重发方式分为三种类型: (1) 停发等待重发,发对或发错,发送端均要等待接收端的回应。特点是系统简单,时延长; (2) 返回重发,无ACK信号,当发送端收到NAK信号后,重发错误码组以后的所有码组,特点是系统较为复杂,时延
18、减小; (3) 选择重发,无ACK信号,当发送端收到NAK信号后,重发错误码组,特点是系统复杂,时延最小。 2. 前向纠错方式(FEC)。发送端经编码发出能纠正错误的码,接收端收到这些码组后,通过解码能发现并纠正误码。前向纠错方式不需要回馈通道,特别适合只能提供单向通道的场合,特点是时延小,实时性好,但系统复杂。但随着编码理论和微电子技术的发展,编译码设备成本下降,加之有单向通信和控制电路简单的优点,在实际应用中日益增多。 3. 混合纠错检错方式(HEC)。混合纠错检错方式是前向纠错方式和检错重发方式的结合,发送端发出的码不但有一定的纠错能力,对于超出纠错能力的错误要具有检错能力。这种方式在实
19、时性和复杂性方面是前向纠错和检错重发方式的折衷,因而在近年来,在数据通信系统中采用较多。 4. 回馈校验方式(IRQ)。回馈校验方式(IRQ)又称回程校验。收端把收到的数据序列全部由反向信道送回发送端,发送端比较发送数据与回送数据,从而发现是否有错误,并把认为错误的资料重新发送,直到发送端没有发现错误为止。 优点:不需要纠错、检错的编译器,设备简单。 缺点:不仅需要反向信道;而且实时性会比较差;在发送端需要一定容量的内存。(IRQ)方式仅适用于于传输速率较低、数据差错率较低的控制简单的系统中。2.1.2 差错控制编码通常差错控制技术包括两个主要内容:差错的检查和差错的纠正。差错检测通常是通过差
20、错控制编码来实现的,而差错纠正是通过差错控制的方法来实现的。差错控制是指在数据通信过程中能发现或纠正错误,将差错限制在尽可能小的允许范围内。 差错控制的基本思想是在发送端根据要传输的数据序列,按一定的规律加入多余码元,即附加一些监督码元,这些多余的码元与信息码元之间是以某种确定的规则相互关联的,使原来不相关的数据序列变成相关的,即编码。传输时将多余码元和信息码元一并传送。接收端根据信息码元和多余码元(监督码元)之间的规则进行检验,即译码,根据译码结果进行错误检测,一旦传输过程中发生错误,信息码元与监督码元之间的关系将受到破坏,从而发现错误乃至纠正错误。当发现错误时,或者通过反馈信道要求发送方重
21、发有错的数据,或者由接收端的译码器自动将错误纠正。多余码元为监督码元,根据信息码元产生监督码元的方法叫差错控制编码。2.1.3 差错控制编码的分类 1. 按照差错控制编码的不同功能,可以分为检错码(仅能检测误码)、纠错码(仅可以纠正误码)和纠删码(兼有纠错和检错功能)。 2. 按照信息码元和附加的监督码元之间的检验关系可以分为线性码(信息码元和监督码元满足一组线性方程式)和非线性码。 3. 按照信息码元和监督码元之间的约束关系可以分为分组码和卷积码。分组码中,码元序列每n位分成一组,其中k个是信息码元,r=n-k个是监督码元,监督码元仅与本组的信息码元有关。卷积码中,编码后序列也编为分组,但监
22、督码元不仅与本组信息码元有关,还与前面码组的信息码元有关。 4. 按照纠正错误的类型不同,可以分为纠正随机错误的码和纠正突发错误的码。 5. 按照构成差错控制编码的数学方法来分类,可以分为代数码、几何码和算术码。其中代数码建立在近代数学基础上,是目前发展最为完善的编码,其中线性码是代数码的一个最重要的分支。 6. 按照每个码元的取值不同,可以分为二进制代码和多进制码。2.1.4 差错控制编码的基本原理 纠错编码:对原来的信息代码重新编写,根据需要增加一些监督码,使在输出端能够识别出错码。 分组码的结构:将信息码分组,为每组信息码附加若干监督码的编码称为分组码。在分组码中,监督码元仅监督本码组中
23、的信息码元。分组码结构图如图2.1中所示。 k个信息位r个监督位码长n=k+r 图2.1 分组码的基本结构 分组码的符号:(n, k)码中n表示码组的总位数,称为码组长度(码长),k表示码组中信息码元的数目,n-k=r表示码组中的监督码元数目,或称监督位数目。2.2 线性分组码2.2.1 线性分组码基本概念所谓线性码就是码字集中的元(码字)之间的任意线性组合仍然是合法的码字,即是线性组合运算封闭的码字集。 线性分组码是一类奇偶校验码,它可以由(n,k)形式表示,编码器将一个k比特信息分组(信息矢量)转变为一个更长的由给定元素符号集组成的n比特编码分组,当这个符号集包含两个元素(0和1),与二进
24、制相对,称为二进制编码。 分组码是对每段k 位长的信息组,以一定规则增加r = n - k个检验元,组成长为n的序列:,称这个序列为码字。在二进制情况下,信息组总共有个( q 进制为个) ,因此通过编码器后,相应的码字也有个,称这个码字集合为( n , k) 分组码。n长序列的可能排列总共有种。称被选取的个 n重为许用码组,其余个为禁用码组。对于长度为n的二进制分组码,可以表示成(n,k),通常用于前向纠错。在分组码中,监督位加到信息位之后,形成新码,在编码中,k个信息位,被编为n位长度,(n-k)个监督码的作用是实现检错和纠错。2.2.2 线性分组码编码原理线性码是一种分组码,而线性分组码的
25、编码过程可以分为以下两个步骤:首先,把信息序列按照一定的长度分割成为若干信息码组,每组由k位组成;然后,编码器按照既定的由线性方程组规定的线性规则,将信息码组变换成为n(nk)重码字,其中r=n-k个附加码元是线性运算产生的。在编码的过程中,首先将数据每k个比特分为一组,记作m,成为信息组。然后将长度为k的信息组进行映射运算,即编码。可以得到一个n比特构成的码字Ci,这样的分组码成为(n,k)码。分组码的一个重要特性就是它的码元仅与当前编码的信息序列相关,而与过去的信息序列无关,故此也可以说分组编码器是无记忆的。如果Ci中的n个元素都可以用m中的k个元素的线性组合形成,我们将它称为线性分组码。
26、线性分组码的编码过程可以描述成一个矢量和一个矩阵的成绩的结果。即: (2-1)其中G是由k个n维矢量构成的矩阵,m是信息序列分组,c是编码得到的n维编码输出。根据公式(2-1)得码字c可以表示为。而矩阵G称为编码生成矩阵,形式为: (2-2)有了生成矩阵后,则可根据输入的信息位和生成矩阵相乘得到编码矩阵即: (2-3)其中C为编码后结果, I为信息矩阵,G为生成矩阵。2.2.3 差线性分组码译码原理 监督矩阵与(n, k)码的任何一个许用码字进行相乘的结果必等于0,即如果C=mG是任一(n, k)码字,则必有C与H的转置矩阵的乘机为0。若不属于许用码字,或有传输差错,且差错位数在(n, k)码
27、纠错能力内,则运算的结果将为非0值,此时,可以纠错或检错重发。当编码矩阵与生成矩阵的转置矩阵相乘时,若当其中的一位编码出现了差错,则会有七种情况,则根据这些情况列出错码矩阵如下: (2-4)而这些情况正好是和校验子有某种对应关系的,根据这些对应关系可以进行相关编程。若编程检测到了那一位错误可以根据下式: A=B+E (2-5) 对接收到的信息进行改正求出正确的编码,从而再提去更正后的接收序列的前四位来提取信息位,以至获得信息矩阵I。其中A为纠错输出码序列,E为错码矩阵,B为信道输出码。2.3 循环码2.3.1 循环码基本概念 循环码是线性分组码的一种,所以它具有线性分组码的一般特性,除此之外还
28、具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n, k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。 循环码是属于无权码,循环码的编排特点是在相邻的两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同。由于数码转换的速度回有快有慢,中间会经过一些其它的数码形式,故称此为瞬时错误。而循环码的优点就是没有瞬时错误,循环码是相邻的两个数码之间仅有一位码元不同的方式,这样满足临接条件,故而循环码不会产生瞬时错误。循环码的最大特点就是码字的循环性:循环码中的任一许用码组在经过循环移位之后,所得
29、到的码组依然是许用码组。形象的说就是若为一循环码组,则、还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。2.3.2 循环码的多项式表示及生成矩阵 设码长为n的循环码表示为: (2-6)其中为二进制数,通常把码组中各码元当做二进制的系数,即把上式(2-6)中长为n的各个分量看做多项式: (2-7)上式的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式4。用生成多项式(2-7)式除,得到: (2-8)上式中是余式,其表示为: (2-9)而+是码多项式,由此可得循环码的系统形式的生成矩阵为:
30、G= (2-10)2.3.3 循环码编码原理 1. 信息码构成信息多项式。多项式如下: (2-11) 其中高幂次为k-1; 2. 用乘以信息多项式m(x)。这一运算实际上是把信息码后附加上(n-k)个“0”。例如,信息码为110,它相当于。当n-k7-34时,它相当于1100000; 3. 用g(x)除b中之式得到余式r(x)。其次数必小于g(x)次数,即小于(n-k),将此r(x)加于信息位后做监督位。由于循环码多项式A(x)都可以被g(x)整除,也就是: (2-12)因此,用m(x)除以g(x),就得到商Q(x)和余式r(x),即: (2-13) 这样就得到了r(x); 4. 求A(x)。
31、编码输出系统循环码多项式A(x)为: (2-14)上述中阐明了循环码编码的整个过程,而根据上面的过程讨论,可以得到(7,4)循环码编码流程图如图2.2所示。 初始化 确定余式r(x): 确定A(x):储存A(x) 图2.2 循环码编码流程图2.3.4 循环码译码原理 对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,可以由式(2-12)通过判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)B(x),B(x)
32、不能被g(x)整除5。因此,可以根据余项是否为零来判断码组中有无错码。 需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。 在接收端为纠错而采用的译码方法自然比检错要复杂许多。为了能够纠错要求每个可纠正的错误图样必须和校正子之间存在某种对应关系。 纠错可以按照下述步骤进行:首先,由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);其次,由校正子S(x)确定错误图样E(x)。基于错误图样识别的译码器称为梅吉特译码器;最后,将错误图样E(x)与B(x)相加,纠正错误。 编码为(7,4)循
33、环码的译码流程图如图2.3所示。 初始化由R(x)确定S(x)的余式。S(x)=S(x)=0,无误码误码 由S(x)确定错误图样E(x)否 否 是纠错C(x)=E(x)+R(x)存储C(x) 图2.3 译码程序框图第三章 Matlab软件与Simulink仿真平台3.1 Matlab软件介绍3.1.1 Matlab发展史在当今科学技术飞速发展的社会,Matlab已经成为国际上最为流行的科学与工程计算及仿真的软件工具。Matlab语言的功能也越来越强大,不断适应新的要求提出新的解决方法,而它亦不再是一个简简单单的“矩阵实验室”6,它已经成为了一种具有广泛的应用前景的全新计算机高级编程语言了,有人
34、将它称之为为第四代计算机语言,它在国内外的高校和研究部门正扮演着重要的角色。由此可预见,在科学运算、工程仿真、自动控制与科学绘图领域 Matlab语言将长期保持其独一无二的地位。20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用Eispack和Linpack的Fortran子程序库。Eispack是特征值求解的Fortran程序库,Linpack是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。其语言的首创者Cleve Moler教授参与编写了数值分析领域一些著名的著作和两个重要的Fortran程序Eispack和Linpack,并且他
35、在数值分析,特别是在数值线性代数的领域中很有影响,他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980年前后,当时的新墨西哥大学计算机系主任Moler教授在讲授线性代数课程时,发现了用其它高级语言编程极为不便,于是他开始自己动手,利用业余时间为学生编写Einpack和Linpack的接口程序。Cleve Moler给这个接口程序取名为Matlab,该名为矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母的组合7。这一软件利用了当时数值线性代数领域最高水平的Eispack和Linpack两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译
36、、科学计算于一身的一套交互式软件系统。直到1984年,Cleve Moler和 John Lithe成立了MathWorks公司,正式把Matlab推向市场,并继续进行Matlab的研究和开发。在Matlab进入市场前,国际上的许多应用软件包都是直接以Fortran和C语言等编程语言开发的。这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。Matlab的出现,为各国科学家开发学科软件提供了新的基础。在Matlab问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在Matlab上重建。 The MathWorks公司
37、于1992年推出了具有划时代意义的Matlab4.0版本,并于1993年推出了其微机版, 可以配合Microsoft Windows一起使用,使之应用范围越来越广。1994年推出的4.2版本扩充了4.0版本的功能,尤其在图形接口设计方面更提供了新的方法。1997年推出的Matlab 5.0版允许了更多的数据结构,如单元数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年初推出的Matlab 5.3版在很多方面又进一步改进了Matlab语言的功能8。2000年10月底推出了其全新的 Matlab6.0正式版(Release 12),在核心数值算法、接口设计、外部接口、
38、应用桌面等诸多方面有了极大的改进。虽然Matlab语言是计算数学专家倡导并开发的,但其普及和发展离不开自动控制领域学者的贡献。甚至可以说,Matlab语言是自动控制领域学者和工程技术人员捧红的,因为在Matlab语言的发展进程中,许多有代表性的成就和控制界的要求与贡献是分不开的。迄今为止,大多数工具箱也都是控制方面的。 Matlab软件具有着强大的数学运算能力和方便实用的绘图功能以及语言的高度集成性,而且它在其它科学与工程领域的应用亦是越来越广,有着广阔的应用前景和不可估量的潜能。子曰:“工欲善其事,必先利其器”。在决工程方面的问题需正确效率的“善假于物”,而有一种行之有效的工具能解决在教学与
39、研究中遇到的问题,那么Matlab当仁不让的正是此“物”。它可以帮助使用者从繁琐、无谓的底层编程中解放出来。3.1.2 M文件 Matlab除了如前所述的在命令窗口进行的直接交互的指令操作方式外,另外一种更为重要的工作方式就是m档的编程工作方式。m档有两种形式,一种是脚本档(Script File),另一种是函数文件(Function File)。m文件的扩展名为.m。m档可以通过任何纯文本编辑器进行编辑,Matlab中也有自带的文本编辑器,使用edit命令即可开启9。3.1.3 程控流语句任何计算机语言,只要存在顺序结构,循环结构以及分支结构,就可以完成任何程序功能。在Matlab中也有这三
40、种基本的程序结构。但值得注意的是,由于Matlab语言矩阵计算功能十分强大,常常仅仅使用顺序结构藉以矩阵的逻辑运算就可以完成计算任务,由于循环结构和分支结构在Matlab语言中的运行速度相对较慢,所以在算法优化的编程中应当尽可能避免使用,而代之以矩阵运算,从而提高程序运行速度(通常可以提高数十倍到百倍),简化程序代码,而使得程序代码更加接近于数学上的表达10。当然,矩阵编程的编程方法需要读者更多的关于线性代数和矩阵数学的知识和思维方式。总之,Matlab是一种非常完美易用的超高级矩阵编程语言。这里只介绍本次编程中用到的编程结构。 1. 顺序结构。在顺序结构中,Matlab语句是按照书写的前后顺
41、序来执行的。这是Matlab最常用的程序结构,也是执行效率最高的程序结构。 2. 循环结构for。for.end语句适合于循环次数确定的情况,将循环变量的初值,判别和变化放在循环开头。利用help for或doc for可以获得关于该语句的使用手册。for.end语句的调用形式是: for v=表达式 语句1;.语句n;End 3. 条件分支结构if。if 分支结构的一般形式是:if 表达式语句段1;else语句段End3.2 Simulink3.2.1 Simulink简介 Simulink是Matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量
42、书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。它是一个用来对动态系统进行建模、仿真和分析的Matlab软件包。支持连续、离散以及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同采样率的多种采样速率的仿真系统。在其下提供了丰富的仿真模块。其主要功能是实现动态系统建模、方针与分析,可以预先对系统进行仿真分析,按仿真的最佳效果来调试及整定控制系统的参数。Simulink的出现,给控制系统分析与设计带来了福音。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和
43、设计。构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与Matlab;紧密集成,可以直接访问Matlab大量的工具来进行算法研发、仿真的分析和可视化、处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义11。顾名思义,名称表明该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用系统提供的各种功能模块并通过信号线连接各个模块从而创建出所需要的控制系统模型,然后利用Simulink提供的功能来对系统进行仿真和分析。 Simulink是Matlab中的一种可视化仿真工具,是基于
44、Matlab的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。 Simulink模块库提供了丰富的描述系统特性的典型环节,有信号源模块库(Source) ,接收模块库(Sin
45、ks),连续系统模块库(Continuous),离散系统模块库(Discrete),非连续系统模块库(Signal Routing),信号属性模块库(Signal Attributes),数学运算模块库(Math Operations),逻辑和位操作库(Logic and Bit Operations)等等,此外还有一些特定学科仿真的工具箱。 Simulink为用户提供了一个图形化的用户界面(GUI)12。对于用方框图表示的系统,通过图形界面,利用鼠标单击和拖拉方式,它与用微分方程和差分方程建模的传统仿真软件包相比,具有更直观、更方便、更灵活的优点。不但实现了可视化的动态仿真,也实现了与Mat
46、lab、C或者Fortran语言,甚至和硬件之间的数据传递,大大扩展了它的功能。3.2.2Simulink模块在这里我主要介绍在本仿真工程中将会使用到的模块。 1. Mux混路器。将多路信号依照向量的形式混合成一路信号。例如,可以将要观察的多路信号合并成一路,连接到示波器上显示,这样就可以将这些信号同时显示出来。 2. Demux分路器。将混路器组成的信号依照原来的构成方法分解成多路。 3. Display数字显示器。将输入信号用数字形式显示出来。 4. Bernoulli Binary Generator伯努利随机码发生器。伯努利二进制的发生器使用伯努利分布生成随机二进制数,发生器会随机的产
47、生0到1之间的任何实数,其间设置概率P,则剩余的概率生成(1-P),由此以来随机产生的实数都可以生为二进制数的0和1,分别对应概率P和(1-P),其中P=0.5为模块默认设置参数。 5. Binary Cyclic Encoder二进制循环码编码器。用于将伯努利二进制发生器产生的码元进行线性循环编码以通过模拟信道。 6. Binary Symmetric Channel二进制均衡信道。用来模拟信息传输的通道。在实际传输过程中由于各种原因而产生噪声干扰,在这里模拟信道会自我生成固有的持续性的热噪声,其中可以设置在模拟信道传输时的差错概率。 7. Binary Cyclic Decoder二进制循
48、环码解码器。将通过模拟均衡信道的信号进行相关解码。 8. Error Rate Calculation误码率计算器。其运算是比较接收的数据跟输出的数据,它是一个实时流动统计,以这种方式来计算其中误码率。通过对出现同位相异的码字总数的统计作为分子,分母则是通过的码元数据元素的总数,其中它不考虑输入元素之间的差异幅度。如果输入的是位数,则计算出来的是误码率,如果输入的是符号,则计算出来的是符号差错率。 9. Binary Linear Encoder二进制线性编码器。用于将伯努利二进制发生器产生的码元进行线性循环编码以通过模拟信道。其使用点阵式产生器产生一个二进位的线区段编码。 10. Binar
49、y Linear Decoder二进制线性解码器。将通过模拟均衡信道的信号进行相关解码。11. To Workspaces工作空间写入器。可以将系统的仿真结果、系统仿真时刻、系统中的状态或指定的信号输出到Matlab的工作空间中,以便进行定量分析。该模块可以保存任何实数或复数类型的数据到Matlab工作空间。第四章 基于Matlab差错控制技术仿真及结果分析4.1 线性分组码差错控制仿真4.1.1 线性分组码仿真步骤 在实现线性分组码差错控制编码技术仿真时,其可以分为以下几个大步骤: 1. 产生二进制码元; 2. 进行线性分组编码; 3. 经过模拟信道; 4. 进行译码; 5. 进行对原码与经
50、过模拟信道的码进行差错率运算; 6. 得到线性码的信号误码率与信道差错率之间的曲线图,仿真完成并对得到了结果进行分析。4.1.2 线性分组码差错控制仿真系统模型 线性码差错控制编码技术的仿真框图由信号发生器,线性编码器,模拟信道,线性解码器,差错率运算器,结果显示器这六大模块组成,除此以外还有运算结果存储模块,在建模时,此模块属于附加模块。下面对这七个模块功能进行简单介绍13:信号发生器模块:用来产生随机二进制码元。线性编码器模块:将产生的随机二进制码元进行线性分组编码,即差错控制编码。模拟信道模块:用来模拟信号传输通道,为二进制均衡信道,其中生成可控噪声干扰。线性解码器模块:将经过模拟信道的
51、信号进行相干解码。差错率运算器模块:将未进过差错控制编码和经过差错控制编码的信号进行码字差错运算,经过计算得到其实时传输误码率。运算结果存储模块:在数学建模中,此模块是可以无需存在的,故此我用虚线箭头来绘制,在Simulink仿真中,最终得到的仿真结果是以Display模块进行数字显示的,而为了方便观看结果,仿真结果最终将以曲线图直观的表示出来。而在此期间需要调用M函数,所以需要将运算结果提前存储起来以供后用。4.1.3 线性分组码仿真流程及结果分析 基于Simulink平台的系统仿真的步骤为: 1. 建立数学模型。根据通信系统的基本原理,将整个系统简化到源系统,确定总的系统功能,并将各部分功
52、能模块化,找出各部分之间的关系,画出系统流程框图模型; 2. 仿真系统。根据建立的模型,从Simulink通信模型库的各个子库中,将所需要的单元功能模块拷贝到Untitled窗口,按系统流程框图模型连接,组建要仿真的通信系统模型; 3. 设置、调整参数。参数设置包括运行系统参数设置(如系统运行时间、采样速率等)和功能模块运行参数设置; 4. 运行且分析结果。保存且运行仿真,得到仿真数据及波形,并对仿真结果进行分析。其中步骤1已在之前完成,故现在需要根据已建立好的仿真流程框图在Simulink模块库中选取相应的模块进行Simulink建模,完成建模。线性分组码差错控制仿真系统如图4.1所示。 图
53、4.1 线性分组码差错控制仿真系统为了进行比较线性分组码系统的差错率,又设计不经过线性码的仿真系统如图4.2所示。 图4.2 无线性分组码仿真系统 由于伯努利随机信号发生器的产生信号是以概率来执行的,则所生成的随机数均在0到1之间,而二进制数中码字非“0”即“1”所以在这里出现零的概率设置为0.514。伯努利二进制信号发生器参数设置如图4.3所示。 图4.3 伯努利二进制信号发生器参数 图4.4 二进制线性编码器参数 图4.5 二进制均衡信道参数 图4.6 二进制线性解码器参数 图4.7 误码率计算器参数 Start time和Stop time设置仿真的起始和停止时间,单位是秒。而这里的时间概念与真实的时间并不一样,在设置时与实际的运行时间和计算机的性能、模型的复杂程度、解法、步长、误差要求等等因素都有关。在本仿真中设置的Start time为0,Stop time为10000。 目前没有一种对所有的模型都有效的方法,在做Simulink仿真时要根据各种模型的特点,各种数值积分方法的特点和范围,选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年污水自动采样器项目建议书
- 中医个人工作总结13篇
- 新职电力机车副司机行车规章学习题库
- 2025年中高端女包项目建议书
- 黄金卷05-【赢在高考黄金8卷】2024年高考物理模拟卷(湖南专用)含解析
- 污泥资源化制备建材技术企业制定与实施新质生产力战略研究报告
- 清热解毒快速注射剂行业深度调研及发展战略咨询报告
- 液体活检癌症监测技术行业跨境出海战略研究报告
- 生物质能源国际贸易企业制定与实施新质生产力战略研究报告
- 《森林中的铁匠2》名师教案2021
- 2024年正德职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 学生心理韧性对教学策略的影响研究
- 2025年度智慧医疗his系统采购合同模板3篇
- 企业对外宣传培训体系
- 巨量云图(中级)认证考试题库(附答案)
- 《可拆装低层装配式钢结构建筑技术标准》
- (英文版)ISO 14040-2006 环境管理生命周期评估原则和框架
- 人工智能赋能五育融合大单元教学的实践探究
- 管理岗位个人优劣势分析
- 消防维保检测常见故障解决手册
- 术后呕吐的中医护理方案
评论
0/150
提交评论