基于Matlab的差错控制仿真概要.docx
- 文档编号:24603255
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:41
- 大小:795.22KB
基于Matlab的差错控制仿真概要.docx
《基于Matlab的差错控制仿真概要.docx》由会员分享,可在线阅读,更多相关《基于Matlab的差错控制仿真概要.docx(41页珍藏版)》请在冰豆网上搜索。
基于Matlab的差错控制仿真概要
摘要
Abstract
引言1
第一章绪论2
1.1题目背景2
1.2课题研究意义2
1.3国内外相关研究情况2
1.4本文主要研究工作3
第二章相关技术介绍4
2.1差错控制技术4
2.1.1差错控制的基本方式4
2.1.2差错控制编码5
2.1.3差错控制编码的分类5
2.1.4差错控制编码的基本原理5
2.2线性分组码6
2.2.1线性分组码基本概念6
2.2.2线性分组码编码原理6
2.2.3差线性分组码译码原理7
2.3循环码8
2.3.1循环码基本概念8
2.3.2循环码的多项式表示及生成矩阵8
2.3.3循环码编码原理9
2.3.4循环码译码原理10
第三章Matlab软件与Simulink仿真平台12
3.1Matlab软件介绍12
3.1.1Matlab发展史12
3.1.2M文件13
3.1.3程控流语句13
3.2Simulink14
3.2.1Simulink简介14
3.2.2Simulink模块15
第四章基于Matlab差错控制技术仿真及结果分析17
4.1线性分组码差错控制仿真17
4.1.1线性分组码仿真步骤17
4.1.2线性分组码差错控制仿真系统模型17
4.1.3线性分组码仿真流程及结果分析17
4.2循环码差错控制仿真17
4.2.1循环码仿真步骤23
4.2.2循环码差错控制仿真系统模型25
4.2.3循环码仿真流程及结果分析25
4.2.4主要功能模块及参数设置26
4.2.5循环码的误码率与差错率的关系29
结论32
致谢33
参考文献34
基于Matlab的差错控制技术仿真
摘要:
近些年来,通信增值业务得到迅速发展,保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要,而差错控制技术对于提高通信系统的传输可靠性具有重要意义。
在通信传输过程中,由于各种因素的影响数据可能变得紊乱或丢失,造成发送的数据和接收的数据不一致而出现差错。
差错控制是在数字通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。
而信道编码是通信系统中采用的一种差错控制措施。
在信道编码过程中,发送端将会给被传输的信息上附加一些监督码元,进行特定编码,在监督码元与信息码元之间以某种确定的规则相互关联且约束。
在接收端以既定之规则来校验信息码元与监督码元之间的关系,一旦在传输过程中发生差错,则信息码元与监督码元的关系就会受到破坏,从而在接收端可以发现错误乃至纠正错误。
由此可见一种好的信道编码即一种好的差错控制技术对于提高通信系统的传输可靠性具有重要意义。
关键词:
差错控制;信道;Matlab;线性码;循环码
TheerrorcontrolsimulationbasedonMatlab
Abstract:
Inrecentyears,thecommunicationvalue-addedserviceshavedevelopedrapidly.ToensurethatdataiscorrectlytransmissedinlowSNR,itisimportanttoimprovetheeffectivenessandreliabilityofcommunication.Indeed,errorcontroltechniquesplayamajorroleinenhancingthereliabilityofthecommunicationsystem.
Duetotheinfluenceofvariousfactors,thedatamaybecomedisorderedorlostinthetransmissionprocess;andresulttoinconsistentdataduringdispatchandreception.Errorcontrolmakesuseofcodingmethodtocontroltheerrorsinthetransmissionindigitalcommunication;inordertoimproveaccuracyoftransmission.Moreover,thechannelcodingisoneoferrorcontrolmeasuresusedinthecommunicationsystem.
Inthechannelencodingprocess,thedatawillbeattachedseveralsupervisecodeelementsbysendingterminalforspecificcoding;thus,establishcertainrulesandrelevantconstraintsbetweensupervisecodeelementandinformationcodeelement.Thereceivingterminalverifythesupervisecodeelementandinformationcodeelementbycertainrules.Onceerrorsoccurduringtransmission,thedestroyedrelationshipbetweensupervisecodeelementandinformationcodeelementcanbediscoveredandcorrectedbythereceivingterminal.
Inaword,agoodchannelcodingthatis,agooderrorcontroltechniqueshaveanimportantsignificanceforimprovingthetransmissionreliabilityofthecommunicationsystem.
KeyWords:
Errorcontrol;Channel;Matlab;Linearcoding;Cycliccode
引言
通信过程中,在实际信道上传输数字信号时,由于信道传输特性不理想以及加性噪声的影响,导致接收端所收到的数字信号不可避免地会发生一些随机性的错误。
为了能够在已知信噪比的情况下达到一定的比特误码率指标,首先应该合理的设计基带信号,选择调制解调方式,来使比特误码率尽可能降低。
而实际上,在许多通信系统中的比特误码率并不能够满足实际的需求。
保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要。
此时则必须采用有效的信道编码,即差错控制编码才能够将比特误码率进一步的降低,以满足系统的要求。
差错控制技术中的许多译码思想和方法,可以解决神经网络中的一些问题,差错控制技术方兴未艾,当然差错控制技术还存在一些现实的问题,以目前世界范围内研究最热门的随机码为例[1],由于随机码的算法非常复杂,随机性的可靠度不高,随即交织器的实现难度大,使随机码在通信系统中应用存在成本过高,稳定性不够,无法大规模的普及等问题,而此类问题正是国际研究的热点方向,有待在今后的研究中进一步解决。
差错控制编码基本的实现方法是在发送端要被传输的信息上附加上一些监督码元,这些多余的码元与信息码元之间以某种的确定规则相互关联约束。
在接收端按照既定之规则校验信息码元和监督码元之间的关系,一旦传输途中发生差错,会导致信息码元与监督码元之间的关系受到破坏,进而接收端可以发现错误乃至纠正错误。
因此,研究各种的编码和译码的方法是差错控制编码所需要解决的问题。
此文就是为了研究比较出最适合采用的差错控制编码技术,从而以最低的成本最大程度的降低误码率。
第一章绪论
1.1题目背景
近些年来,通信增值业务得到迅速发展,保证通信中较低信噪比情况下的数据无误传输,提高通信的有效性和可靠性显得越来越重要。
差错控制技术对于提高通信系统的传输可靠性,降低通信设备的发射功率和减小体积具有重要意义,随着数字通信的发展与电子计算机的广泛应用,差错控制编码日益受到人们的重视并取得迅速发展,因而在通信系统发达的今天,差错控制技术已经广泛的应用于卫星通信系统,移动通信系统,数据存储等各种数字通信方面,它对保证信息传输的可靠运行起着重要作用。
以差错控制技术,实现对信道传输数据进行纠错编码,在现有的通信系统和将来的新型通信系统数据传输中进行有效差错控制是一种必然的趋势,可以预见,在寻求一种在较低信噪比情况下具有强大纠错能力的差错控制技术是我们急待解决的课题。
1.2课题研究意义
由于在信道传输中存在多种干扰因素,严重影响数据传输性能,因此,如何在信道中实现可靠有效的通信成为业界非常关注的问题,而对差错控制技术的研究正是实现更佳的可靠性,有效性的最佳方法之一。
差错控制编码技术广泛应用于通信系统.在通信系统中应用差错控制编码不仅可给系统提供很高的可靠性和传输稳定性,而且编码增益的提高对于降低发射机功率和个人移动终端的体积都具有重要意义,特别是对低功率受限的卫星信道。
1.3国内外相关研究情况
目前,利用差错控制技术降低各类数字通信系统以及计算机存储和计算系统中的误码率,提高通信质量,在西方国家中已经作为一门标准技术而广泛应用,而且差错控制技术还应用于超大规模集成电路中,以提高集成电路芯片的成品率,不仅如此,差错控制技术中的许多译码思想和方法,可以解决神经网络中的一些问题,差错控制技术方兴未艾,当然差错控制技术还存在一些现实的问题,以目前世界范围内研究最热门的随机码为例,由于随机码的算法非常复杂,随机性的可靠度不高,随即交织器的实现难度大,使随机码在通信系统中应用存在成本过高,稳定性不够,无法大规模的普及等问题,而此类问题正是国际研究的热点方向,有待在今后的研究中进一步解决[2]。
1.4本文主要研究工作
差错控制编码基本的实现方法是在发送端要被传输的信息上附加上一些监督码元,这些多余的码元与信息码元之间以某种的确定规则相互关联约束。
在接收端按照既定之规则校验信息码元和监督码元之间的关系,一旦传输途中发生差错,会导致信息码元与监督码元之间的关系受到破坏,进而接收端可以发现错误乃至纠正错误[3]。
因此,研究各种的编码和译码的方法是差错控制编码所需要解决的问题。
编码涉及到的内容也比较广泛,前向纠错编码(FEC)、普通线性码、线性分组码(汉明码、循环码)、理德-所罗门码(RS码)、BCH码、FIRE码、交织码,卷积码、TCM编码、Turbo码等都是差错控制常用编码。
本文只对其中的线性分组码、线性循环码做以介绍,并对相关内容进行仿真。
先分别进行线性分组码编码与循环码编码的基于Matlab系统仿真,分别得到最终的误码率曲线图,进行单一变量的两次对比,分别是未经过差错控制编码的系统传输比特差错率与经过差错控制编码的系统传输比特差错率,经过线性分组码编码的系统传输比特差错率与经过线性循环码编码的系统传输比特差错率的数据比较,由此以来可以得出结果:
在信号传输过程中经过差错控制编码后的信道比特差错率会有明显的下降,即差错控制编码技术对于提高通信系统的传输可靠性具有重要意义;不同的差错控制编码方式会产生不同的差错可控效果,选择一种有效的编码方式对于提高数通信系统的传输可靠性至关重要。
第二章相关技术介绍
2.1差错控制技术
2.1.1差错控制的基本方式
1.检错重发方式(ARQ)。
采用检错重发方式,发端经编码后发出能够发现错误的码,接收端收到后经检验如果发现传输中有错误,则通过反向信道把这一判断结果回馈给发送端。
然后,发送端把信息重发一次,直到接收端确认为止。
采用这种差错控制方法需要具备双向信道,一般在计算机数据通信中应用。
检错重发方式分为三种类型:
(1)停发等待重发,发对或发错,发送端均要等待接收端的回应。
特点是系统简单,时延长;
(2)返回重发,无ACK信号,当发送端收到NAK信号后,重发错误码组以后的所有码组,特点是系统较为复杂,时延减小;
(3)选择重发,无ACK信号,当发送端收到NAK信号后,重发错误码组,特点是系统复杂,时延最小。
2.前向纠错方式(FEC)。
发送端经编码发出能纠正错误的码,接收端收到这些码组后,通过解码能发现并纠正误码。
前向纠错方式不需要回馈通道,特别适合只能提供单向通道的场合,特点是时延小,实时性好,但系统复杂。
但随着编码理论和微电子技术的发展,编译码设备成本下降,加之有单向通信和控制电路简单的优点,在实际应用中日益增多。
3.混合纠错检错方式(HEC)。
混合纠错检错方式是前向纠错方式和检错重发方式的结合,发送端发出的码不但有一定的纠错能力,对于超出纠错能力的错误要具有检错能力。
这种方式在实时性和复杂性方面是前向纠错和检错重发方式的折衷,因而在近年来,在数据通信系统中采用较多。
4.回馈校验方式(IRQ)。
回馈校验方式(IRQ)又称回程校验。
收端把收到的数据序列全部由反向信道送回发送端,发送端比较发送数据与回送数据,从而发现是否有错误,并把认为错误的资料重新发送,直到发送端没有发现错误为止。
优点:
不需要纠错、检错的编译器,设备简单。
缺点:
不仅需要反向信道;而且实时性会比较差;在发送端需要一定容量的内存。
(IRQ)方式仅适用于于传输速率较低、数据差错率较低的控制简单的系统中。
2.1.2差错控制编码
通常差错控制技术包括两个主要内容:
差错的检查和差错的纠正。
差错检测通常是通过差错控制编码来实现的,而差错纠正是通过差错控制的方法来实现的。
差错控制是指在数据通信过程中能发现或纠正错误,将差错限制在尽可能小的允许范围内。
差错控制的基本思想是在发送端根据要传输的数据序列,按一定的规律加入多余码元,即附加一些监督码元,这些多余的码元与信息码元之间是以某种确定的规则相互关联的,使原来不相关的数据序列变成相关的,即编码。
传输时将多余码元和信息码元一并传送。
接收端根据信息码元和多余码元(监督码元)之间的规则进行检验,即译码,根据译码结果进行错误检测,一旦传输过程中发生错误,信息码元与监督码元之间的关系将受到破坏,从而发现错误乃至纠正错误。
当发现错误时,或者通过反馈信道要求发送方重发有错的数据,或者由接收端的译码器自动将错误纠正。
多余码元为监督码元,根据信息码元产生监督码元的方法叫差错控制编码。
2.1.3差错控制编码的分类
1.按照差错控制编码的不同功能,可以分为检错码(仅能检测误码)、纠错码(仅可以纠正误码)和纠删码(兼有纠错和检错功能)。
2.按照信息码元和附加的监督码元之间的检验关系可以分为线性码(信息码元和监督码元满足一组线性方程式)和非线性码。
3.按照信息码元和监督码元之间的约束关系可以分为分组码和卷积码。
分组码中,码元序列每n位分成一组,其中k个是信息码元,r=n-k个是监督码元,监督码元仅与本组的信息码元有关。
卷积码中,编码后序列也编为分组,但监督码元不仅与本组信息码元有关,还与前面码组的信息码元有关。
4.按照纠正错误的类型不同,可以分为纠正随机错误的码和纠正突发错误的码。
5.按照构成差错控制编码的数学方法来分类,可以分为代数码、几何码和算术码。
其中代数码建立在近代数学基础上,是目前发展最为完善的编码,其中线性码是代数码的一个最重要的分支。
6.按照每个码元的取值不同,可以分为二进制代码和多进制码。
2.1.4差错控制编码的基本原理
纠错编码:
对原来的信息代码重新编写,根据需要增加一些监督码,使在输出端能够识别出错码。
分组码的结构:
将信息码分组,为每组信息码附加若干监督码的编码称为分组码。
在分组码中,监督码元仅监督本码组中的信息码元。
分组码结构图如图2.1中所示。
图2.1分组码的基本结构
分组码的符号:
(n,k)码中n表示码组的总位数,称为码组长度(码长),k表示码组中信息码元的数目,n-k=r表示码组中的监督码元数目,或称监督位数目。
2.2线性分组码
2.2.1线性分组码基本概念
所谓线性码就是码字集中的元(码字)之间的任意线性组合仍然是合法的码字,即是线性组合运算封闭的码字集。
线性分组码是一类奇偶校验码,它可以由(n,k)形式表示,编码器将一个k比特信息分组(信息矢量)转变为一个更长的由给定元素符号集组成的n比特编码分组,当这个符号集包含两个元素(0和1),与二进制相对,称为二进制编码。
分组码是对每段k位长的信息组,以一定规则增加r=n-k个检验元,组成长为n的序列:
,称这个序列为码字。
在二进制情况下,信息组总共有
个(q进制为
个),因此通过编码器后,相应的码字也有
个,称这
个码字集合为(n,k)分组码。
n长序列的可能排列总共有
种。
称被选取的
个n重为许用码组,其余
个为禁用码组。
对于长度为n的二进制分组码,可以表示成(n,k),通常用于前向纠错。
在分组码中,监督位加到信息位之后,形成新码,在编码中,k个信息位,被编为n位长度,(n-k)个监督码的作用是实现检错和纠错。
2.2.2线性分组码编码原理
线性码是一种分组码,而线性分组码的编码过程可以分为以下两个步骤:
首先,把信息序列按照一定的长度分割成为若干信息码组,每组由k位组成;然后,编码器按照既定的由线性方程组规定的线性规则,将信息码组变换成为n(n>k)重码字,其中r=n-k个附加码元是线性运算产生的。
在编码的过程中,首先将数据每k个比特分为一组,记作m,成为信息组。
然后将长度为k的信息组进行映射运算,即编码。
可以得到一个n比特构成的码字Ci,这样的分组码成为(n,k)码。
分组码的一个重要特性就是它的码元仅与当前编码的信息序列相关,而与过去的信息序列无关,故此也可以说分组编码器是无记忆的。
如果Ci中的n个元素都可以用m中的k个元素的线性组合形成,我们将它称为线性分组码。
线性分组码的编码过程可以描述成一个矢量和一个矩阵的成绩的结果。
即:
(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)码纠错能力内,则运算的结果将为非0值,此时,可以纠错或检错重发。
当编码矩阵与生成矩阵的转置矩阵相乘时,若当其中的一位编码出现了差错,则会有七种情况,则根据这些情况列出错码矩阵如下:
(2-4)
而这些情况正好是和校验子有某种对应关系的,根据这些对应关系可以进行相关编程。
若编程检测到了那一位错误可以根据下式:
A=B+E(2-5)
对接收到的信息进行改正求出正确的编码,从而再提去更正后的接收序列的前四位来提取信息位,以至获得信息矩阵I。
其中A为纠错输出码序列,E为错码矩阵,B为信道输出码。
2.3循环码
2.3.1循环码基本概念
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,除此之外还具有循环性。
循环码的编码和解码设备都不太复杂,且检(纠)错能力强。
它不但可以检测随机的错误,还可以检错突发的错误。
(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码是属于无权码,循环码的编排特点是在相邻的两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同。
由于数码转换的速度回有快有慢,中间会经过一些其它的数码形式,故称此为瞬时错误。
而循环码的优点就是没有瞬时错误,循环码是相邻的两个数码之间仅有一位码元不同的方式,这样满足临接条件,故而循环码不会产生瞬时错误。
循环码的最大特点就是码字的循环性:
循环码中的任一许用码组在经过循环移位之后,所得到的码组依然是许用码组。
形象的说就是若
为一循环码组,则
、
、……还是许用码组。
也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。
2.3.2循环码的多项式表示及生成矩阵
设码长为n的循环码表示为:
(2-6)
其中
为二进制数,通常把码组中各码元当做二进制的系数,即把上式(2-6)中长为n的各个分量看做多项式:
(2-7)
上式的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式[4]。
用生成多项式(2-7)式除
,得到:
(2-8)
上式中
是余式,其表示为:
(2-9)
而
+
是码多项式,由此可得循环码的系统形式的生成矩阵为:
G=
(2-10)
2.3.3循环码编码原理
1.信息码构成信息多项式。
多项式如下:
(2-11)
其中高幂次为k-1;
2.用
乘以信息多项式m(x)。
这一运算实际上是把信息码后附加上(n-k)个“0”。
例如,信息码为110,它相当于
。
当n-k=7-3=4时,
,它相当于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)。
编码输出系统循环码多项式A(x)为:
(2-14)
上述中阐明了循环码编码的整个过程,而根据上面的过程讨论,可以得到(7,4)循环码编码流程图如图2.2所示。
图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)不能被g(x)整除[5]。
因此,可以根据余项是否为零来判断码组中有无错码。
需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。
这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。
在接收端为纠错而采用的译码方法自然比检错要复杂许多。
为了能够纠错要求每个可纠正的错误图样必须和校正子之间存在某种对应关系。
纠错可以按照下述步骤进行:
首先,由接收
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 差错 控制 仿真 概要
![提示](https://static.bdocx.com/images/bang_tan.gif)