汉明码仿真

上传人:cl****1 文档编号:511755872 上传时间:2024-01-16 格式:DOCX 页数:18 大小:365.39KB
返回 下载 相关 举报
汉明码仿真_第1页
第1页 / 共18页
汉明码仿真_第2页
第2页 / 共18页
汉明码仿真_第3页
第3页 / 共18页
汉明码仿真_第4页
第4页 / 共18页
汉明码仿真_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《汉明码仿真》由会员分享,可在线阅读,更多相关《汉明码仿真(18页珍藏版)》请在金锄头文库上搜索。

1、摘要汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码, 即SEC (Single Error Correcting)码,用于信道编码与译码中,提高通信系 统抗干扰的能力。本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉 明码建模仿真,并调用通信系统功能函数进行编程,对汉明码的性能进行分析。关键词:MATLAB 汉明码 SIMULINK 性能目录1课程设计目的12课程设计要求13相关知识14课程设计分析85仿真116结果分析137参考文献13汉明码仿真程序设计1课程设计目的(1)加深汉明码(Hamming Code)基本理论知识的理解。(2)培养独

2、立开展科研的能力和编程能力。(3)掌握用MATLAB实现信号的PM调制。(4)掌握MATLAB软件的使用。2. 课程设计要求(1)掌握汉明码(Hamming Code)的相关知识、概念清晰。(2)掌握MATLAB使用方法,利用软件绘制图像。(3)程序设计合理、能够正确运行。3. 相关知识3.1 MATLAB 简介MATLAB (Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高 效率的数值计算和可视化软件。其中,MATLAB通信工具箱是一套用于在通信领 域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。MATIAB通 信工具箱由两大部分组成:通信系统功

3、能函数库和SIMULINK通信系统仿真模型 库。MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参 数、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、 信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带)、 滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同 步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、 汉明码、循环码、BCH码、里德一索洛蒙码(REEDSOLOMON)、卷积码等6种 纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种 形式的函数表达。在SI

4、MULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:信 号的产生与输出、编码与解码、调制与解调。在SIMULINK中,通信系统仿真的 一般模型如图3.1所示。图3.1通信系统仿真模型3.2设计原理3.2.1汉明码编码原理一般来说,若汉明码长为n信息位数为k,则监督位数r=n-k。若希望用r 个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求2r -1 n 或 2r 1 k + r +1仃)下面以(7, 4)汉明码为例说明原理:设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位s s s数r$3。若取r=3,则n=k+r=7。我们用-巴来表示这7个

5、码元,用1 2 3s s s的值表示3个监督关系式中的校正子,则1 2 3的值与错误码元位置的对应关系 可以规定如表1所列。表1校正子和错码位置的关系s s s1 2 3错码位置s s s1 2 3错码位置001a0101a4010a1110a5100a2111a6011a3000无错码则由表1可得监督关系式:(4 )s = aaaa1 6542s = aaaa2 653s = aaaa3 6430在发送端编码时,信息位a6 a5 43的值决定于输入信号,因此它们是随机的。 监督位a2、ai、ao应根据信息位的取值按监督关系来确定,即监督位应使式(2) 式(4)中1、S2、S3的值为0 (表示

6、编成的码组中应无错码)aaaa = 06542aaaa = 06531aaaa = 0(5)L 6430(5)式(5)经过移项运算,接触监督位厂a = aaa2654v a = aaa1653a = aaaJ 06430_a6a5a40_0a301a02a1a1- 0式(5)其等价形式为:1110110 1(7)10 11式(6)还可以简记为H At = 0t 或 A Ht = 0a a1 0其中1110 -10 0110 1I =0 1 0r10 110 0 11011001P =所以有H = PI r式(6)等价于aa2 1a = a0I=a6a3 Q(10)其中Q为P的转置,即Q = P

7、T(11)式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。我们将Q的左边加上一个kXk阶单位方阵,就构成一个矩阵GG = IkQ0 0 0 1 110 0 110 10 100 0 10 11011G称为生成矩阵,因为由它可以产生整个码组,即有aaaaaaa =taaaa G6 5 4 3或者=a a a a G06 5 4 3A = aa65a G3(12)(13)(14)式(13)即汉明码的编码原理322汉明码纠错原理当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中 噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行 汉明码纠错,

8、以提高通信系统的抗干扰能力及可靠性。一般来说接收码组与A不一定相同。若设接收码组为一 n列的行矩阵B,即(15)(16)(17)B = bbb bb bb 6 5 4 3 2 1 0则发送码组和接收码组之差为B - A = EE就是传输中产生的错码行矩阵E 二eeeeeee 6 5 4 3 2 1 0若e=0,表示接收码元无错误,若e=1,则表示该接收码元有错。式(16) ii可改写成B = A + E(18)若E=0,即接收码组无错,则B = A + E = A,将它代人式(8),该是仍成立, 即有B Ht 二 0(19)当接收码组有错时,EH0,将B带入式(8)后,该式不一定成立。在未超(

9、20)过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即B Ht 二 S将B = A + E代入式(20),可得S = (A + E)Ht 二 A Ht + E Ht由式(8)可知,所以S 二 E HT(21)此处S与前面的S1S2S3有着一一对应关系,则S能代表错码位置。因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判 断错码情况,进行差错纠正。3.3 MATLAB 简介3.3.1基本功能MATLAB是很实用的数学软件它在数学类科技应用软件中在数值运算 方面首屈一指。MATLAB可以进行运算、绘制函数和数据、实现算法、创建 用户界面、连接接其他编程语言的程序

10、等,主要应用于工程计算、控制设 计、信号处理与通讯、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用 的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成 相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使M ATLAB成为一个强大的数学软件。可以直接调用,用户也可以将自己编写的 实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。3.3.2 MATLAB产品应用MATLAB产品族可以用来进行以下各种工作:数值分析数

11、值和符号计算工程与科学绘图控制系统的设计与仿真数字信号处理技术通讯系统设计与仿真3.3.3 MATLAB 特点此高级语言可用于技术计算此开发环境可对代码、文件和数据进行管理交互式工具可以按迭代的方式探查、设计及求解问题二维和三维图形函数可用于可视化数据各种工具可用于构建自定义的图形用户界面3.3.4 MATLAB系列工具优势(1)友好的工作平台和编程环境MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文 件,其中许多工具采用的是图形用户界面。包括 MATLAB桌面和命令窗口、 历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空 间、文件的浏览器。随着MATL

12、AB的商业化以及软件本身的不断升级,MATL AB的用户界面也越来越精致,更加接近 Windows的标准界面,人机交互性 更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系 统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系 统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误 及进行出错原因分析。(2)简单易用的程序语言MATLAB 一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、 输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执 行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一 起运行。新版本的MAT

13、LAB语言是基于最为流行的C +语言基础上的,因 此语法特征与C + +语言极为相似,而且更加简单,更加符合科技人员对数 学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这 种语言可移植性好、可拓展性极强,这也是 MATLAB能够深入到科学研究及 工程计算各个领域的重要原因。(3)强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数 学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都 是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常 情况下,可以用它来代替底层编程语言,如C复数的各种运算、

14、三角函数和其他 初等数学运算、多维数组操作以及建模动态仿真等。3.4 SIMULINK 简介SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件 包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模 型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而 非语言的编程上。在simulink环境中,利用鼠标就可以在模型窗口中直观地“画” 出系统模型,然后直接进行仿真。它为用户提供了方框图进行建模的图形接口, 采用这种结构画模型就像你用手和纸来画一样容易。而所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统 模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部 是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需 要的系统模型(以.mdl檔进行存取),进而进行仿真与分析。SIMILINK模块库 按功能进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号