为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

差错控制编码解决加性噪声的仿真

2018-09-23 4页 doc 619KB 66阅读

用户头像 个人认证

北溟愚鱼

暂无简介

举报
差错控制编码解决加性噪声的仿真 XXX大学/学院 本科毕业设计(论文) 题 目 差错控制编码解决加性噪声的仿真 学生姓名 专业班级 通信工程05-2班 学 号 院 (系) 计算机与通信工程学院 指导教师 完成时间 2009年6月5日 ...
差错控制编码解决加性噪声的仿真
XXX大学/学院 本科毕业 目 差错控制编码解决加性噪声的仿真 学生姓名 专业班级 通信工程05-2班 学 号 院 (系) 计算机与通信工程学院 指导教师 完成时间 2009年6月5日 郑州轻工业学院 毕业设计(论文)任务书 题目 差错控制编码解决加性噪声的仿真 专业 通信工程 学号 姓名 主要内容、基本要求、主要参考资料等: 主要内容:建立有无加性噪声的信道传输模型,对比有无差错控制编码时的误码率;学习使用通信仿真软件MATLAB。 基本要求:1. 掌握差错控制编码,理解其减小误码的原理。 2.了解加性噪声对通信信号的影响。 3.编写仿真程序并调试。 主要参考资料: [1] 樊昌信.通信原理[M].北京:国防工业出版社,2001 [2] 徐明远,邵玉斌.MATLAB仿真在通信与电子工程中的应用[M].西安:西安电子科技大学出版社,2005 [3] 王新梅.纠错码原理与[M].西安V西安电子科技大学出版社,1991 [4] 张贤达.通信信号处理[M].北京:国防工业出版社,2000 [5] 张明照,刘政波,刘斌等.应用MATLAB实现信号分析和处理[J].北京:科学出版社,2006 完 成 期 限: 2009年6月5日 指导教师签名: 专业负责人签名: 年 月 日 目  录 I中文摘要 II英文摘要 11 绪 论 22 差错控制编码的基本理论 22.1 差错控制方式 22.1.1 检错重发方式(ARQ) 22.1.2 前向纠错方式(FEC) 22.1.3 混合纠错检错方式(HEC) 32.1.4 回馈校验方式(IRQ) 32.2 差错控制编码的分类 32.3 检错和纠错的基本原理 52.4 汉明(Hamming)码 62.5 BCH码 93 Matlab仿真语言 93.1 Matlab语言发展 103.2 Matlab的程序设计 124 差错控制编码解决加性噪声 124.1 无噪声无编码 134.2 无噪声有编码 134.3 有噪声无编码 144.4 有噪声有编码 144.4.1 有噪声有hamming(7,4)码 164.4.2 有噪声有BCH(7,4)编码 164.4.3 有噪声有BCH(15,5)编码 19结束语 20致 谢 21参考文献 22附录.m程序 22程序一. 无噪声,无编码 23程序二. 无噪声,有编码 24程序三. 有噪声,无编码 25程序四. 有噪声,有hamming(7,4)编码 28程序五. 有噪声,有BCH(7,4)编码 31程序六. 有噪声,有BCH(15,5)编码 差错控制编码解决加性噪声的仿真 摘 要 调制信道对信号的影响除乘性干扰外,还有加性干扰(即加性噪声)。加性噪声虽然独立于有用信号,但它却始终存在,干扰有用信号,因而不可避免地对通信造成危害,降低数字通信系统的误码性能。 通信系统必须具备发现(即)差错的能力,并采取措施纠正之,使差错控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。 本文介绍了差错控制编码中的Hamming码和BCH码解决加性噪声的软件仿真,使用了Matlab仿真工具,通过对有无噪声,有无编码,以及使用不同编码等多种情况的仿真,得出误码主要是由加性噪声引起的,差错控制编码可以有效的降低误码率。 关键词 差错控制编码;加性噪声;Matlab;误码率 ERROR CONTROL CODING TO SOLVE THE SIMULATION OF ADDITIVE NOISE ABSTRACT Channel modulation of the signal in addition to the impact of interference, there are additive interference (That is additive noise). Although the additive noise independent of the useful signal, but it has always been there to interfere with a useful signal, which will inevitably cause damage to the communications, and reduce the bit error performance digital communication systems. Communication system must be found (that is detect) the ability of error and measures taken to rectify it, so that error control can be allowed in the framework of as small as possible, and this is the process of error control, main feature of the data link layer. In this paper, error control coding of Hamming codes and BCH codes solve the additive noise of the software simulation, use the Matlab simulation tools, whether through noise, whether the encoding, and encoded using a different range of conditions, such as the simulation, obtained error is mainly caused by the additive noise, and error control coding can effectively reduce the bit error rate. KEY WORDS  error control coding,additive noise,Matlab,bit error 1 绪 论 在实际信道上传输数字信号[1]时,由于信道传输特性不理想及加性噪声[2]的影响,接收端所收到的数字信号不可避免地会发生错误。为了在已知信噪比情况下达到一定的比特误码率指标,首先应该合理设计基带信号,选择调制解调方式,采用时域、频域均衡,使比特误码率尽可能降低。但实际上,在许多通信系统中的比特误码率[3]并不能满足实际的需求。此时则必须采用信道编码[4](即差错控制编码)才能将比特误码率进一步降低,以满足系统指针要求。 随着差错控制编码理论的完善和数字电路技术的飞速发展,信道编码已经成功地应用于各种通信系统中,并且在计算机、磁记录与各种内存中也得到日益广泛的应用。差错控制编码的基本实现方法是在发送端将被传输的信息附上一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联(约束)。接收端按照既定的规则校验信息码元与监督码元之间的关系,一旦传输发生差错,则信息码元与监督码元的关系就受到破坏,从而接收端可以发现错误乃至纠正错误。因此,研究各种编码和译码方法是差错控制编码所要解决的问题。 编码涉及到的内容也比较广泛,前向纠错编码(FEC)、线性分组码(汉明码、循环码)、理德-所罗门码(RS码)、BCH码、FIRE码、交织码,卷积码、TCM编码、Turbo码等都是差错控制编码的研究范畴。本文只对其中的汉明码、BCH码做介绍,并对相关内容进行仿真。 2 差错控制编码的基本理论 2.1 差错控制方式 2.1.1 检错重发方式(ARQ) 采用检错重发方式,发端经编码后发出能够发现错误的码,接收端收到后经检验如果发现传输中有错误,则通过反向信道把这一判断结果回馈给发送端。然后,发送端把信息重发一次,直到接收端确认为止。采用这种差错控制方法需要具备双向信道,一般在计算机数据通信中应用。检错重发方式分为三种类型: (1).停发等待重发,发对或发错,发送端均要等待接收端的回应。特点是系统简单,时延长。 (2).返回重发,无ACK信号,当发送端收到NAK信号后,重发错误码组以后的所有码组,特点是系统较为复杂,时延减小。 (3).选择重发。无ACK信号,当发送端收到NAK信号后,重发错误码组,特点是系统复杂,时延最小。 2.1.2 前向纠错方式(FEC) 发送端经编码发出能纠正错误的码,接收端收到这些码组后,通过解码能发现并纠正误码。前向纠错方式不需要回馈通道,特别适合只能提供单向通道的场合,特点是时延小,实时性好,但系统复杂。但随着编码理论和微电子技术的发展,编译码设备成本下降,加之有单向通信和控制电路简单的优点,在实际应用中日益增多。 2.1.3 混合纠错检错方式(HEC) 混合纠错检错方式是前向纠错方式和检错重发方式的结合,发送端发出的码不但有一定的纠错能力,对于超出纠错能力的错误要具有检错能力。这种方式在实时性和复杂性方面是前向纠错和检错重发方式的折衷,因而在近年来,在数据通信系统中采用较多。 2.1.4 回馈校验方式(IRQ) 回馈校验方式(IRQ)又称回程校验。收端把收到的数据序列全部由反向信道送回发送端,发送端比较发送数据与回送数据,从而发现是否有错误,并把认为错误的资料重新发送,直到发送端没有发现错误为止。 优点:不需要纠错、检错的编译器,设备简单。 缺点:需要反向信道;实时性差;发送端需要一定容量的内存。IRQ方式仅适用于传输速率较低、数据差错率较低的控制简单的系统中。 2.2 差错控制编码的分类 (1).按照差错控制编码[5]的不同功能,可以分为检错码(仅能检测误码)、纠错码(仅可以纠正误码)和纠删码(兼有纠错和检错功能)。 (2).按照信息码元和附加的监督码元之间的检验关系可以分为线性码(信息码元和监督码元满足一组线性方程式)和非线性码。 (3).按照信息码元和监督码元之间的约束关系可以分为分组码和卷积码。分组码中,码元序列每n位分成一组,其中k个是信息码元,r=n-k个是监督码元,监督码元仅与本组的信息码元有关。卷积码中,编码后序列也编为分组,但监督码元不仅与本组信息码元有关,还与前面码组的信息码元有关。 (4).按照纠正错误的类型不同,可以分为纠正随机错误的码和纠正突发错误的码。 (5).按照构成差错控制编码的数学方法来分类,可以分为代数码、几何码和算术码。其中代数码建立在近代数学基础上,是目前发展最为完善的编码,其中线性码是是代数码的一个最重要的分支。 (6).按照每个码元的取值不同,可以分为二进制代码和多进制码。 2.3 检错和纠错的基本原理 香农著名的信道编码定理[6]指出:对于一个给定的有扰信道,若信道容量为C,只要发送端以低于C的速率R发送信息,则一定存在一种编码方法,使编码错误概率P随着码长n的增加,按指数下降到任意小的值,即通过增加冗余编码来降低误码率。 纠错编码[7]的基本思想就是在被传送的信息码元中附加一些监督码元,在两者之间建立某种校验关系,当这种校验关系因传输错误而受到破坏时,可以被发现并予以纠正。这种检错和纠错能力是用信息量的冗余度来换取的。 以一组二进制代码为例: 三位二进制代码元有8个码组,如果用来表示天气的8种情况000(晴),001(雷),010(雹),011(阴),100(风),101(云),110(雨),111(雪),如果有一个误码,接收端以为是另一条信息,这种编码没有检错和纠错能力。 如果这8种码组只用来传送4条信息,即只准使用其中的4种码组000(晴),011(阴),101(云),110(雨),如果有一位误码,不会在接收端产生误判,会检出错误。4个状态只用2位二进制代码就可以表达,所增加的第3位,就称为监督码元。增加1位监督码元,只能检出1位误码,对于上例,如果有2位误码,将发生误判。如将000(晴)误传成101(云),要抗多位误码,就要增加监督码元的个数,即增加冗余度。 码距与检错和纠错能力定义: (1).码重:码组中非零码元的个数。如001,码重为1;011,码重为2。 (2).码距:两个码组中对应码位上具有的不同二进制代码元的个数定义为两个码组的距离(汉明距,简称码距)。如111和000,码距为3;111和100码距为2;111和110码距为1。 (3).最小码距:对于许用的n个码组,各码组之间最小的码距称为最小码距。 对于3位二进制代码,如果8个码组可用,(000,001,010,011,100,101,110,111),各点之间最小相差1个边长,最小码距为1。如果只有4个码组可用,选(010,111,100,001)或(110,011,000,101),各点之间相差2个边长,最小码距为2;如果只有2个码组可用,分别选(111,000)(100,011)(110,001)(101,010),各点之间相差3个边长,最小码距为3。 如上所述,一种编码的最小码距直接关系到这种码的检错和纠错能力,因此最小码距是信道编码的一个重要参数。在一般情况下,对于分组码有如下结论: (1).在一个码组内检测个e误码,要求最小码距 dmin>=e+1 (2).在一个码组内纠正个t误码,要求最小码距 dmin>=2t+1 (3).在一个码组内纠正t个误码,同时检测e个(e>=t)误码(当误码数大于t时就不能纠错,只能检测e个误码),要求最小码距 dmin>=t+e+1 2.4 汉明(Hamming)码 汉明码是1950年由美国贝尔实验室汉明提出来的,是第一个设计用来纠正错误的线性分组码,汉明码被广泛用于数字通信和数据存储系统中。 对于奇偶校验的偶校验,我们用下式作为作为监督方程: (2-1) 在接收端解码时,若S=0,就认为无错;若S=1,就认为有错。这里称S为校正子(校验子),又称伴随式。在上例中,由于只有一位监督码元,一个监督方程,所以只能检错,无法纠错。 汉明码(n,k)是一种可用于纠单个随机错误的循环编码。一般汉明码的参数如下: 码长 n=2^r-1 信息位元 k=2^r-1-r 监督位 r=n-k,r是不小于3的任意正整数。(因为要纠t位错误,dmin大于2t+1) 最小汉明距离 d=3 下表是纠错一位的一般汉明码结构 表1 纠错一位的一般汉明码结构 码子长度n 信息位元k 校验位r 7 4 3 15 11 4 31 26 5 63 57 6 (7,4)汉明码的编码器和译码器: (a)发端编码器 (b)收端译码器 图2-1 (7,4)汉明码的编码器和译码器 该仿真原理图包含两个子系统,分别是(7,4)汉明码的编码器和译码器。仿真时的信号源采用了一个PROM,并由用户自定义数据内容,数据的输出由一个计数器来定时驱动,每隔一秒输出一个4位数据(PROM的8位仅用了其中4位),由编码器子系统编码转换后成为7位汉明码,经过并串转换后传输,其中的并串、串并转换电路使用了扩展通信库2中的时分复用合路器和分路器图符,该合路器和分路器最大为16位长度的时隙转换,这里定义为7位时隙。此时由于输入输出数据的系统数据率不同,因此必须在子系统的输入端重新设置系统采样率,将系统设置为多速率系统。因为原始4位数据的刷新率为1Hz,因此编码器的输入端可设置重采样率位10Hz,时分复用合路器和分路器的数据帧周期设为1秒,时隙数字7,则输出采样率为输入采样率的7倍,即70Hz。如果要加入噪声,则噪声信号源的采样率也应设为70Hz。 2.5 BCH码 BCH码是循环码的一个重要子类,它具有纠多个错误的能力,BCH码有严密的代数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的关系,人们可以根据所要求的纠错能力t很容易构造出BCH码,它们的译码器也容易实现,是线性分组码中应用最普遍的一类码。 BCH码的生成多项式 若循环码的生成多项式具有如下形式: (2-2) 这里t为纠错个数, 为最小多项式,LCM表示取最小公倍式,则由此生成的循环码称之为BCH码。该码是以三个发现者博斯(Bose)、查德胡里(Chaudhuri)和霍昆格姆(Hocquenghem)名字的开头字母命名的。其最小码距dmin≥2t+1,能纠t个错误。BCH的码长为n= 或 的因子。码长为n= 的BCH码称为本原BCH码。码长为 因子的BCH码称为非本原BCH码。对于纠t个错误的本原BCH码,其生成多项式为 (2-3) 纠正单个错误的本原BCH码就是循环汉明码。 下面介绍几种常见的BCH码: (1).戈雷码(Golay) (23,12)码是一个特殊的非本原BCH码,称为戈雷码,它的最小码距7,能纠正3个错误,其生成多项式为 (2-4) 这也是目前为止发现的唯一能纠正多个错误的完备码。 (2).扩展形式 实际应用中,为了得到偶数码长,并增加检错能力,可以在BCH码的生成多项式中乘D+1,从而得到(n+1,k+1)扩展BCH码。扩展BCH码相当于将原有BCH码再加上一位的偶校验,它不再有循环性。 (3).缩短形式 几乎所以的循环码都存在它另一种缩短形式 。实际应用中,可能需要不同的码长不是 或它的因子,我们可以从 码中挑出前s位为0的码组构成新的码,这种码的监督位数不变,因此纠错能力保持不变,但是没有了循环性。 BCH译码:BCH码的译码方法可以有时域译码和频域译码两类。频移译码是把每个码组看成一个数字信号,把接受到的信号进行离散傅氏变换(DFT),然后利用数字信号处理技术在“频域”内译码,最后进行傅氏反变换得到译码后的码组。时域译码则是在时域直接利用码的代数结构进行译码。BCH的时域译码方法有很多,常见的时域BCH译码方法有彼得森译码、迭代译码等。BCH的彼得森解码基本过程为:(1)用的各因式作为除式,对接收到的码多项式求余,得到t个余式,称为“部分校验式”;(2)用t个部分校验式构造一个特定的译码多项式,它以错误位置数为根;(3)求译码多项式的根,得到错误位置;(4)纠正错误。 事实上,BCH码是一种特殊的循环码,因此它的编码器不但可以象其它循环码那样用除法器来实现,而且原则上所有适合循环码解码的方法也可以用于BCH码的解码。 3 Matlab仿真语言 3.1 Matlab语言发展 MATLAB[8]语言的首创者Cleve Moler教授在数值分析,特别是在数值线性代数的领域中很有影响,他参与编写了数值分析领域一些著名的著作和两个重要的Fortran程序EISPACK和LINPACK[9]。他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980年前后,当时的新墨西哥大学计算机系主任Moler教授在讲授线性代数课程时,发现了用其它高级语言编程极为不便,便构思并开发了MATLAB(MATrix LABoratory,即矩阵实验室),这一软件利用了当时数值线性代数领域最高水平的EISPACK和LINPACK两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。 所谓交互式语言,是指人们给出一条命令,立即就可以得出该命令的结果。该语言无需像C和Fortran语言那样,首先要求使用者去编写源程序,然后对之进行编译、连接,最终形成可执行档,这无疑会给使用者带来了极大的方便。早期的MATLAB是用 Fortran语言编写的,只能作矩阵运算;绘图也只能用极其原始的方法,即用星号描点的形式画图;内部函数也只提供了几十个。但即使其当时的功能十分简单,当它作为免费软件出现以来,还是吸引了大批的使用者。Cleve Moler和John Little等人成立了一个名叫The MathWorks的公司,Cleve Moler一直任该公司的首席科学家。该公司于1984年推出了第一个MATLAB的商业版本。当时的MATLAB版本已经用C语言作了完全的改写,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其它流行软件的接口功能,使得MATLAB的功能越来越强大。 The MathWorks[10]公司于1992年推出了具有划时代意义的MATLAB4.0版本,并于1993年推出了其微机版, 可以配合Microsoft Windows一起使用,使之应用范围越来越广。1994年推出的4.2版本扩充了4.0版本的功能,尤其在图形接口设计方面更提供了新的方法。1997年推出的MATLAB 5.0版允许了更多的数据结构,如单元数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年初推出的MATLAB 5.3版在很多方面又进一步改进了MATLAB语言的功能。2000年10月底推出了其全新的 MATLAB6.0正式版(Release 12),在核心数值算法、接口设计、外部接口、应用桌面等诸多方面有了极大的改进。虽然MATLAB语言是计算数学专家倡导并开发的,但其普及和发展离不开自动控制领域学者的贡献。甚至可以说,MATLAB语言是自动控制领域学者和工程技术人员捧红的,因为在MATLAB语言的发展进程中,许多有代表性的成就和控制界的要求与贡献是分不开的。迄今为止,大多数工具箱也都是控制方面的。 MATLAB具有强大的数学运算能力、方便实用的绘图功能及语言的高度集成性,它在其它科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。子曰:“工欲善其事,必先利其器”。如果有一种十分有效的工具能解决在教学与研究中遇到的问题,那么MATLAB语言正是这样的一种工具。它可以将使用者从繁琐、无谓的底层编程中解放出来,MATLAB已经成为国际上最流行的科学与工程计算的软件工具,现在的MATLAB已经不仅仅是一个“矩阵实验室”了,它已经成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。MATLAB语言的功能也越来越强大,不断适应新的要求提出新的解决方法。可以预见,在科学运算、自动控制与科学绘图领域MATLAB 语言将长期保持其独一无二的地位。 3.2 Matlab的程序设计 3.2.1 .M文件简介 Matlab除了如前所述的在命令窗口进行的直接交互的指令操作方式外,另外一种更为重要的工作方式就是m档的编程工作方式[12]。M档有两种形式,一种是脚本档(Script File),另一种是函数文件(Function File)。m文件的扩展名为\.m"。m档可以通过任何纯文本编辑器进行编辑,Matlab 中也有自带的文本编辑器,使用edit 命令即可开启。 3.2.2 程控流语句 任何计算机语言,只要存在顺序结构,循环结构以及分支结构,就可以完成任何程序功能。在Matlab中也有这三种基本的程序结构。但是,值得注意的是,由于Matlab语言矩阵计算功能十分强大,常常仅仅使用顺序结构藉以矩阵的逻辑运算就可以完成计算任务,由于循环结构和分支结构在Matlab语言中的运行速度相对较慢,所以在算法优化的编程中应当尽可能避免使用,而代之以矩阵运算,从而提高程序运行速度(通常可以提高数十倍到百倍),简化程序代码,而使得程序代码更加接近于数学上的表达。当然,矩阵编程的编程方法需要读者更多的关于线性代数和矩阵数学的知识和思维方式。总之,Matlab是一种非常完美易用的超高级矩阵编程语言[13]。这里只介绍本次编程中用到的编程结构。 (1).顺序结构 在顺序结构中,Matlab 语句是按照书写的前后顺序来执行的。这是Matlab最常用的程序结构,也是执行效率最高的程序结构。 (2).循环结构for for...end语句适合于循环次数确定的情况,将循环变量的初值,判别和变化放在循环开头。利用help for或doc for可以获得关于该语句的使用手册。for...end语句的调用形式是: 1 for v=表达式 2 语句1; 3 .... 4 语句n; 5 end (3). 条件分支结构if if 分支结构的一般形式是: if 表达式 语句段1; else 语句段 End 4 差错控制编码解决加性噪声 差错控制编码的基本实现方法[14]是在发送端将被传输的信息附上一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联(约束)。接收端按照既定的规则校验信息码元与监督码元[15]之间的关系,一旦传输发生差错,则信息码元与监督码元的关系就受到破坏,从而接收端可以发现错误乃至纠正错误[16]。下面我将分四种情况对差错控制编码解决加性噪声的问题进行研究和讨论。 4.1 无噪声无编码 在无噪声无编码情况下,应该是没有误码出现的,下面运行程序一验证结果是否正确。(程序见附录) 程序一设计思路:首先产生一信息序列,将信息序列改为波形singl,画出singl的波形,然后对singl进行采样、判决,最后将判决结果result(序列)改为波形out,并画出out波形,计算误码率。 运行程序一得到的结果和波形如下图所示: 图4-1 无噪声无编码时的仿真 由程序的运行结果和波形可知:在无噪声无编码情况下,发送信号1010110010,接收到的信号也是1010110010,没有误码出现。errorrate =0.00,误码率为0。 4.2 无噪声有编码 由4.1可知,在无噪声无编码情况下,没有误码出现,所以在无噪声有编码情况下,就更不应该有误码了。下面运行程序二看结果是否正确。 程序二设计思路:首先产生一信息序列,将信息序列改为波形singl,画出singl的波形,然后对信息序列进行编码,将编码结果改为波形codesingl,画出codesingl的波形,对codesingl进行采样、判决,最后将判决结果进行译码,将译码结果改为波形out,并画出out波形,计算误码率。 运行程序二得到的结果和波形: 图4-2 无噪声有编码时的仿真 由程序的运行结果和波形:在无噪声有编码情况下,发送信号1010110010,接收到的信号也是1010110010,没有误码出现。errorrate=0.00,误码率为0。 4.3 有噪声无编码 我们知道,误码是由噪声产生的。那么在有噪声情况下,就应该有误码出现。下面运行程序三看结果是不是正确。 程序三设计思路:首先产生一信息序列,将信息序列改为波形singl,画出singl的波形,然后把噪声加入信号当中,画出加入噪声后的信号波形noisesingl,再对noisesingl进行采样、判决,将判决结果改为输出波形,计算误码率,对比没有加入噪声时的误码率并得出结论。 运行程序三得到的结果和波形: 图4-3 有噪声无编码时的仿真 噪声幅度为0.3,errorrate =0.07。由程序的运行结果和波形,我们看出:在有噪声,无编码情况下,发送信号0101011111,接收到的信号是1111011111,有误码出现。由4.1和4.3说明误码是由噪声引起的。 4.4 有噪声有编码 4.4.1 有噪声有hamming(7,4)码 有噪声时,就有可能会引起误码产生,而hamming(7,4)编码在理论上应该可以很好的降低误码率,下面我们就通过运行程序四来验证是不是这样。 程序四设计思路:首先产生一信息序列,将信息序列改为波形singl,画出singl的波形,把噪声加入信号当中,画出加入噪声后的信号波形noisesingl,然后加入“7,4汉明”编码,画出噪声幅度为0.3、有“7,4汉明”编码时的输出波形,并计算误码率。 图4-4 噪声幅度为0.3时有无hamming码的仿真 由程序的运行结果和波形知:在有噪声无编码情况下,发送信号0110011110,接收到的信号是0110101010,有误码出现;在有噪声有hamming(7,4)编码情况下,发送信号0110011110,接收到的信号是0110011010,误码减少。这就说明hamming(7,4)编码可以有效降低误码率。 下面我们增加噪声幅度到0.6,看程序的运行结果和波形: 图4-5 噪声幅度为0.6时有无hamming码的仿真 没有编码情况下的误码率:errorrate =0.20,有hamming(7,4)编码情况下的误码率:errorrate1 =0.15。由程序的运行结果和波形:当噪声幅度增加到一定程度时,hamming(7,4)编码并不能很好的解决误码问题。hamming(7,4)编码是一个可以纠正单个随机错误的编码,当噪声幅度增加到一定程度时,随着误码数的增加,hamming(7,4)编码就不太适用了,那么当噪声幅度增加时,我们该使用什么样的编码呢? 4.4.2 有噪声有BCH(7,4)编码 当BCH也采用(7,4)编码时,它的功能应该和hamming(7,4)编码差不多,因为它们都是只能纠正单个随机错误的编码。程序五、六的设计思路与程序四十分相似,只需要将hamming码换成BCH码,并作一些适当的修改就可以了。 运行程序五得到的结果和波形: 图4-6 噪声幅度为0.3时有无bch(7,4)码的仿真 噪声幅度为0.3,没有编码情况下的误码率:errorrate =0.07,有BCH(7,4)编码情况下的误码率:errorrate1 =0.03。 由程序的运行结果和波形可得:BCH(7,4)编码,它的功能和hamming(7,4)编码差不多。 4.4.3 有噪声有BCH(15,5)编码 我们知道BCH(15,5)编码是可以纠正3个随机错误的编码,那么它能不能更好的降低误码率呢?运行程序六得到的结果和波形: 图4-7 噪声幅度为0.3时有无bch(15,5)码的仿真 噪声幅度为0.3,没有编码情况下的误码率:errorrate =0.10,有BCH(15,5)编码情况下的误码率:errorrate1 =0.02。 由程序的运行结果和波形得:在有噪声,无编码情况下,发送信号1010011101,接收到的信号是1110010101,有误码出现;在有噪声,有BCH(15,5)编码情况下,发送信号1010011101,接收到的信号是1010010101,误码减少。这就说明BCH(15,5)编码可以有效降低误码率。 下面我们增加噪声幅度到0.6,看程序的运行结果和波形: 图4-8 噪声幅度为0.6时有无bch(15,5)码的仿真 没有编码情况下的误码率:errorrate =0.21;有BCH(15,5)编码情况下的误码率:errorrate1 =0.04。 由程序的运行结果和波形,我们看出:尽管在噪声幅度为0.6时,经过BCH(15,5)编码情况下的输出仍然有0.04的误码率,但和hamming(7,4)编码相比,它更好的降低了误码率。当然它是以增加冗余度为代价换来的。所以我们要在不同的情况下,选择不同的编码方式,才能最好的实现数据传输。 结论:通过对有无噪声,有无编码4种情况的仿真,可以看出误码主要是由噪声引起的,而使用差错控制编码可以有效的降低误码率[17]。下面是对不同噪声强度情况下的误码率仿真统计: 表2 不同噪声幅度下有无编码时的误码率 噪声幅度 无编码 有Hamming编码 有BCH编码 (7,4) (15,5) 0.1 0.03 0.02 0.02 0.01 0.2 0.06 0.03 0.03 0.01 0.3 0.10 0.04 0.10 0.02 0.4 0.15 0.06 0.04 0.02 0.5 0.15 0.14 0.12 0.06 0.6 0.22 0.14 0.11 0.10 0.7 0.21 0.28 0.29 0.16 0.8 0.27 0.33 0.33 0.24 0.9 0.29 0.30 0.27 0.27 1 0.34 0.40 0.35 0.30 数据来源: MATLAB仿真在通信与电子工程中的应用 由上表可以看出在噪声强度比较低时,差错控制编码可以很明显的降低误码率,但是在噪声强度比较高时,只靠单纯的差错控制编码不能很好的解决问题,此时就应该采取一些其它的措施,例如合理地选择调制制度,调制方法,以及提高发送功率等措施。当Hamming码和BCH码都使用(7,4)编码时,它们的纠错能力差不多,因为它们都只能纠正单个的随机错误,而当BCH码使用(15,5)编码时,由于它可以纠正3个随机错误,所以大大提高了编码效率,不过是以增加冗余度为代价的。 结束语 通过半个学期的努力,终于在6月初完成了毕业设计,在做毕业设计期间得到了来自老师和同学的大力帮助,这使我深深的体会到团结协助的力量.通过做毕业设计,锻炼了我独自完成一件事的能力,提高了自我约束力,为走上工作岗位起到了桥梁作用。 由于自己对Matlab编程不熟悉,这给我的毕业设计带来了很大的麻烦,不过最后还是在老师和同学的帮忙下,让我找到了对Matlab编程的一些思路。“差错控制编码解决加性噪声”对于老师来说可能是一个老题目,但对我来说还是很新鲜,尽管以前学过差错控制编码的原理知识,但用仿真的方法对差错控制编码进行校验还是第一次,这不仅加深了我最对差错控制编码理论的认识和理解,也使我懂得了如何对一个理论进行自己的研究或验证。 致 谢 经历了一个学期的毕业设计,在这段时间里,它不仅仅使我学到了宝贵的专业知识,更重要的是它使我学到了怎样去独立思考问题,解决问题,大大提高了我自己的动手能力和操作能力,为我今后的工作奠定坚实的基础。 本文从选题的确定,论文的写作、修改到最后定稿得到了我的指导老师 的悉心指导。特别是她多次询问写作进程,并为我指点迷津,帮助我开拓思路,精心点拨,热忱鼓励。她严肃的教学态度,严谨的治学精神,精益求精的工作作风深深地感染和激励着我。在此,谨向 老师致以诚挚的谢意和崇高的敬意。 感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者,谢谢! 在这次编写设计报告中,由于时间的紧促和编写者的专业知识的有限,再加上我们缺少实践经验,对使得所写的毕业论文的知识覆盖面有很大的局限性,而且报告中难免有很多不妥之处,所以我恳请各位指导老师能够给予批评指正。 参考文献 [1]樊昌信. 通信原理[M]. 北京:国防工业出版社,2001,1-100 [2]张贤达,通信信号处理[M]. 北京:国防工业出版社,2000,5-200 [3]李斯伟,雷新生. 数据通信技术[M]. 北京:人民邮电出版社,2004,100-150 [4]曹志刚,钱亚生. 现代通信原理[M]. 北京:清华大学出版社,1992,1-200 [5]乐光新. 数据通信原理[M]. 北京:人民邮电出版社,1988,80-130 [6]郭梯云. 数据传输[M]. 北京:人民邮电出版社,1998,50-70 [7]张辉,曹丽娜. 现代通信原理与技术[M]. 西安:西安电子科技大学出版社,1999,40-100 [8]王新梅. 纠错码-原理与方法[M]. 西安:西安电子科技大学出版社,1991,1-100 [9]徐明远,邵玉斌. MATLAB仿真在通信与电子工程中的应用[M],西安:西安电子科技大学出版社, 2005,1-140 [10]邓华等. MATLAB通信仿真及应用实例详解[J]. 北京:人民邮电出版社,2003,1-100 [11]朱衡君,肖燕彩,邱成. MATLAB语言及实践教程[J]. 北京:北京交通大学出版社,2005,100-150 [12]张明照,刘政波,刘斌等. 应用MATLAB实现信号分析和处理[J]. 北京:科学出版社,2006,50-79 [13]M. K. Simon and C. C. Wang. Differential detection of Gaussian MSK mobile radio environment[J]. IEEE Trans. Veh. Techno, 1984, 307-320. [14]Giulio Colavolpe, Gianhuigi Ferrari, Riccardo Raheli. Noncoherent iterative (Turbo) decoding[J]. IEEE Trans, Commun, 2000, 148-168. [15]李霞. 电子与通信专业英语[M]. 电子工业出版社,2005,30-48 [16]常义林. 通信工程专业英语[M]. 西安:西安电子科技大学出版社,2004,20-50 [17]H. Mathis. Differential detection of GMSK signals with low BT using the SOVA[J]. IEEE. Commun, 1998, 128-150. 附录.m程序 程序一. 无噪声,无编码 infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end subplot(2,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); for n=1:100 %对singl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=singl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end for n=1:100 %将判决结果result(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=result(n); end end subplot(2,1,2);plot(0:0.01:9.99,out),title('输出信号'),xlabel('时间') %画出的out波形 axis([0 1 -1 2]); error=infor-result; %计算误码率 error=abs(error); errorrate=sum(error)/100 程序二. 无噪声,有编码 infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); x=encode(infor,7,4,'hamming');x=x' %对infor进行“7,4汉明”编码 for n=1:175 %将编码结果x(序列)改为波形codesingl for m=1:10 i=(n-1)*10+m; codesingl(i)=x(n); end end subplot(3,1,2);plot(0:0.01:17.49,codesingl),title('汉明码波形') %画出codesingl的波形 for n=1:175 %对codesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=codesingl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end y=decode(result,7,4,'hamming');y=y' %将判决结果result(序列)进行译码 for n=1:100 %将解码结果y(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=y(n); end end subplot(3,1,3);plot(0:0.01:9.99,out),title('输出信号 '),xlabel('时间') %画出的out波形 axis([0 1 -1 2]); error=infor-y; %计算误码率 error=abs(error); errorrate=sum(error)/100 程序三. 有噪声,无编码 infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); noise=randn(1,1000)*0.3 %产生噪声noise,幅度为0.3 noisesingl=singl+noise; %将噪声加入信号 subplot(3,1,2);plot(0:0.01:9.99,noisesingl),title('加入噪声的输出信号') %画出noisesingl的波形 axis([0 1 -1 2]); for n=1:100 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=noisesingl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end for n=1:100 %将判决结果result(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=result(n); end end subplot(3,1,3);plot(0:0.01:9.99,out),title('输出信号'),xlabel('时间') %画出的out波形 axis([0 1 -1 2]); error=infor-result; %计算误码率 error=abs(error); errorrate=sum(error)/100 程序四. 有噪声,有hamming(7,4)编码 clear infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end figure(1);subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); noise=randn(1,1000)*0.3 %产生噪声noise,幅度为0.3 noisesingl=singl+noise; %将噪声加入信号 figure(2);subplot(3,1,1);plot(0:0.01:9.99,noisesingl),title('加入噪声的输出信号') %画出noisesingl的波形 axis([0 1 -1 2]); for n=1:100 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=noisesingl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end for n=1:100 %将判决结果result(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=result(n); end end figure(1);subplot(3,1,2);plot(0:0.01:9.99,out),title('没有编码的输出信号'); %画出的out波形 axis([0 1 -1 2]); error=infor-result; %计算误码率 error=abs(error); %加入“7,4汉明”编码后的情况 x=encode(infor,7,4,'hamming');x=x' %对infor进行“7,4汉明”编码 for n=1:175 %将编码结果x(序列)改为波形codesingl for m=1:10 i=(n-1)*10+m; codesingl(i)=x(n); end end figure(2);subplot(3,1,2);plot(0:0.01:17.49,codesingl),title('汉明码波形') %画出codesingl的波形 axis([0 1 -1 2]); noise1=randn(1,1750)*0.3 %产生噪声noise,幅度为0.3 noisesingl1=codesingl+noise1; %将噪声加入信号 figure(2);subplot(3,1,3);plot(0:0.01:17.49,noisesingl1),title('有噪声的汉明码波形'),xlabel('时间'); %画出noisesingl1的波形 for n=1:175 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result1(n)=noisesingl1(i); if result1(n)>0.5 result1(n)=1; else result1(n)=0 end end end y=decode(result1,7,4,'hamming');y=y' %将判决结果result(序列)进行译码 for n=1:100 %将解码结果y(序列)改为波形out1 for m=1:10 i=(n-1)*10+m; out1(i)=y(n); end end figure(1);subplot(3,1,3);plot(0:0.01:9.99,out1),title('有hamming码的输出信号'),xlabel('时间') ; %画出的out1波形 axis([0 1 -1 2]) ; error1=infor-y; %计算误码率 error1=abs(error1); errorrate=sum(error)/100 %有噪声,无编码的误码率 errorrate1=sum(error1)/100 %有噪声,有hamming(7,4)编码的误码率 程序五. 有噪声,有BCH(7,4)编码 clear infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end figure(1);subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); noise=randn(1,1000)*0.3 %产生噪声noise,幅度为0.3 noisesingl=singl+noise; %将噪声加入信号 figure(2);subplot(3,1,1);plot(0:0.01:9.99,noisesingl),title('加入噪声的输出信号') %画出noisesingl的波形 axis([0 1 -1 2]); for n=1:100 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=noisesingl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end for n=1:100 %将判决结果result(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=result(n); end end figure(1);subplot(3,1,2);plot(0:0.01:9.99,out),title('没有编码的输出信号'); %画出的out波形 axis([0 1 -1 2]); error=infor-result; %计算误码率 error=abs(error); %加入(7,4)BCH编码后的情况 x=encode(infor,7,4,'bch');x=x' %对infor进行(7,4)BCH编码 for n=1:175 %将编码结果x(序列)改为波形codesingl for m=1:10 i=(n-1)*10+m; codesingl(i)=x(n); end end figure(2);subplot(3,1,2);plot(0:0.01:17.49,codesingl),title('bch波形') %画出codesingl的波形 axis([0 1 -1 2]); noise1=randn(1,1750)*0.3 %产生噪声noise,幅度为0.3 noisesingl1=codesingl+noise1; %将噪声加入信号 figure(2);subplot(3,1,3);plot(0:0.01:17.49,noisesingl1),title('有噪声的bch波形'),xlabel('时间') %画出noisesingl1的波形 for n=1:175 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result1(n)=noisesingl1(i); if result1(n)>0.5 result1(n)=1; else result1(n)=0 end end end y=decode(result1,7,4,'bch');y=y' %将判决结果result(序列)进行译码 for n=1:100 %将解码结果y(序列)改为波形out1 for m=1:10 i=(n-1)*10+m; out1(i)=y(n); end end figure(1);subplot(3,1,3);plot(0:0.01:9.99,out1),title('有bch(7,4)码的输出信号'),xlabel('时间') %画出的out1波形 axis([0 1 -1 2]); error1=infor-y; %计算误码率 error1=abs(error1); errorrate=sum(error)/100 %有噪声,无编码的误码率 errorrate1=sum(error1)/100 %有噪声,有bch(7,4)编码的误码率 程序六. 有噪声,有BCH(15,5)编码 clear infor=randsrc(1,100,[0,1]); %产生信息infor(序列) for n=1:100 %将infor改为波形singl for m=1:10 i=(n-1)*10+m; singl(i)=infor(n); end end figure(1);subplot(3,1,1);plot(0:0.01:9.99,singl),title('输入信号') %画出singl的波形 axis([0 1 -1 2]); noise=randn(1,1000)*0.3 %产生噪声noise,幅度为0.3 noisesingl=singl+noise; %将噪声加入信号 figure(2);subplot(3,1,1);plot(0:0.01:9.99,noisesingl),title('加入噪声的输出信号') %画出noisesingl的波形 axis([0 1 -1 2]); for n=1:100 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result(n)=noisesingl(i); if result(n)>0.5 result(n)=1; else result(n)=0 end end end for n=1:100 %将判决结果result(序列)改为波形out for m=1:10 i=(n-1)*10+m; out(i)=result(n); end end figure(1);subplot(3,1,2);plot(0:0.01:9.99,out),title('没有编码的输出信号'); %画出的out波形 axis([0 1 -1 2]); error=infor-result; %计算误码率 error=abs(error); %加入(15,5)BCH编码后的情况 x=encode(infor,15,5,'bch');x=x ' %对infor进行(15,5)BCH编码 for n=1:300 %将编码结果x(序列)改为波形codesingl for m=1:10 i=(n-1)*10+m; codesingl(i)=x(n); end end figure(2);subplot(3,1,2);plot(0:0.01:29.99,codesingl),title('bch波形') %画出codesingl的波形 axis([0 1 -1 2]); noise1=randn(1,3000)*0.3 %产生噪声noise,幅度为0.3 noisesingl1=codesingl+noise1; %将噪声加入信号 figure(2);subplot(3,1,3);plot(0:0.01:29.99,noisesingl1),title('有噪声的bch波形'),xlabel('时间') %画出noisesingl1的波形 for n=1:300 %对noisesingl进行采样,判决(门限为0.5) for m=1:10 i=(n-1)*10+m; result1(n)=noisesingl1(i); if result1(n)>0.5 result1(n)=1; else result1(n)=0 end end end y=decode(result1,15,5,'bch');y=y' %将判决结果result(序列)进行译码 for n=1:100 %将解码结果y(序列)改为波形out1 for m=1:10 i=(n-1)*10+m; out1(i)=y(n); end end figure(1);subplot(3,1,3);plot(0:0.01:9.99,out1),title('有bch(15,5)码的输出信号'),xlabel('时间') %画出的out1波形 axis([0 1 -1 2]); error1=infor-y; %计算误码率 error1=abs(error1); errorrate=sum(error)/100 %有噪声,无编码的误码率 errorrate1=sum(error1)/100 %有噪声,有bch(15,5)编码的误码率 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈 芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈 PAGE _1305294009.unknown _1305294237.unknown _1305294421.unknown _1305294501.unknown _1305294342.unknown _1305294076.unknown _1305293556.unknown _1305293733.unknown _1305293350.unknown
/
本文档为【差错控制编码解决加性噪声的仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索