(7,4)汉明码编解码器的设计
(7,4)汉明码编解码器的设计

(7,4)汉明码编解码器的设计序言VHDL语言具有功能强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成。
近几十年来,EDA技术获得了飞速发展。
它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编译、化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作。
以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点。
随着EDA技术的深入发展基于硬件描述语言的方法将有取代传统手工设计方法的趋势。
EDA ( Elect ronics Design Automation) 技术是随着集成电路和计算机技术飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。
目前,VHDL语言已经成为EDA的关键技术之一,VHDL 是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。
汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。
它属于线性分组码,由于汉明码的抗干扰能力较强,至今仍是应用比较广泛的一类码。
本文用VHDL语言实现了(7,4)汉明码的编码和译码,并通过实例来说明利用VHDL语言实现数字系统的过程。
在介绍(7,4)汉明码编码和译码原理的基础上,设计出了(7,4)汉明码的编码器和译码器,写出了基于VHDL实现的源程序,并通过QUARTUSⅡ软件进行仿真验证。
第1章QuartusⅡ与VHDL简介1.1 QuartusⅡ软件简介QuartusⅡ是Altera公司推出的CPLD/FPGA的开发工具,QuartusⅡ提供了完全集成且与电路结构无关的开发环境,具有数字逻辑设计的全部特性。
/P>Quartus Ⅱ设计软件提供完整的多平台设计环境,可以很轻松地满足特定设计的需要。
(7,4)汉明码编译码系统设计

南华大学电气工程学院《通信原理课程设计》任务书设计题目:(7, 4)汉明码编译码系统设计专业:通信工程学生姓名: 马勇学号:起迄日期:2013 年12月20日~2014年1月3日指导教师:宁志刚副教授系主任:王彦教授《通信原理课程设计》任务书3.主要参考文献:[1]樊昌信.通信原理(第6版)[M].北京:电子工业出版社,2012,12.[2]樊昌信,曹丽娜 .通信原理教程(第3版)[M].北京:国防工业出版社,2006,9.[3]刘学勇 .详解MATLAB/Simulink通信系统建模与仿真[M].北京:电子工业出版社,2011,11.[4]张水英 ,徐伟强 .通信原理及MATLAB/Simulink仿真[M].北京:人民邮电出版社,2012,9.[5]赵鸿图,茅艳 .通信原理MATLAB仿真教程[M].北京:人民邮电出版社,2010,11.[6]赵静 ,张瑾 .基于MATLAB的通信系统仿真[M].北京:北京航空航天大学出版社,2010,1.[7]赵谦 .通信系统中MATLAB基础与仿真应用[M].西安:西安电子科技大学出版社,2010,3.[8]徐明远 ,邵玉斌 . MATLAB仿真在现代通信中的应用[M].西安:西安电子科技大学出版社,2011,4.[9]邵玉斌 .Matlab/Simulink通信系统建模与仿真实例分析[M].北京:清华大学出版社,2008, 6.[10]邵佳 ,董辰辉 . MATLAB/Simulink通信系统建模与仿真实例精讲[M].北京:电子工业出版社,2009, 6.[11]黄智伟 .基于NI Multisim的电子电路计算机仿真设计与分析(修订版)[M].北京:电子工业出版社,2011, 6.[12]孙屹 ,戴妍峰 . SystemView通信仿真开发手册[M].北京:国防工业出版社,2004,11.[13]青松,程岱松,武建华 .数字通信系统的SystemView仿真与分析[M].北京:北京航空航天大学出版社,2001,6.4.课程设计工作进度计划:序号起迄日期工作内容2013.12.20~2013.12.24 系统方案设计12013.12.25~2013.12.28 利用Matlab/Systemview/Multisim等软件进行仿真设计22013.12.29~2013.12.31 通信系统的调试和测量,排除故障,分析实验结果32014.1.1 ~2014.1.3 整理设计报告4指导教师宁志刚日期:2013年12 月18日《通信原理课程设计》设计说明书格式一、纸张和页面要求A4纸打印;页边距要求如下:页边距上下各为2.5 厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。
(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].报纸名,年—月—日(版次).附录(居中,黑体四号)☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号)(另起一页。
通信原理设计报告(7-4)汉明码的编解码设计

目录前言...............................................................1第1章设计要求..................................................3第2章QuartusⅡ软件介绍.......................................4第3章汉明码的构造原理........................................6 3.1 (7,4)汉明码的构造原理...........................................63.2 监督矩阵H与生成矩阵G..........................................73.3 校正子(伴随式S)...............................................8第4章(7,4)汉明码编码器的设计...............................104.1 (7,4)汉明码的编码原理及方法....................................104.2 (7,4)汉明码编码程序的设计......................................104.3 (7,4)汉明码编码程序的编译及仿真................................11第5章(7,4)汉明码译码器的设计.............................125.1 (7,4)汉明码的译码方法.........................................125.2 (7,4)汉明码译码程序的设计....................................13 5.3 (7,4)汉明码译码程序的编译及仿真..............................15第6章(7,4)汉明码编译码器的设计..........................176.1 (7,4)汉明码编译码器的设计...................................17参考文献.........................................................18体会与建议.......................................................19附录..............................................................20前言汉明(Hamming)码是一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。
Hamming(7,4)编译码器实验报告8.8

8.8 Hamming(7,4)编译码器1.1实验目的·加深理解Hamming(7,4)码的编码方法和抗干扰性能;·通过编程实现Hamming(7,4)码的编码算法,进一步掌握按位二进制加法的实现原理。
1.2 实验原理·输入:长度为4的任意二进制序列。
·输出:输入数据经Hamming(7,4)编码器编码之后,通过8.7节的BSC信道(错误概率为0.1)传输后,再经过Hamming(7,4)译码器译码输出得到信宿端的长度为4的二进制序列。
·源程序格式整齐清晰,注释简单明了。
1.3 实验内容1.3.1 算法描述Hamming(7,4)码的生成矩阵为G=1000101 0100110 0010111 0001011⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦其校验矩阵为H=1110100 0111010 1011001⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦1.3.2 实验程序#include<stdio.h>#define M 7#define N 3int fun(int a,int b){if(a==b)return (0);elsereturn (1);}int main(void){int a[M],i,p[N];printf("请输入四位码 m1,m2,m3,m4:");scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);p[0]=fun(fun(a[0],a[1]),a[2]);p[1]=fun(fun(a[0],a[2]),a[3]);p[2]=fun(fun(a[1],a[2]),a[3]);printf("%d%d%d%d%d%d%d\n",a[0],a[1],a[2],a[3],p[0],p[1],p[2]);return 0;}1.3.3 运行结果1.3.4 结果分析·运行结果正确。
(7,4)汉明码编译码软件设计

*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期计算机通信课程设计题目:(7,4)汉明码编译码软件设计专业班级:姓名:学号:指导教师:成绩:摘要汉明码是一种能自动检错并纠正一位错码的线性纠错码,用于信道编码与译码中,高通信系统抗干扰的能力。
本次课设主要是(7,4)汉明码的编译码软件设计,该软件可以对输入的多个四位信息码进行编码,对于接收的多个七位信息码可以进行译码,从而译出四位信息位.当接收到的信息码有一位错误时,可以纠正这一位错码,进而译出正确的信息码组,整个程序使用C语言编写.关键词:汉明码、编码、译码、检错、纠错目录一、C语言简介 (1)1.1什么是C语言 (1)1.2 C语言的特点 (1)1.3 运行C程序的步骤与方法 (2)二、汉明码编码 (4)2.1汉明码编码原理 (4)2.2监督矩阵 (6)2.3生成矩阵 (7)三、汉明码纠错检错 (9)3.1 汉明距离 (9)3.2 汉明码纠错原理 (9)四、汉明码编译码的实现过程 (10)4.1编码过程 (10)4.2译码过程 (10)五、软件设计及测试分析 (12)5.1程序流程图 (12)5.1.2 编码程序流程图 (12)5.1.3 译码程序流程图 (13)5.2 软件运行分析 (15)5.2.1主程序运行分析 (15)5.2.2 编码运行分析 (17)5.2.3 译码运行分析 (18)5.3 软件分析 (19)总结 (20)参考文献 (21)附录 (22)一、C语言简介1.1什么是C语言C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
(完整版)(7,4)汉明码信道编码_共10页

E=B-A
(4.4.1)
令 S = BHT,称为伴随式或校正子。
S = B H t =(A + E) H t = E H t
(4.4.2)
上述(7,4)汉明码的伴随式与错误图样的对应关系如表2-2所示。
表2-2(7,4)汉明码 S 与 E 的对应关系
E
S
序
错误
e6 e5 e4 e3 e2 e1
号
码位
111
1
0001 011
9
1001
100
2
0010 101
10
1010
010
3
0011
110
11
1011
001
3
通信系统课程设计报告
4
0100
110
12
1100
5
0101
101
13
1101
6
0110
011
14
1110
7
0111
000
15
1111
001 010 100 111
不难看出,上述(7,4)码的最小码距 d0=3,它能纠1个错或检2个错。汉明码是能 够纠正单个错误的线性分组码,其特点是:最小码距 d0=3,码长 n 与监督位满足 n=2r-1的关系,上述的(7,4)线性分组码就是一个汉明码。
3.5 奇偶校验位
奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶 数个1的检验方式。如果在传输的过程中,有奇数个位发生了改变,那么这个错 误将被检测出来(注意奇偶位本身也可能改变)。一般来说,如果数据中包含有 奇数个1的话,则将奇偶位设定为1;反之,如果数据中有偶数个1的话,则将奇
汉明码编译码器系统仿真设计

课程设计报告题目:汉明码编译码器仿真设计学生姓名:学生学号:系别:专业:届别:指导教师:汉明码编译码器仿真设计1 课程设计任务汉明码是一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。
本次课程设计的任务就是利用Systemview 软件实现(7,4)汉明码的编译码器的仿真设计。
进一步分析该系统的性能。
2 汉明码编译码原理的研究背景在通信编码方面,其发展的速度是非常快的,而且未来的发展空间还很巨大。
20世纪40年代才开始形成编码原理。
数字通信系统是利用数字信号来传递信息的通信系统数字通信系统设计的问题很多,其中编码是数字通信系统必不可少的模块。
编码包括信源编码和信道编码,信源编码有两个基本功能:一是提高传输系统的有效性,即通过某种数据压缩技术减少码元数目和降低码元速率。
码元速率决定传输所占的带宽,而传输带宽反应了信道的有效性。
二是完成数模转换。
信道编码的目的是增强数字信号的抗干扰能力。
信道编码对传输的信息码元按一定的规则加入保护成分,组成所谓抗干扰编码。
接收端的信道译码器按相应的逆规则进行解码从中发现错误或者纠正错误,提高通信系统的可靠性。
我们把建立在数学基础上的编码称为代数码。
在代数码中常见的是线性码。
在线性码中信息位和监督位是由一些线性代数方程联系着的,或者说线性码是按照一定的线性方程构成的。
汉明码是1950年由美国贝尔实验室提出来的,是第一个设计用来纠正错误的线性分组码,从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。
最先用于磁芯存储器,60年代初用于大型计算机,70年代在MOS存储器中得到应用,后来在中小型计算机中普遍采用,随着科技的发展,现代编码理论和大规模集成电路的应用,性能优良的编译码方法不断出现而实现成本不断降低,其应用已不局限语音、图像等方面,现在更多的是扩展到计算机存储系统、磁盘,甚至在移动通信及卫星通信中得到应用,而且人们研究的不仅仅是纠正一位错码,而倾向于纠正多位错码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(7,4)汉明码编解码器的设计序言VHDL语言具有功能强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成。
近几十年来,EDA技术获得了飞速发展。
它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编译、化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作。
以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点。
随着EDA技术的深入发展基于硬件描述语言的方法将有取代传统手工设计方法的趋势。
EDA ( Elect ronics Design Automation) 技术是随着集成电路和计算机技术飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。
目前,VHDL语言已经成为EDA的关键技术之一,VHDL 是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。
汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。
它属于线性分组码,由于汉明码的抗干扰能力较强,至今仍是应用比较广泛的一类码。
本文用VHDL语言实现了(7,4)汉明码的编码和译码,并通过实例来说明利用VHDL语言实现数字系统的过程。
在介绍(7,4)汉明码编码和译码原理的基础上,设计出了(7,4)汉明码的编码器和译码器,写出了基于VHDL实现的源程序,并通过QUARTUSⅡ软件进行仿真验证。
第1章QuartusⅡ与VHDL简介1.1 QuartusⅡ软件简介QuartusⅡ是Altera公司推出的CPLD/FPGA的开发工具,QuartusⅡ提供了完全集成且与电路结构无关的开发环境,具有数字逻辑设计的全部特性。
?/P>Quartus Ⅱ设计软件提供完整的多平台设计环境,可以很轻松地满足特定设计的需要。
它是可编程片上系统(SOPC)设计的综合性环境,拥有FPGA 和CPLD设计的所有阶段的解决方案。
与其它EDA软件相比较QuartusⅡ软件的特点主要包括:1、可利用原理图、结构框图、Verilog HDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件。
2、芯片(电路)平面布局连线编辑。
3、LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。
4、功能强大的逻辑综合工具。
5、完备的电路功能仿真与时序逻辑分析。
6、定时/时序分析与关键路径延时分析。
7、可使用SignalTap Ⅱ逻辑分析工具进行嵌入式的逻辑分析。
8、支持软件源文件的添加和创建,并将它们链接起来生成编程文件。
9、使用组合编译方式可一次完成整体设计流程。
10、自动定位编译错误。
11、高效的期间编程与验证工具。
12、可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件。
13、能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
1.2 VHDL简介“VHDL设计”作为信息类专业新开出的一门重要的专业课,相对于传统课程具有内容新、发展快、应用性强等特点。
在硬件电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHDL语言则是EDA的关键技术之一。
VHDL语言具有功能强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成。
近几十年来,EDA技术获得了飞速发展。
它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编译、化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作。
以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点。
随着EDA技术的深入发展基于硬件描述语言的方法将有取代传统手工设计方法的趋势。
第2章 (7,4)汉明码的原理2.1 基本概念线性分组码是一类重要的纠错码,应用很广泛。
在(n,k)分组码中,若督元是按线性关系相加而得到的,则称其为线性分组码。
现在以(7,4)分组码为例来说明线性分组码的特点。
设其码字为A=[a6,a5,a4,a3,a2,a1,a0],其中前4位是信息元,后3位是监督元,可用下列线性方程组来描述该分组码,产生监督元:a2 = a6 + a5 + a4a1 = a6 + a5 + a3 (2.1.1)a0 = a6 + a4 + a3显然,这3个方程是线性无关的。
经计算可得(7,4)码的全部码字,如表2-1所示。
表2-1 (7,4)码的全部码字?/P>不难看出,上述(7,4)码的最小码距d0=3,它能纠1个错或检2个错。
汉明码是能够纠正单个错误的线性分组码,其特点是:最小码距d0=3,码长n与监督位满足n=2r-1的关系,上述的(7,4)线性分组码就是一个汉明码。
2.2 监督矩阵H式(2.1.1)所示(7,4)汉明码的3个监督方程改写后可用矩阵形式表示为a6a51 1 1 0 1 0 0 a4 01 1 0 1 0 1 0 · a3 = 0 (2.2.1)1 0 1 1 0 0 1 a2 0a1a0并简记为H·AT=0T 或A·HT=0(2.2.2)H称为监督矩阵,一旦H给定,信息位和监督位之间的关系也就确定了。
H矩阵可以分成2部分1 1 1 0 1 0 0H = 1 1 0 1 0 1 0 =[P Ir] (2.2.3)1 0 1 1 0 0 1H·AT=0T,可以用来作为判断接收码字A是否出错的依据。
2.3 生成矩阵G把监督方程补充完整并改写为矩阵形式a6 1 0 0 0a5 0 1 0 0a4 0 0 1 0 a6a3 = 0 0 0 1 · a5 (2.3.1)a2 1 1 1 0 a4a1 1 1 0 1 a3a0 1 0 1 1A = [a6 a5 a4 a3] ·G(2.3.2)其中1 0 0 0 1 1 10 1 0 0 1 1 0G = 0 0 1 0 1 0 1 (2.3.3)0 0 0 1 0 1 1G称为生成矩阵,由G和信息组就可以产生全部码字。
生成矩阵也可以分成2部分,即 G = [Ik Q] (2.3.4)其中 1 1 1Q = 1 1 0 = PT (2.3.5)1 0 10 1 12.4 伴随式(校正子)S设发送码组A= [an—1,an—2,…,a1,a0 ],在传输过程中可能发生误码。
接收码组B=[ bn—1,bn—2,…,b1,b0 ],收发码组之差定义为错误图样E,即E = B - A (2.4.1)令S = BHT,称为伴随式或校正子。
S = BHT =(A + E)HT = EHT (2.4.2)上述(7,4)汉明码的伴随式与错误图样的对应关系如表2-2所示。
表2-2(7,4)汉明码S与E的对应关系第3章 (7,4)汉明码编解码器的设计3.1 (7,4)汉明码的编码思路及程序设计3.1.1 (7,4)汉明码的编码思路(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。
根据式(2.3.2)A = [a6 a5 a4 a3] ·G可知,信息码与生成矩阵G的乘积就是编好以后的(7,4)汉明码,而生成矩阵G又是已知的,由式(2.3.3)得1 0 0 0 1 1 10 1 0 0 1 1 0G = 0 0 1 0 1 0 1 (3.1.1)0 0 0 1 0 1 1所以,可以得出如下方程组a6 = a6a5 = a5a4 = a4a3 = a3 (3.1.2)a2 = a6 + a5 + a4a1 = a6 + a5 + a3a0 = a6 + a4 + a3根据式(3.1.2)就可以编出编码程序了。
3.1.2 (7,4)汉明码的编码程序设计根据(7,4)汉明码的编码原理,首先画出程序设计的流程图:图3.1 编码流程图输入信息码a3a2a1a0,输出(7,4)汉明码b6b5b4b3b2b1b0。
首先,输入信息码a3a2a1a0,即使用以下语句:port(a:in std_logic_vector(3 downto 0);然后,根据式(3.1.2),就可以得到监督位与信息码之间的对应关系,使用异或运算,即:b(2)<=a(3) xor a(2) xor a(1);b(1)<=a(3) xor a(2) xor a(0);b(0)<=a(3) xor a(1) xor a(0);最后,将算好的监督位与原来输入的信息码一起输出,这样,编码程序就算完成了。
3.2 (7,4)汉明码的译码思路及程序设计3.2.1 (7,4)汉明码的译码思路(7,4)汉明码的译码就是将输入的七位汉明码翻译成四位的信息码,并且纠正其中可能出现的一个错误。
由于生成矩阵G是已知的,所以根据式(2.3.4)G = [Ik Q] ,可以得到矩阵Q的值1 1 1Q = 1 1 0 = PT (3.2.1)1 0 10 1 1那么 1 1 1 0P = 1 1 0 1 (3.2.2)1 0 1 1而监督矩阵H与PT又存在一定的关系,即H =[P Ir] (3.2.3)那么就可以算出监督矩阵H的值,即1 1 1 0 1 0 0H = 1 1 0 1 0 1 0 (3.2.4)1 0 1 1 0 0 1所以 1 1 11 1 01 0 1HT = 0 1 1 (3.2.5)1 0 00 1 00 0 1根据式(2.4.2)S = BHT =(A + E)HT = EHT可以看出校正子S与错误图样E之间有确定的线性变换关系。
而E =[ en-1,en-2,…,e1,e0 ],这样就可以算出校正子S与(7,4)汉明码各位之间的关系,即S2 = a2 + a6 + a5 + a4S1 = a1 + a6 + a5 +a3 (3.2.6)S0 = a0 + a6 + a4 + a3对照表2-2,就可以确定每一位出错时,对应的校正子s2s1s0的值。
这样,译码问题就迎刃而解了。
3.2.2 (7,4)汉明码的译码程序设计根据(7,4)汉明码的译码原理,首先画出程序设计的流程图:图3.2.1 译码流程图首先,输入7位汉明码a6a5a4a3a2a1a0,用以下语句来实现:port(a:in std_logic_vector(6 downto 0);然后,根据这7位码a6a5a4a3a2a1a0,计算校正子s2s1s0的值,根据式(3.2.6)可知校正子S与(7,4)汉明码各位之间的关系,即:ss(2):=a(6) xor a(5) xor a(4) xor a(2);ss(1):=a(6) xor a(5) xor a(3) xor a(1);ss(0):=a(6) xor a(4) xor a(3) xor a(0);第三,要判定校正子与0的关系,使用if语句,若等于0,则表示没有错误;若不为0,则表示其中有一位出错。