资源预览内容
第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
第9页 / 共63页
第10页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
东北大学秦皇岛分校电子信息系综合课程设计基于matlab的(7,4)汉明码编译仿真专业名称通信工程班级学号学生姓名何云瑞指导教师李雅珍设计时间2011.12.192012.1.4课程设计任务书专业:通信工程 学号: 学生姓名(签名): 设计题目:(7,4)汉明码的编码、译码仿真一、设计实验条件电子信息创新实验室二、设计任务及要求1. 了解、掌握汉明码编码、译码原理;2. 用仿真软件对(7.4)汉明码进行编码、译码仿真;3. 画出编码后、译码后的信号波形图。三、设计报告的内容1. 设计题目与设计任务(设计任务书)2. 前言(绪论)(设计的目的、意义等)3. 设计主体(各部分设计内容、分析、结论等)4. 结束语(设计的收获、体会等)5. 参考资料四、设计时间与安排1、设计时间: 2周2、设计时间安排: 熟悉实验设备、收集资料: 天设计图纸、实验、计算、程序编写调试: 天编写课程设计报告: 天答辩: 天目 录摘要I1引言12.设计原理22.1汉明码编码原理222汉明码纠错原理43程序与SIMULINK仿真63.1程序63.1.1程序函数介绍63.1.2 主程序63.1.3调试结果73.2 SIMULINK仿真83.2.1 SIMULINK电路图83.2.2 模块参数设置93.2.3仿真波形113.2.4仿真结果分析154.总结16参考文献17各工作组要指定一名人员承担信息报送工作,负责搜集和整理本组及相关成员单位的各类信息,经组长审核把关后及时报综合组,每周至少报送一条工程进展信息,每季度报送工作总结。摘要汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数对外界输入的信息进行汉明码的编、译码,绘制时域波形及误码率与信噪比关系曲线图。在此基础上,对汉明码的性能进行分析,得出汉明码能降低噪声干扰的结论。关键词:MATLAB 汉明码 SIMULINK 仿真 571引言MATLAB(Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高效率的数值计算和可视化软件。其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。MATIAB通信工具箱由两大部分组成:通信系统功能函数库和SIMULINK通信系统仿真模型库。MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码解码函数、纠错控制编码解码函数、调制解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REEDSOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。 在SIMULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:信号的产生与输出、编码与解码、调制与解调。在SIMULINK中,通信系统仿真的一般模型如图1所示。 Modulation调制Error Control Coding纠错控制编码Source Coding信源编码Source信源Multiple Access多址复用Receiver/Filter接收机/滤波器Channel 信道Transmitter/Filter发射机/滤波器Error Control Decoding纠错控制解码Demodulation解调Multiple Access多址复用Sink输出Source Decoding信源解码图1 通信系统仿真模型2.设计原理2.1汉明码编码原理一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求 下面以(7,4)汉明码为例说明原理: 设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r3。若取r=3,则n=k+r=7。我们用来表示这7个码元,用的值表示3个监督关系式中的校正子,则的值与错误码元位置的对应关系可以规定如表1所列。表1 校正子和错码位置的关系错码位置错码位置 001101 010 110 100 111 011000无错码则由表1可得监督关系式: 在发送端编码时,信息位的值决定于输入信号,因此它们是随机的。监督位、应根据信息位的取值按监督关系来确定,即监督位应使式(2)式(4)中、的值为0(表示编成的码组中应无错码) 式(5)经过移项运算,接触监督位 式(5)其等价形式为: 式(6)还可以简记为 或 其中, , , 所以有 式(6)等价于 其中Q为P的转置,即 式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。我们将Q的左边加上一个kk阶单位方阵,就构成一个矩阵G G称为生成矩阵,因为由它可以产生整个码组,即有 或者 式(13)即汉明码的编码原理22汉明码纠错原理当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。 一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即 则发送码组和接收码组之差为 E就是传输中产生的错码行矩阵 若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成 若E=0,即接收码组无错,则,将它代人式(8),该是仍成立,即有 当接收码组有错时,E0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即 将 代入式(20),可得由式(8)可知,所以 此处S与前面的有着一一对应关系,则S能代表错码位置。因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。3程序与SIMULINK仿真3.1程序3.1.1程序函数介绍MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。encode函数功能:编码函数语法:code=encode(msg,N,K,hamming)说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。decode函数功能:译码函数语法:rcvcode=decode(code,N,K,hamming)说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。hammgen函数功能:汉明码生成矩阵和校验矩阵产生函数语法:H=hammgen(M) H,G=hammgen(M) H,G,N,K=hammgen(M)说明:该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。3.1.2 主程序clc %清屏N=7;%N为总长,包括数据位和汉明码位msg=input(请输入矩阵,不要忘加中括号); %外部输入信号,同行的元素以空%白或逗号隔开,不同行以分号隔开m,n=size(msg);%返回矩阵的行数m(即几组信号),列数n(即数据的位数)T=(0:m-1);t=(0:n-1);msn=msg(T+1,rem(t,n)+1)%从输入的信息矩阵中抽出msn矩阵,作为simulink中from %workspace的输入函数code=encode(msg,N,n,hamming) %直接调用matlab库函数进行汉明编码code_noise=rem(code+rand(m,N)0.95,2 ) %加噪声,rand产生10行7列随机矩阵rcv=decode(code_noise,N,n,hamming) %汉明译码disp(Error rate in the received code: num2str(symerr(code,code_noise)/length(code)%计算收到的数据的误码率(包括汉%明码)disp(Error rate after decode: num2str(symerr(msg,rcv)/length(msg)%计算译码后的误码率(即整个系统的误码率)%symerr比较两个数据集计算出两者的不同符号的个数和误符号率。%number,ratio=symerr(x,y),其中number为符号不同的数目,ratio等于%number/
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号