基于VHDL语言的(7,4)汉明码编译码的设计.doc

上传人:夏** 文档编号:559845479 上传时间:2023-02-11 格式:DOC 页数:9 大小:370.50KB
返回 下载 相关 举报
基于VHDL语言的(7,4)汉明码编译码的设计.doc_第1页
第1页 / 共9页
基于VHDL语言的(7,4)汉明码编译码的设计.doc_第2页
第2页 / 共9页
基于VHDL语言的(7,4)汉明码编译码的设计.doc_第3页
第3页 / 共9页
基于VHDL语言的(7,4)汉明码编译码的设计.doc_第4页
第4页 / 共9页
基于VHDL语言的(7,4)汉明码编译码的设计.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于VHDL语言的(7,4)汉明码编译码的设计.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言的(7,4)汉明码编译码的设计.doc(9页珍藏版)》请在金锄头文库上搜索。

1、2009级通信工程专业通信原理课程设计通信原理课程设计报告书课题名称基于VHDL语言的(7,4)汉明码编译码的设计姓 名*学 号*院 系通信与电子工程学院专 业通信工程指导教师*2011年12月30日 一、 设计任务及要求:设计任务:设计基于VHDL的(7,4)汉明码的编译码要 求:1.用VHDL语言编写(7,4)汉明码编码和译码的程序2.用Quartus 5.0来观察并分析仿真结果 指导教师签名: 2011 年 12 月 30 日 二、指导教师评语:指导教师签名: 年 月 日 三、成绩验收盖章 年 月 日 基于VHDL语言的(7,4)汉明码编译码的设计1 设计目的通过本课程设计巩固并扩展通信

2、原理课程的基本概念、基本理论、分析方法和实现方法。掌握(7,4)汉明码编码和译码的原理和设计步骤,掌握运用VHDL语言对(7,4)汉明码的编译码的设计,有效地将理论和实际紧密结合,培养自己的创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。2 设计思路通过应用硬件描述语言VHDL,编写(7,4)汉明码的编码和译码的程序,并对编译码程序进行编译和仿真分析。通过运用相关工具画出(7,4)汉明码的编译码流程图和仿真图,并对相关结果进行分析,得出结论。3 设计过程 3.1 (7,4)汉明码的编码的原理和程序设计()汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属于线性分组

3、码,由于汉明码的抗干扰能力较强,至今仍是应用比较广泛的一类码。在()汉明码中,(-)可附加的监督码元是又信息马元的线性运算产生的。码长为,信息码元长度为,个码组()构成维线性空间中的一个维子空间,编码的实质就是要在维线性空间中,找出一组为的个线性无关的矢量,使得每个码组都可以表示为个矢量的线性组合,其中, ,k-1。因此, 是带编码信息的信息组,G是一个*阶矩阵,G称为()汉明码的生成矩阵。当G确定以后,编码的问题也就解决了。根据监督码元由信息码元的线性运算产生的关系可知,监督码,满足以下关系式: (3.1-1)由式(3.1-1)可算出三位监督位,再与信息位结合,可得到(7,4)汉明码。然后根

4、据(7,4)汉明码的编码原理,画出程序设计的流程图。输出编好的(7,4)汉明码根据信息码算出监督码输入信息码结束开始 图1 (7,4)汉明码的编码流程图然后根据图1编写程序。首先,输入信息码,就可以得到监督位与信息码之间的对应关系,使用异或运算,即: (3.1-3) (3.1-3) (3.1-4)最后,将算好的监督码与原来输入的信息码一起输出,这样,编码程序就完成了。3.2 (7,4)汉明码的编码的原理和程序设计若码长为,信息位数为,监督位数为。如果希望用个监督位构造出个监督关系式来指示一位错码的种可能位置,则要求或。(7,4)汉明码中,为了纠错一位码,用表示要进行译码的码元,用 和表示监督关

5、系式的校正子,则 和的值与错码对应关系可以规定如表1所示,由表1可知,当一位错码的位置在 或时,校正子为1;否则为0。这就意味着和4个码元构成偶数监督关系: = (3.2-1)同理,和构成偶数监督关系: = (3.2-2)以及,和构成偶数监督关系: = (3.2-3)接收到每个码组之后,先按照以上三个等式计算出,再按照表1判断错码情况。例如,若接收码组为0000011,可计算出=0,=1,=1。由于等于011,可知在位有一错码,对其取反即可。表1 (7,4)汉明码校正子与错码位置的关系错码位置错码位置001101010110100111011000无错码根据(7,4)汉明码的译码原理,画出程序

6、设计的流程图如图2所示。然后根据流程图编写译码程序。首先,输入7位汉明码,然后,根据这7位汉明码计算校正子的值,可知校正子与(7,4)汉明码各位之间的关系,即: := (3.2-4) := (3.2-5) := (3.2-6)YN校正子是否为0?根据输入的码算出校正子开始根据的值,对照表1纠正出错的位输出4位信息码结束输出7位汉明码图2 (7,4)汉明码的译码流程图4 程序设计4.1 编码程序library ieee;use ieee.std_logic_1164.all;entity yihan isport(a6,a5,a4,a3:in std_logic;a2,a1,a0:buffer

7、std_logic; s:out std_logic_vector(6 downto 0);end yihan;architecture zhuyuting of yihan isbegina2=a6 xor a5 xor a4;a1=a6 xor a5 xor a3;a0=a6 xor a4 xor a3;s=a6&a5&a4&a3&a2&a1&a0;end zhuyuting;4.2 译码程序library ieee;use ieee.std_logic_1164.all;entity xuan isport(a6,a5,a4,a3,a2,a1,a0:in std_logic; s1,s2

8、,s3:buffer std_logic; z:out std_logic_vector(3 downto 0);end xuan;architecture zyt of xuan issignal s:std_logic_vector(2 downto 0);begins1=a6 xor a5 xor a4 xor a2;s2=a6 xor a5 xor a3 xor a1;s3=a6 xor a4 xor a3 xor a0;s=s1&s2&s3;z=a6&a5&a4&a3 when s=000 elsea6&a5&a4&a3 when s=001 elsea6&a5&a4&a3 when

9、 s=010 elsea6&a5&a4&a3 when s=100 elsea6&a5&a4&(not a3) when s=011 elsea6&a5&(not a4)&a3 when s=101 elsea6&(not a5)&a4&a3 when s=110 else(not a6)&a5&a4&a3 when s=111 elseXXXX;end zyt;5 设计结果及仿真5.1 编码仿真将(7,4)汉明码的编码程序用Quartus 5.0进行仿真,得波形图如图3所示。图3 (7,4)汉明码的编码波形仿真图编码文件编译之后的仿真结果与预期结果一致。比如,分析图3中第二列可知,当输入的信

10、息码=1,=0,=0,=0时,=1,=1,=1,输出码为1000111。由式3.1-1可计算出理论结果与实际结果一致。5.2 译码仿真当编好的(7,4)汉明码随机出现一位错码,再用Quartus 5.0将出错的(7,4)汉明码的译码程序进行仿真后,得波形图如图4所示。图4 (7,4)汉明码的译码波形仿真图由3.2-1、3.2-2和3.2-3可知,当输入的(7,4)汉明码为1001111时,等于011,参照表1可知,位是错码,应纠正为1000111,故输出的4位信息码应为1000,正如图4中第二列所示。经验证,图4所示结果与理论结果一致。6 设计体会与建议这次课程设计选的题目是对基于VHDL语言

11、的(7,4)汉明码编译码的设计,虽然在上通信原理课程时对(7,4)汉明码的编解方法有所了解,但在这要用EDA技术与应用中学到的QuartusII软件的VHDL语言来实现这功能还是有点困难的,设计过程中也遇到很多困难,主要是加噪声的问题,虽然结果还是不甚满意,但在老师和同学的热情帮助下基本解决了。通过这次对基于VHDL语言的(7,4)汉明码编译码的设计,终于领会了(7,4)汉明码的编译码的原理、方法和本次课程设计需要实现的基于VHDL的汉明码的编译码方案,同时也学会了科学地分析实际问题,通过查资料、分析资料及请教老师和同学等多种途径,独立解决问题。参考文献1江国强.EDA技术与应用.北京:电子工业出版社,2010年4月2樊昌信 曹丽娜.通信原理.北京:国防工业出版社,2011年2

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

当前位置:首页 > 生活休闲 > 社会民生

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