毕业设计(论文)-差错控制编码解决加性噪声的仿真.doc_第1页
毕业设计(论文)-差错控制编码解决加性噪声的仿真.doc_第2页
毕业设计(论文)-差错控制编码解决加性噪声的仿真.doc_第3页
毕业设计(论文)-差错控制编码解决加性噪声的仿真.doc_第4页
毕业设计(论文)-差错控制编码解决加性噪声的仿真.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 1 绪 论 1 2 差错控制编码的基本理论 2 2 1 差错控制方式 2 2 1 1 检错重发方式 ARQ 2 2 1 2 前向纠错方式 FEC 2 2 1 3 混合纠错检错方式 HEC 2 2 1 4 回馈校验方式 IRQ 3 2 2 差错控制编码的分类 3 2 3 检错和纠错的基本原理 3 2 4 汉明 HAMMING 码 5 2 5 BCH 码 6 3 MATLAB 仿真语言 9 3 1 MATLAB语言发展 9 3 2 MATLAB的程序设计 10 4 差错控制编码解决加性噪声 12 4 1 无噪声无编码 12 4 2 无噪声有编码 13 4 3 有噪声无编码 13 4 4 有噪声有编码 14 4 4 1 有噪声有 hamming 7 4 码 14 4 4 2 有噪声有 BCH 7 4 编码 16 4 4 3 有噪声有 BCH 15 5 编码 16 结束语 19 致 谢 20 参考文献 21 附录 M 程序 22 程序一 无噪声 无编码 22 程序二 无噪声 有编码 23 程序三 有噪声 无编码 24 程序四 有噪声 有HAMMING 7 4 编码 25 程序五 有噪声 有 BCH 7 4 编码 28 程序六 有噪声 有 BCH 15 5 编码 31 差错控制编码解决加性噪声的仿真 I 差错控制编码解决加性噪声的仿真 摘 要 调制信道对信号的影响除乘性干扰外 还有加性干扰 即加性噪声 加性噪声 虽然独立于有用信号 但它却始终存在 干扰有用信号 因而不可避免地对通信造成 危害 降低数字通信系统的误码性能 通信系统必须具备发现 即检测 差错的能力 并采取措施纠正之 使差错控制在 所能允许的尽可能小的范围内 这就是差错控制过程 也是数据链路层的主要功能之 一 本文介绍了差错控制编码中的Hamming码和BCH码解决加性噪声的软件仿真 使 用了Matlab仿真工具 通过对有无噪声 有无编码 以及使用不同编码等多种情况的 仿真 得出误码主要是由加性噪声引起的 差错控制编码可以有效的降低误码率 关键词 差错控制编码 加性噪声 Matlab 误码率 差错控制编码解决加性噪声的仿真 II 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 绪 论 在实际信道上传输数字信号 1 时 由于信道传输特性不理想及加性噪声 2 的影响 接收端所收到的数字信号不可避免地会发生错误 为了在已知信噪比情况下达到一 定的比特误码率指标 首先应该合理设计基带信号 选择调制解调方式 采用时域 频域均衡 使比特误码率尽可能降低 但实际上 在许多通信系统中的比特误码率 3 并 不能满足实际的需求 此时则必须采用信道编码 4 即差错控制编码 才能将比特 误码率进一步降低 以满足系统指针要求 随着差错控制编码理论的完善和数字电路技术的飞速发展 信道编码已经成功 地应用于各种通信系统中 并且在计算机 磁记录与各种内存中也得到日益广泛的 应用 差错控制编码的基本实现方法是在发送端将被传输的信息附上一些监督码元 这些多余的码元与信息码元之间以某种确定的规则相互关联 约束 接收端按照 既定的规则校验信息码元与监督码元之间的关系 一旦传输发生差错 则信息码元 与监督码元的关系就受到破坏 从而接收端可以发现错误乃至纠正错误 因此 研 究各种编码和译码方法是差错控制编码所要解决的问题 编码涉及到的内容也比较广泛 前向纠错编码 FEC 线性分组码 汉明码 循环码 理德 所罗门码 RS码 BCH码 FIRE码 交织码 卷积码 TCM 编码 Turbo码等都是差错控制编码的研究范畴 本文只对其中的汉明码 BCH码做 介绍 并对相关内容进行仿真 差错控制编码解决加性噪声的仿真 2 2 差错控制编码的基本理论 2 1 差错控制方式 2 1 1 检错重发方式 ARQ 采用检错重发方式 发端经编码后发出能够发现错误的码 接收端收到后经检 验如果发现传输中有错误 则通过反向信道把这一判断结果回馈给发送端 然后 发送端把信息重发一次 直到接收端确认为止 采用这种差错控制方法需要具备双 向信道 一般在计算机数据通信中应用 检错重发方式分为三种类型 1 停发等待重发 发对或发错 发送端均要等待接收端的回应 特点是系统 简单 时延长 2 返回重发 无ACK信号 当发送端收到NAK信号后 重发错误码组以后的所 有码组 特点是系统较为复杂 时延减小 3 选择重发 无ACK信号 当发送端收到NAK信号后 重发错误码组 特点是 系统复杂 时延最小 2 1 2 前向纠错方式 FEC 发送端经编码发出能纠正错误的码 接收端收到这些码组后 通过解码能发现 并纠正误码 前向纠错方式不需要回馈通道 特别适合只能提供单向通道的场合 特点是时延小 实时性好 但系统复杂 但随着编码理论和微电子技术的发展 编 译码设备成本下降 加之有单向通信和控制电路简单的优点 在实际应用中日益增 多 2 1 3 混合纠错检错方式 HEC 混合纠错检错方式是前向纠错方式和检错重发方式的结合 发送端发出的码不 但有一定的纠错能力 对于超出纠错能力的错误要具有检错能力 这种方式在实时 性和复杂性方面是前向纠错和检错重发方式的折衷 因而在近年来 在数据通信系 差错控制编码解决加性噪声的仿真 3 统中采用较多 2 1 4 回馈校验方式 IRQ 回馈校验方式 IRQ 又称回程校验 收端把收到的数据序列全部由反向信道 送回发送端 发送端比较发送数据与回送数据 从而发现是否有错误 并把认为错 误的资料重新发送 直到发送端没有发现错误为止 优点 不需要纠错 检错的编译器 设备简单 缺点 需要反向信道 实时性差 发送端需要一定容量的内存 IRQ方式仅适用 于传输速率较低 数据差错率较低的控制简单的系统中 2 2 差错控制编码的分类 1 按照差错控制编码 5 的不同功能 可以分为检错码 仅能检测误码 纠 错码 仅可以纠正误码 和纠删码 兼有纠错和检错功能 2 按照信息码元和附加的监督码元之间的检验关系可以分为线性码 信息码 元和监督码元满足一组线性方程式 和非线性码 3 按照信息码元和监督码元之间的约束关系可以分为分组码和卷积码 分组 码中 码元序列每n位分成一组 其中k个是信息码元 r n k个是监督码元 监督码 元仅与本组的信息码元有关 卷积码中 编码后序列也编为分组 但监督码元不仅 与本组信息码元有关 还与前面码组的信息码元有关 4 按照纠正错误的类型不同 可以分为纠正随机错误的码和纠正突发错误的 码 5 按照构成差错控制编码的数学方法来分类 可以分为代数码 几何码和算 术码 其中代数码建立在近代数学基础上 是目前发展最为完善的编码 其中线性 码是是代数码的一个最重要的分支 6 按照每个码元的取值不同 可以分为二进制代码和多进制码 2 3 检错和纠错的基本原理 香农著名的信道编码定理 6 指出 对于一个给定的有扰信道 若信道容量为C 差错控制编码解决加性噪声的仿真 4 只要发送端以低于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 如上所述 一种编码的最小码距直接关系到这种码的检错和纠错能力 因此最 小码距是信道编码的一个重要参数 在一般情况下 对于分组码有如下结论 差错控制编码解决加性噪声的仿真 5 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 120nn Saaa 在接收端解码时 若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 743 15114 31265 63576 7 4 汉明码的编码器和译码器 差错控制编码解决加性噪声的仿真 6 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 差错控制编码解决加性噪声的仿真 7 2 5 BCH 码 BCH码是循环码的一个重要子类 它具有纠多个错误的能力 BCH码有严密的代 数理论 是目前研究最透彻的一类码 它的生成多项式与最小码距之间有密切的关 系 人们可以根据所要求的纠错能力t很容易构造出BCH码 它们的译码器也容易实 现 是线性分组码中应用最普遍的一类码 BCH码的生成多项式 若循环码的生成多项式具有如下形式 2 2 1221 t D m DmDg DLCM m 这里t为纠错个数 为最小多项式 LCM表示取最小公倍式 则由此生成 i Dm 的循环码称之为BCH码 该码是以三个发现者博斯 Bose 查德胡里 Chaudhuri 和霍昆格姆 Hocquenghem 名字的开头字母命名的 其最小码距 dmin 2t 1 能纠t个错误 BCH的码长为n 或的因子 码长为n 12m 12m 的BCH码称为本原BCH码 码长为因子的BCH码称为非本原BCH码 对于12m 12m 纠t个错误的本原BCH码 其生成多项式为 2 3 1321 t g Dm D m DmD 纠正单个错误的本原BCH码就是循环汉明码 下面介绍几种常见的BCH码 1 戈雷码 Golay 23 12 码是一个特殊的非本原BCH码 称为戈雷码 它的最小码距7 能纠正 3个错误 其生成多项式为 2 4 119765 1g DDDDDDD 这也是目前为止发现的唯一能纠正多个错误的完备码 2 扩展形式 实际应用中 为了得到偶数码长 并增加检错能力 可以在BCH码的生成多项 式中乘D 1 从而得到 n 1 k 1 扩展BCH码 扩展BCH码相当于将原有BCH码再 加上一位的偶校验 它不再有循环性 3 缩短形式 几乎所以的循环码都存在它另一种缩短形式 实际应用中 可能需 ns ks 差错控制编码解决加性噪声的仿真 8 要不同的码长不是或它的因子 我们可以从码中挑出前s位为0的码12m 21 m k 组构成新的码 这种码的监督位数不变 因此纠错能力保持不变 但是没有了循环 性 BCH译码 BCH码的译码方法可以有时域译码和频域译码两类 频移译码是把 每个码组看成一个数字信号 把接受到的信号进行离散傅氏变换 DFT 然后利用 数字信号处理技术在 频域 内译码 最后进行傅氏反变换得到译码后的码组 时 域译码则是在时域直接利用码的代数结构进行译码 BCH的时域译码方法有很多 常见的时域BCH译码方法有彼得森译码 迭代译码等 BCH的彼得森解码基本过程 为 1 用的各因式作为除式 对接收到的码多项式求余 得到t个余式 称为 部分校验式 2 用t个部分校验式构造一个特定的译码多项式 它以错误位 置数为根 3 求译码多项式的根 得到错误位置 4 纠正错误 事实上 BCH码是一种特殊的循环码 因此它的编码器不但可以象其它循环码 那样用除法器来实现 而且原则上所有适合循环码解码的方法也可以用于BCH码的 解码 差错控制编码解决加性噪声的仿真 9 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 在核心数值算法 接口 差错控制编码解决加性噪声的仿真 10 设计 外部接口 应用桌面等诸多方面有了极大的改进 虽然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语言中的运行速度相对较慢 所以在算法优化的编程中应当尽可能避免使用 而代之以矩阵运算 从而提高程序 差错控制编码解决加性噪声的仿真 11 运行速度 通常可以提高数十倍到百倍 简化程序代码 而使得程序代码更加接近 于数学上的表达 当然 矩阵编程的编程方法需要读者更多的关于线性代数和矩阵 数学的知识和思维方式 总之 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 差错控制编码解决加性噪声的仿真 12 4 差错控制编码解决加性噪声 差错控制编码的基本实现方法 14 是在发送端将被传输的信息附上一些监督码元 这些多余的码元与信息码元之间以某种确定的规则相互关联 约束 接收端按照 既定的规则校验信息码元与监督码元 15 之间的关系 一旦传输发生差错 则信息码 元与监督码元的关系就受到破坏 从而接收端可以发现错误乃至纠正错误 16 下面 我将分四种情况对差错控制编码解决加性噪声的问题进行研究和讨论 4 1 无噪声无编码 在无噪声无编码情况下 应该是没有误码出现的 下面运行程序一验证结果是 否正确 程序见附录 程序一设计思路 首先产生一信息序列 将信息序列改为波形singl 画出singl 的波形 然后对singl进行采样 判决 最后将判决结果result 序列 改为波形out 并 画出out波形 计算误码率 运行程序一得到的结果和波形如下图所示 图4 1 无噪声无编码时的仿真 由程序的运行结果和波形可知 在无噪声无编码情况下 发送信号 1010110010 接收到的信号也是1010110010 没有误码出现 errorrate 0 00 误码 差错控制编码解决加性噪声的仿真 13 率为0 4 2 无噪声有编码 由4 1可知 在无噪声无编码情况下 没有误码出现 所以在无噪声有编码情况 下 就更不应该有误码了 下面运行程序二看结果是否正确 程序二设计思路 首先产生一信息序列 将信息序列改为波形singl 画出singl 的波形 然后对信息序列进行编码 将编码结果改为波形codesingl 画出codesingl 的波形 对codesingl进行采样 判决 最后将判决结果进行译码 将译码结果改为 波形out 并画出out波形 计算误码率 运行程序二得到的结果和波形 图4 2 无噪声有编码时的仿真 由程序的运行结果和波形 在无噪声有编码情况下 发送信号1010110010 接 收到的信号也是1010110010 没有误码出现 errorrate 0 00 误码率为0 4 3 有噪声无编码 我们知道 误码是由噪声产生的 那么在有噪声情况下 就应该有误码出现 下面运行程序三看结果是不是正确 程序三设计思路 首先产生一信息序列 将信息序列改为波形singl 画出singl 差错控制编码解决加性噪声的仿真 14 的波形 然后把噪声加入信号当中 画出加入噪声后的信号波形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汉明 编码时的输出波形 并计算误 码率 差错控制编码解决加性噪声的仿真 15 图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 编码是一个可以纠正单 个随机错误的编码 当噪声幅度增加到一定程度时 随着误码数的增加 差错控制编码解决加性噪声的仿真 16 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个随机错误的编码 那么它能不能更好的 降低误码率呢 运行程序六得到的结果和波形 差错控制编码解决加性噪声的仿真 17 图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 码的仿真 差错控制编码解决加性噪声的仿真 18 没有编码情况下的误码率 errorrate 0 21 有BCH 15 5 编码情况下的误码率 errorrate1 0 04 由程序的运行结果和波形 我们看出 尽管在噪声幅度为0 6时 经过 BCH 15 5 编码情况下的输出仍然有0 04的误码率 但和hamming 7 4 编码相比 它 更好的降低了误码率 当然它是以增加冗余度为代价换来的 所以我们要在不同的 情况下 选择不同的编码方式 才能最好的实现数据传输 结论 通过对有无噪声 有无编码4种情况的仿真 可以看出误码主要是由噪声 引起的 而使用差错控制编码可以有效的降低误码率 17 下面是对不同噪声强度情 况下的误码率仿真统计 表2 不同噪声幅度下有无编码时的误码率 有BCH编码噪声幅度无编码有Hamming编码 7 4 15 5 0 10 030 020 020 01 0 20 060 030 030 01 0 30 100 040 100 02 0 40 150 060 040 02 0 50 150 140 120 06 0 60 220 140 110 10 0 70 210 280 290 16 0 80 270 330 330 24 0 90 290 300 270 27 10 340 400 350 30 数据来源 MATLAB 仿真在通信与电子工程中的应用 由上表可以看出在噪声强度比较低时 差错控制编码可以很明显的降低误码率 但是在噪声强度比较高时 只靠单纯的差错控制编码不能很好的解决问题 此时就 应该采取一些其它的措施 例如合理地选择调制制度 调制方法 以及提高发送功 率等措施 当Hamming码和BCH码都使用 7 4 编码时 它们的纠错能力差不多 因为它们都只能纠正单个的随机错误 而当BCH码使用 15 5 编码时 由于它可 以纠正3个随机错误 所以大大提高了编码效率 不过是以增加冗余度为代价的 差错控制编码解决加性噪声的仿真 19 结束语 通过半个学期的努力 终于在6月初完成了毕业设计 在做毕业设计期间得到了 来自老师和同学的大力帮助 这使我深深的体会到团结协助的力量 通过做毕业设计 锻炼了我独自完成一件事的能力 提高了自我约束力 为走上工作岗位起到了桥梁 作用 由于自己对Matlab编程不熟悉 这给我的毕业设计带来了很大的麻烦 不过最 后还是在老师和同学的帮忙下 让我找到了对Matlab编程的一些思路 差错控制编 码解决加性噪声 对于老师来说可能是一个老题目 但对我来说还是很新鲜 尽管以 前学过差错控制编码的原理知识 但用仿真的方法对差错控制编码进行校验还是第 一次 这不仅加深了我最对差错控制编码理论的认识和理解 也使我懂得了如何对 一个理论进行自己的研究或验证 差错控制编码解决加性噪声的仿真 20 致 谢 经历了一个学期的毕业设计 在这段时间里 它不仅仅使我学到了宝贵的专业 知识 更重要的是它使我学到了怎样去独立思考问题 解决问题 大大提高了我自 己的动手能力和操作能力 为我今后的工作奠定坚实的基础 本文从选题的确定 论文的写作 修改到最后定稿得到了我的指导老师 的 悉心指导 特别是她多次询问写作进程 并为我指点迷津 帮助我开拓思路 精心 点拨 热忱鼓励 她严肃的教学态度 严谨的治学精神 精益求精的工作作风深深 地感染和激励着我 在此 谨向 老师致以诚挚的谢意和崇高的敬意 感谢所有在毕业设计中曾经帮助过我的良师益友和同学 以及在设计中被我引 用或参考的论著的作者 谢谢 在这次编写设计报告中 由于时间的紧促和编写者的专业知识的有限 再加上 我们缺少实践经验 对使得所写的毕业论文的知识覆盖面有很大的局限性 而且报 告中难免有很多不妥之处 所以我恳请各位指导老师能够给予批评指正 差错控制编码解决加性噪声的仿真 21 参考文献 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 差错控制编码解决加性噪声的仿真 22 附录 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波形 差错控制编码解决加性噪声的仿真 23 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 差错控制编码解决加性噪声的仿真 24 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 差错控制编码解决加性噪声的仿真 25 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 差错控制编码解决加性噪声的仿真 26 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 sin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论