电子信息工程专业课程设计任务书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计课程设计名称:汉明码的仿真与分析专业班级:电信1003班学生姓名:董成成学号:201046830509指导教师:李相国课程设计时间:2013年9月2电子信息工程专业课程设计任务书学生姓名董成成专业班级电子信息工程学号201046830509题目汉明码的仿真和分析课题性质仿真课题来源自拟课题指导教师李相国同组姓名无主要内容对二进制数字信源使用(7,4)汉明码进行分块编码及解码。并分析其过程其性能。任务要求1.掌握汉明码的原理及实现。2.用MATLAB产生独立等概的二进制信源,设计一个(7,4)汉明码,然后进行汉明码编码及解码,并仿真加性噪声信道。画出各阶段信号波形。参考文献1、《MATLAB通信仿真开发手册》国防工业出版社孙屹2、《现代通信系统分析与仿真-MATLAB通信工具箱》西安电子科技大学出版社李建新3、《现代通信原理》清华大学出版社曹志刚著4、教学用“通信原理”教材审查意见指导教师签字:李相国教研室主任签字:2013年9月07日31需求分析汉明码是由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(SingleErrorCorrecting)码。汉明码利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。它不仅性能好,而且编译码电路非常简单,易于实现。从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。主要包括MATLAB和Simulink两大部分。MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED—SOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。在SIMULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:信号的产生与输出、编码与解码、调制与解调。在SIMULINK中,通信系统仿真的一般模型如图1所示。4图1通信系统仿真模型2概要设计2.1汉明码编码原理一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求21rn或211rkr(公式2-1)下面以(7,4)汉明码为例说明原理:设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r≥3。若取r=3,则n=k+r=7。我们用6543210aaaaaaa来表示这7个码元,用123sss的值表示3个监督关系式中的校正子,则123sss的值与错误码元位置的对应关系可以规定如表2-1所列。表2-1校正子和错码位置的关系123sss错码位置123sss错码位置0010a1014a0101a1105a1002a1116a0113a000无错码则由表1可得监督关系式:Source信源SourceCoding信源编码ErrorControlCoding纠错控制编码Modulation调制MultipleAccess多址复用Transmitter/Filter发射机/滤波器Channel信道Receiver/Filter接收机/滤波器MultipleAccess多址复用Demodulation解调ErrorControlDecoding纠错控制解码SourceDecoding信源解码Sink输出516542saaaa(公式2-2)26531saaaa(公式2-3)36430saaaa(公式2-4)在发送端编码时,信息位6543aaaa的值决定于输入信号,因此它们是随机的。监督位2a、1a、0a应根据信息位的取值按监督关系来确定,即监督位应使式(2)~式(4)中1s、2s、3s的值为0(表示编成的码组中应无错码)654265316430000aaaaaaaaaaaa(公式2-5)式(5)经过移项运算,接触监督位265416530643aaaaaaaaaaaa(公式2-6)式(5)其等价形式为:6543210111010001101010010110010aaaaaaa(公式2-7)式(6)还可以简记为0TTHA或0TAH(公式2-8)其中111010011010101011001H6543210Aaaaaaaa0000111011011011P100010001rI所以有6rHPI(公式2-9)式(6)等价于21065436543111110101011aaaaaaaaaaaQ(公式2-10)其中Q为P的转置,即TQP(公式2-11)式(10)表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G1000111010011000101010001011kGIQ(公式2-12)G称为生成矩阵,因为由它可以产生整个码组,即有65432106543aaaaaaaaaaaG(公式2-13)或者6543AaaaaG(公式2-14)式(13)即汉明码的编码原理2.2汉明码纠错原理当数字信号编码成汉明码形式后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即6543210Bbbbbbbb(公式2-15)则发送码组和接收码组之差为BAE(公式2-16)7E就是传输中产生的错码行矩阵6543210Eeeeeeee(公式2-17)若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成BAE(公式2-18)若E=0,即接收码组无错,则BAEA,将它代人式(8),该是仍成立,即有0TBH(公式2-19)当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即TBHS(公式2-20)将BAE代入式(20),可得()TTTSAEHAHEH由式(8)可知,所以TSEH(公式2-21)此处S与前面的123sss有着一一对应关系,则S能代表错码位置。因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。然后根据(7,4)汉明码的编码原理,画出程序设计的流程图:8图2编码流程图然后根据流程图进行编写程序。2.3函数介绍MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。(1)encode函数功能:编码函数语法:code=encode(msg,N,K)说明:对信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。开始始对(7,4)汉明码进行编码输出编码后的(7,4)汉明码加入高斯白噪声对加入噪声后的(7,4)汉明码进行译码结束输出译码码后的(7,4)汉明码画出误码率/数与信噪比的仿真图对编码后的(7,4)汉明码进行调制9(2)decode函数功能:译码函数语法:rcvcode=decode(code,N,K)说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。(3)rand函数功能:均匀分布随机矩阵用法:rand(m,n),说明:产生m×n均匀分布的随机矩阵,rand产生的是0到1(不包括1)的伪随机数。(4)rem函数功能:求整除余数用法:rem(x,y)说明:求整除x/y的余数(5)length命令:计算向量或矩阵长度(6)sim命令:开始进行仿真(7)disp命令:显示结果,不显示变量名(8)hammgen函数功能:汉明码生成矩阵和校验矩阵产生函数语法:H=hammgen(M)[H,G]=hammgen(M)[H,G,N,K]=hammgen(M)说明:该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。3运行环境3.1MATLAB简介、基本功能MATLAB是很实用的数学软件它在数学类科技应用软件中在数值运算方面首屈一指。MATLAB可以进行运算、绘制函数和数据、实现算法、创建10用户界面、连接接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。3.2MATLAB产品应用MATLAB产品族可以用来进行以下各种工作:●数值分析●数值和符号计算●工程与科学绘图●控制系统的设计与仿真●数字信号处理技术●通讯系统设计与仿真3.3MATLAB特点●此高级语言可用于技术计算●此开发环境可对代码、文件和数据进行管理●交互式工具可以按迭代的方式探查、设计及求解问题●二维和三维图形函数可用于可视化数据●各种工具可用于构建自定义的图形用户界面3.4MATLAB系列工具优势(1)友好的工作平台和编程环境MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系11统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。(2)简单易用的程序语言MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功