MATLAB+7,4汉明码
基于simulink的(7,4)汉明吗的编码与译码

引言在实际信道中传输数字信号时,由于信道特性不理想及加性噪声的影响,接收端所收到的数字信号不可避免的的会产生错码,影响通信质量。
为了使数字通信系统达到一定的误比特率指标,首先应合理设计基带信号,选择合适的调制方式、解调方式,采用均衡,提高发信功率等,但如果误比特率指标仍不能满足要求,则必须采用信道编码。
信道编码也称差错控制编码或纠错编码,它是提高数字通信系统可靠的重要方法。
1948年,香农在他的开创性论文《通信的数学理论》中首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错编码的基石。
如今的纠错编码已有几十年的历史,从早期的线性分组码,BCH码,到后来的RS码、卷积码,级联码、Turbo码;从原来的代数译码,到后来的门限译码、软判决译码,到Viterbi译码等;从注重数学模型、理论研究,到注重纠错编码的使用化问题,并且通过计算机仿真、搜索好码。
无论是从编码方法、译码方法还有研究方法上,纠错编码研究都取得了长足的发展,并广泛应用于各种通信系统。
如今,纠错编码技术已开始渗透带很多领域,如移动通信中大量利用纠错编码,计算机通信系统中也大量应用纠错编码。
汉明码是1950年由Hamming首先构造的,他是一个能够纠正单个错误的线性分组码,即SEC(Sing Error Correcting)码,它不仅性能好,而且编译电路非常简单,易于实现。
从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。
最先用于磁芯存储器,60年代初用于大型计算机,70年代在MOS存储器得到应用,后来在中小型计算机中普遍采用,目前常用在RFID系统中多位错误的纠正。
汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件,原编码我们可将它称为信息码,附加码称为校验码(又可称为监督码或冗余码)。
汉明码的最小码间距为3,所以只能够检测到2个错误或纠正1个错误,编码效率最高。
它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。
线性分组码(7,4)码设计说明书

言
设计数字通信系统时,应首先合理选择信道编译码码组种类,这样才可以在信号的 传输,以及接收环节达到较好的效果,线性分组码具有编译码简单,封闭性好等特点, 采用差错控制编码技术是提高数字通信可靠性的有效方法,是目前较为流行的差错控制 编码技术。 分组码是一组固定长度的码组,可表示为(n , k) ,通常它用于前向纠错。在分组 码中,监督位被加到信息位之后,形成新的码。在编码时,k 个信息位被编为 n 位码组 长度,而 n-k 个监督位的作用就是实现检错与纠错。 对于长度为 n 的二进制线性分组码,它有种可能的码组,从种码组中,可以选择 M= 个码组(k<n)组成一种码。这样,一个 k 比特信息的线性分组码可以映射到一个长度 为 n 码组上, 该码组是从 M=个码组构成的码集中选出来的, 这样剩下的码组就可以对这 个分组码进行检错或纠错。
上述方法构造的能纠正单个误码的线性分组码又称为汉明码。它具有以下一些特 点:码长 n=2m-1,最小码距为 d=3,信息码长 k=2n-m-1,纠错能力 t=1,监督码 长 r=n-k=m。这里 m 为≥2 的正整数。给定 m 后,就可构造出汉明码(n,k)。
5
第三章 推导过程
3.1 编码过程
监督阵 H 与生成矩阵 G 的关系: 由 H 与 G 的分块表示的矩阵形式 H [ P I n k ]
其中 A 为纠错输出码序列,E 为错码矩阵,B 为信道输出码。 对接收到的信息进行改正求出正确的编码,从而再提去更正后的接收序列的前四 位来提取信息位,以至获得信息矩阵 I。
8
第四章 仿真过程及结果分析
4.1 程序流程图
4.1.1 主程序流程图 主程序一开始就有欢迎界面,并对用户显示出了选择提示语句,可以选择编码器、 译码器、退出三种选择,当用户做出选择后便会进入各自的子程序,执行相应的功能, 整个主程序的流程如下:
汉明码——精选推荐

汉明码摘要本⽂主要利⽤MATLAB通信系统仿真模型库进⾏汉明码建模仿真,并调⽤通信系统功能函数对外界输⼊的信息进⾏汉明码的编、译码,绘制时域波形及误码率与信噪⽐关系曲线图。
在此基础上,对汉明码的性能进⾏分析,得出汉明码能降低噪声⼲扰的结论。
Hamming码中⽂称作汉明码。
汉明码是由汉明于1950年提出的,是⼀种能够⾃动检测并纠正⼀位错码的线性纠错码, 它的突出特点是:编译码电路简单,易于硬件实现;⽤软件实现编译码算法时,软件效率⾼;⽽且性能⽐较好.关键词:MATLAB 汉明码编码译码⽬录⼀、前⾔ (1)⼆、设计原理 (2)2.1 纠错编码原理 (2)2.2 汉明码编码 (2)2.2.1 汉明码的定义 (2)2.2.2 汉明码的构造特点 (2)2.2.3 汉明码编码的主要算法 (3)2.3 汉明码的构造原理 (3)2.4 监督矩阵H (4)2.5 ⽣成矩阵G (5)2.6 校正⼦(伴随式) (6)三、汉明码编码的设计 (7)3.1 汉明码编码⽅法 (7)3.2 编码流程图 (8)3.3 汉明码编码程序设计 (9)3.4 汉明码编码仿真波形 (9)四、汉明码的译码器的设计 (10)4.1 汉明码译码⽅法 (10)4.2译码程序设计的流程图 (12)4.3 汉明码译码程序的设计 (14)4.4 汉明码译码仿真波形 (15)五、总结 (16)六、参考⽂献 (17)附录 (18)⼀、前⾔数字信号在传输过程中,由于受到⼲扰的影响,码元波形将变坏。
接收端收到后可能发⽣错误判决。
由于乘性⼲扰引起的码间串扰,可以采⽤均衡的办法来纠正。
⽽加性⼲扰的影响则需要⽤其他办法解决。
在设计数字通信系统时,应该⾸先从合理选择调制制度,解调⽅法以及发送功率等⽅⾯考虑,使加性⼲扰不⾜以影响到误码率要求。
在仍不能满⾜要求时,就要考虑采⽤差错控制措施了。
从差错控制⾓度看,按加性⼲扰引起的错码分布规律不同,信道可以分为3类,即随机信道,突发信道和混合信道。
(7,4)汉明码编译码系统设计.doc

南华大学电气工程学院《通信原理课程设计》任务书设计题目:(7, 4)汉明码编译码系统设计专业:通信工程学生姓名: 马勇学号:20114400236 起迄日期:2013 年12月20日~2014年1月3日指导教师:宁志刚副教授系主任:王彦教授《通信原理课程设计》任务书《通信原理课程设计》设计说明书格式一、纸张和页面要求A4纸打印;页边距要求如下:页边距上下各为2.5 厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。
二、说明书装订页码顺序(1)任务书 (2)论文正文 (3)参考文献,(4)附录三、课程设计说明书撰写格式见范例引言(黑体四号)☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号)1☆☆☆☆(黑体四号)正文……(首行缩进两个字,宋体小四号)1.1(空一格)☆☆☆☆☆☆(黑体小四号)正文……(首行缩进两个字,宋体小四号)1.2 ☆☆☆☆☆☆、☆☆☆正文……(首行缩进两个字,宋体小四号)2 ☆☆☆☆☆☆ (黑体四号)正文……(首行缩进两个字,宋体小四号)2.1 ☆☆☆☆、☆☆☆☆☆☆,☆☆☆(黑体小四号)正文……(首行缩进两个字,宋体小四号)2.1.1☆☆☆,☆☆☆☆☆,☆☆☆☆(楷体小四号)正文……(首行缩进两个字,宋体小四号)(1)……图1. 工作波形示意图(图题,居中,宋体五号)…………5结论(黑体四号)☆☆☆☆☆☆(首行缩进两个字,宋体小四号)参考文献(黑体四号、顶格)参考文献要另起一页,一律放在正文后,不得放在各章之后。
只列出作者直接阅读过或在正文中被引用过的文献资料,作者只写到第三位,余者写“等”,英文作者超过3人写“et al”。
几种主要参考文献著录表的格式为:⑴专(译)著:[序号]著者.书名(译者)[M].出版地:出版者,出版年:起~止页码.⑵期刊:[序号]著者.篇名[J].刊名,年,卷号(期号):起~止页码.⑶论文集:[序号]著者.篇名[A]编者.论文集名[C] .出版地:出版者,出版者. 出版年:起~止页码.⑷学位论文:[序号]著者.题名[D] .保存地:保存单位,授予年.⑸专利文献:专利所有者.专利题名[P] .专利国别:专利号,出版日期.⑹标准文献:[序号]标准代号标准顺序号—发布年,标准名称[S] .⑺报纸:责任者.文献题名[N].报纸名,年—月—日(版次).附录(居中,黑体四号)☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号)(另起一页。
汉明码仿真

摘要汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。
本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,对汉明码的性能进行分析。
关键词:MATLAB 汉明码 SIMULINK 性能I目录1 课程设计目的 (1)2 课程设计要求 (1)3 相关知识 (1)4 课程设计分析 (8)5 仿真 (11)6结果分析 (13)7 参考文献 (13)II汉明码仿真程序设计1.课程设计目的(1)加深汉明码(Hamming Code)基本理论知识的理解。
(2)培养独立开展科研的能力和编程能力。
(3)掌握用MATLAB实现信号的PM调制。
(4)掌握MATLAB软件的使用。
2.课程设计要求(1)掌握汉明码(Hamming Code)的相关知识、概念清晰。
(2)掌握MATLAB使用方法,利用软件绘制图像。
(3)程序设计合理、能够正确运行。
3.相关知识3.1 MATLAB简介MATLAB(Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高效率的数值计算和可视化软件。
其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。
MATIAB通信工具箱由两大部分组成:通信系统功能函数库和SIMULINK通信系统仿真模型库。
MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。
这些函数包括:信号源产生函数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。
以纠错控制编解码函数为例:函数库提供了线性分组码、12汉明码、循环码、BCH 码、里德一索洛蒙码(REED —SOLOMON )、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。
汉明码编译码教程文件

汉明码编译码汉明码编译码一设计思想汉明码是一种常用的纠错码,具有纠一位错误的能力。
本实验使用Matlab 平台,分别用程序语言和simulink来实现汉明码的编译码。
用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。
用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。
此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。
二实现流程1.汉明码编译码图 1 汉明码编译码框图1)根据生成多项式,产生指定的生成矩阵G2)产生随机的信息序列M3)由C MG得到码字4)进入信道传输S RH得到伴随式5)计算=T6)得到解码码流7) 得到解码信息序列2.汉明码误码性能分析误码率(SER )是指传输前后错误比特数占全部比特数的比值。
误帧率(FER )是指传输前后错误码字数占全部码字数的比值。
通过按位比较、按帧比较可以实现误码率和误帧率的统计。
3. 构建完整通信系统图 2 完整通信系统框图三 结论分析1. 汉明码编译码编写了GUI 界面方便呈现过程和结果。
输入信息序列Huffman 编码Hamming 编码信道Hamming 译码Huffman 译码输出信息序列噪声图 3 汉明码编译码演示GUI 界面以产生(7,4)汉明码为例说明过程的具体实现。
1)根据生成多项式,产生指定的生成矩阵G用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k100101101011100010111H ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦1101000011010011100101010001G ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦2) 产生随机的信息序列M0010=01000111M ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦3) 由C MG =得到码字010001101101000010111C ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦4) 进入信道传输假设是BSC 信道,错误转移概率设定为0.1传输后接收端得到的码流为000011110100000111101R ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦红色表示错误比特。
汉明码的性能分析
课程设计任务书学生姓名:专业班级:通信0906班指导教师:尹勇工作单位:信息工程学院题目:汉明码的性能分析初始条件:MATLAB软件,电脑,通信原理知识要求完成的主要任务:输入信号:速率为100Bd的矩形信号信道:AWGN要求:画出编码器输入、输出信号,信道的输出信号,译码器的输出信号的波形、频谱以及误码率与译码器输入信噪比的关系曲线参考书目:徐明远主编《MATLAB仿真在通信与电子工程中的应用》王兴亮主编《数字通信原理与技术》孙屹吴磊主编《Simulink通信仿真开发手册》葛哲学主编《精通MATLAB》樊昌信曹丽娜主编《通信原理》时间安排:第1周,安排任务(鉴主15楼实验室)第1-17周,仿真设计(鉴主13楼计算机实验室)第18周,完成(答辩,提交报告,演示)指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (3)Abstract (4)1.引言 (5)2.设计原理 (6)2.1汉明码编码原理 (6)2.2汉明码纠错原理 (8)2.3程序函数及命令介绍 (9)3.仿真与程序 (11)3.1仿真 (11)3.1.1 SIMULINK仿真 (11)3.1.2 模块属性设置 (12)3.1.3 M文件程序 (14)3.1.4仿真结果 (15)3.1.5调试 (20)3.1.6结果分析 (20)3.2程序 (20)3.2.1程序 (20)3.2.2调试结果 (21)3.2.3结果分析 (22)4.总结 (23)参考文献 (24)摘要随着信息时代和数字世界的到来,通信原理已成为当今一门极其重要的学科和技术领域。
在通信原理中起着重要的作用并已获得广泛应用的是汉明码。
汉明码是一种能够自动检测并纠正一位错码的线性纠错码,即SEC码,用于信道编码与译码中,提高通信系统抗干扰的能力。
MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。
它是美国的MathWorks公司推出的一套用于科学计算和图形处理可视化、高性能语言与软件环境。
二元(7,4)汉明码的编译码分析与实验研究
设计(论文)题目:二元(7,4)汉明码的编译码分析与实验研究摘要汉明码(Hamming Code)在电信领域内属于线性分组码,或者可以称为线性调试码。
它是以发明者理查德·卫斯里·汉明的名字命名的。
汉明码在传输信息序列时插入校验码,当计算机存储或传输数据时,或者在信道传输的过程中,可能会产生误码,即信息错位,以检测并纠正一个比特错误。
由于汉明编码简单,它们被广泛应用于实际传输中。
本文主要涉及二元(7,4)汉明码的编码、译码及实现,以及信息论与编码的相关知识。
对于二元(7,4)汉明码C,其校验矩阵为H,汉明距离d(C)=3的充要条件是校验矩阵H的任意2个列矢量线性无关,且任意3个列向量是线性相关。
监督矩阵H生成的码是(7,4,3)码。
所以接下来问题是构建监督矩阵H和生成矩阵G,找出编码器和译码器输入和输出对应的逻辑关系,画出汉明码的编码电路图和译码电路图,通过VHDL语言实现汉明码的编码过程和译码过程,观察仿真波形,来观察实验结果。
关键字:二元(7,4)汉明码;生成矩阵;监督矩阵;编码;译码;AbstractHamming code field belongs to the linear block codes in the telecommunications, or you could be called linear debugging code. It is the inventor, Richard Wesley Hamming named after. Hamming code inserted into the check code in information transmission sequence, when the computer refers for data storage,or in the process of channel transmission. it may produce error, namely the informational burst-error, and Hamming Code could detect and correct errors one bit. Due to its simple hamming coding, they are widely used in the actual transmission.This paper mainly relates to binary (7, 4) hamming code about coding, decoding and realization, as well as the related knowledge of Information Theory and Coding. For binary (7, 4) hamming code called C, its supervision matrix of the H, hamming distance d (C) = 3 of any two of the sufficient and necessary condition is checking matrix H column vector linearly independent, and arbitrary three column vector is linearly dependent. Supervision of matrix H generated code is (7, 3) code. So the next problem is to build the generator matrix G and supervision matrix H, generate the encoder and decoder ,inputs and outputs corresponding logical relationship, as well as,draw the circuit diagram of hamming code encoding and decoding circuit diagram, using VHDL language realization of hamming code encoding and decoding process, observing the simulation waveform and the result of the experiment.Keywords:binary (7, 4) hamming code ;generator matrix;supervision matrix;encoding ;decoding ;引言汉明码是最早提出来的用于纠错的编码,它是一类可以纠正一位错误的高效的线性分组码。
通信系统仿真 基于MATLAB汉明码仿真课程设计
摘要在通信系统中,要提高信息传输的有效性,我们将信源的输出经过信源编码用较少的符号来表达信源消息,这些符号的冗余度很小,效率很高,但对噪声干扰的抵抗能力很弱。
汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。
为了提高信息传输的准确性,我们引进了差错控制技术。
而该技术采用可靠的,有效的信道编码方法来实现的。
纠错码是一种差错控制技术,目前已广泛应用于各种通信系统和计算机系统中,纠错编码主要用于数字系统的差错控制,对于保证通信、存储、媒体播放和信息转移等数字传递过程的质量有着重要意义,是通信、信息类科知识结构中不可缺少的一部分。
本文系统地介绍了纠错码在数字系统中的应用和发展,以及纠错码的基本原理和含义,常用纠错码的简介和分类,主要利用MATLAB中通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形曲线图。
在此基础上,对汉明码的性能进行分析,得出结论。
关键字:通信系统、MATLAB、线性分组码、Hamming码目录一、引言 (1)二、设计原理 (2)2、1 汉明码的构造原理 (2)2、2 汉明码的纠错原理 (3)2、3 监督矩阵H (4)2、4 生成矩阵G (6)2、5 校正子(伴随式)S (7)2、6 程序函数介绍 (9)三、(7,4)汉明码编码的设计 (9)3、1 (7,4)汉明码编码方法 (9)3、2 编码流程图 (10)3、3 (7,4)汉明码编码程序设计 (10)四、(7,4)汉明码的译码器的设计 (11)4、1 (7,4)汉明码译码方法 (11)4、2 译码流程图 (13)4、3 (7,4)汉明码译码程序的设计 (13)五、(7,4)汉明码编译码程序的编译及仿真波形 (14)六、总结 (17)七、参考文献 (18)附录 (19)一、引言MATLAB(Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高效率的数值计算和可视化软件。
(7,4)汉明码课程设计
【摘要】本文主要介绍利用ALTERA公司的Quartus II软件实现(7,4)汉明码的编码和译码的设计,设计共分为三个模块:m序列产生与分组模块、编码模块、译码模块,实现m序列的分组输出。
在QuartusII编辑环境下用VHDL文本输入的输入方法编制程序,经编译正确后进行波形仿真,调试,从而验证设计的正确性。
关键字:汉明码,编码,译码,VHDL【Abstract】T his article propose a method for Hamming encoder and Hamming decoder which is based on the VHDL language. It introduces the theory of Hamming encoder and Hamming decoder and the source program based on VHDL, and the way simulated and checked through QuartusII.Throughout the whole design is totally divided into three modules: the m sequence generated and the Packet Module,the encoding module,the decoding Module.Keywords: Hamming, coder,encoder, decoder ,VHDL目录第1章问题的提出及方案论证 (3)1.1 问题的提出 (3)1.2 方案论证 (3)1.2.1 Quartus II和VHDL简介 (3)1.2.2 软件设计方案介绍 (6)第2章设计方案的实施 (8)2.1 m序列模块 (8)2.1.1 m序列简介 (8)2.1.2 m序列模块设计流程 (9)2.2 (7,4)汉明码知识介绍 (10)2.2.1基本概念 (10)2.2.2监督矩阵 (11)2.2.3生成矩阵 (12)2.2.4 伴随式(校正子)S (12)2.3 汉明码编码模块 (13)2.3.1汉明码编码原理 (13)2.3.2 汉明码编码程序设计流程 (14)2.4 汉明码译码模块 (15)2.4.1汉明码译码原理 (15)2.4.2汉明码译码程序设计流程 (16)第3章软件调试及遇到的问题 (19)3.1 软件调试仿真波形图 (19)3.2 软件调试过程中遇到的问题 (21)第4章总结体会 (22)附录: (23)参考文献 (30)第1章问题的提出及方案论证1.1 问题的提出在上学期的通信原理课程中,我们学习了线性码的基本理论知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>> shengcheng
N =
1 0 1 0 1 1 0 0 1 0 1 1
P =
1 0 1 0
1 1 0 0
1 0 1 1
G =
1 0 0 0 1 1 1
0 1 0 0 1 1 0
0 0 1 0 1 0 1
0 0 0 1 0 1 1
Y =
1 0 1 0 0 1 0
1 1 0 0 0 0 1
1 0 1 1 0 0 1
n =
3 7
X =
Columns 1 through 15
1 0 1 0 0 1 0 1 1 0 0 0 0
1 1
Columns 16 through 21
0 1 1 0 0 1
>> X1=randerr(1,21,1)
X1 =
Columns 1 through 15
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
Columns 16 through 21
0 0 0 0 1 0
>> tianjia
Q =
Columns 1 through 15
1 0 1 0 0 1 0 1 1 0 0 0 0
1 1
Columns 16 through 21
0 1 1 0 1 1
Q1 =
1 0 1 0 0 1 0
1 1 0 0 0 0 1
1 0 1 1 0 1 1
>> H=[1 1 1 0 1 0 0;1 1 0 1 0 1 0;1 0 1 1 0 0 1]
H =
1 1 1 0 1 0 0
1 1 0 1 0 1 0
1 0 1 1 0 0 1
>> Z=mod(Q1*H',2)
Z =
0 0 0
0 0 0
0 1 0
>> T=debug(Z,Q1)
A =
1 0 1 0 0 1 0
1 1 0 0 0 0 1
1 0 1 1 0 0 1
T =
1 0 1 0 0 1 0
1 1 0 0 0 0 1
1 0 1 1 0 0 1
>> C=yima(T,4)
C =
1 0 1 0
1 1 0 0
1 0 1 1
>> s=wumalv(C,P)
s =
0
>> X2=randerr(1,21,2)
X2 =
Columns 1 through 15
0 0 1 0 0 1 0 0 0 0 0 0 0
0 0
Columns 16 through 21
0 0 0 0 0 0
>> tianjia
Q =
Columns 1 through 15
1 0 1 0 0 1 0 0 0 1 0 1 1
0 1
Columns 16 through 21
1 0 0 0 0 1
Q1 =
1 0 1 0 0 1 0
0 0 1 0 1 1 0
1 1 0 0 0 0 1
>> Z=mod(Q1*H',2)
Z =
0 0 0
0 1 1
0 0 0
>> T=debug(Z,Q1)
A =
1 0 1 0 0 1 0
0 0 1 0 0 1 0
1 1 0 0 0 0 1
T =
1 0 1 0 0 1 0
0 0 1 0 0 1 0
1 1 0 0 0 0 1
>> C=yima(T,4)
C =
1 0 1 0
0 0 1 0
1 1 0 0
>> s=wumalv(C,P)
s =
0.0833
>> X3=randerr(1,21,3)
X3 =
Columns 1 through 15
0 0 1 0 0 0 0 0 0 0 0 1 1
0 0
Columns 16 through 21
0 0 0 0 0 0
>> tianjia
Q =
Columns 1 through 15
1 0 1 0 0 1 0 0 0 1 0 1 1
0 1
Columns 16 through 21
1 0 0 0 0 1
Q1 =
1 0 1 0 0 1 0
0 0 1 0 1 1 0
1 1 0 0 0 0 1
>> Z=mod(Q1*H',2)
Z =
0 0 0
0 1 1
0 0 0
>> T=debug(Z,Q1)
A =
1 0 1 0 0 1 0
0 0 1 0 0 1 0
1 1 0 0 0 0 1
T =
1 0 1 0 0 1 0
0 0 1 0 0 1 0
1 1 0 0 0 0 1
>> C=yima(T,4)
C =
1 0 1 0
0 0 1 0
1 1 0 0
>> s=wumalv(C,P)
s =
0.0833
>> y=[0 0.833 0.833];
>> x=[1/21 2/21 3/21];
>> plot(x,y)
>> xlabel('所设计误码率');ylabel('实际误码率');title('(7,4)汉明码误码率曲线图')
shencheng.m
[N]=randint(1,12)
P=turnMatrix(N,4)
G=[1 0 0 0 1 1 1;0 1 0 0 1 1 0;0 0 1 0 1 0 1;0 0 0 1 0 1 1]
Y=mod(P*G,2)
X=turnRow(Y)
tianjia.m
Q=mod(X1+X,2)
Q1=turnMatrix(Q,7)
debug.m
function F=debug(Z,A)
n=size(Z);
T= zeros(1,n);
for i=0:(n(1)-1)
T(i+1)=4*Z(i+1,1)+2*Z(i+1,2)+Z(i+1,3);
if T(i+1)
A(i+1,8-T(i+1))=1-A(i+1,8-T(i+1))
end
end
yima.m
function C=yima(B,k)
n=size(B);
for i=1:n(1)
for j=1:k
C(i,j)=B(i,j);
end
end
wumalv.m
function s=wumalv(N1,N2)
B=N1==N2;
n=size(B);
count=0;
for i=1:n(1)
for j=1:n(2)
if B(i,j)==0
count=count+1;
end
end
end
s=count/(n(1)*n(2));
turnMatrix.m
function [P]=turnMatrix(S,k)
for i=0:(length(S)/k-1)
for j=0:(k-1)
P(i+1,j+1)=S(j+i*k+1);
end
end
turnRow.m
function [X]=turnRow(N)
n=size(N)
for i=0:(n(1)-1)
for j=0:(n(2)-1)
X(j+i*n(2)+1)=N(i+1,j+1);
end
end