基于VHDL的(7,4)汉明码编解码器的设计
通信原理设计报告(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)码是一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。
基于vhdl(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)汉明码的编译码分析与实验研究摘要汉明码(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 ;引言汉明码是最早提出来的用于纠错的编码,它是一类可以纠正一位错误的高效的线性分组码。
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)汉明码信道编码_共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的话,则将奇
(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 问题的提出在上学期的通信原理课程中,我们学习了线性码的基本理论知识。
基于FPGA汉明码编译码器设计
基于FPGA汉明码编译码器设计汉明码是一种能够检测和纠正错误的编码方式。
在FPGA(Field Programmable Gate Array)中,我们可以使用FPGA来设计并实现一个基于(7,4)汉明码的编码器和解码器。
1.编码器设计:编码器将4位数据编码为7位汉明码。
下面是一个基于FPGA的(7,4)汉明码编码器的设计步骤:-设置一个4位输入端口和一个7位输出端口。
-创建一个4×7的矩阵,用于存储所有可能输入与对应汉明码的关系。
每行代表一个输入,每列代表一个汉明码位。
-在FPGA中,使用逻辑门(如XOR门和AND门)来实现矩阵的功能。
根据矩阵,依次设计逻辑门电路来计算每个汉明码位。
例如,对于第一个汉明码位,使用四个输入位的异或门计算出结果。
-将每个汉明码位的结果输出到对应的输出端口。
2.解码器设计:解码器将7位汉明码解码为4位数据。
下面是一个基于FPGA的(7,4)汉明码解码器的设计步骤:-设置一个7位输入端口和一个4位输出端口。
-创建一个7×4的矩阵,用于存储所有可能的汉明码与对应的输出数据的关系。
每行代表一个汉明码,每列代表一个输出数据位。
-同样,使用逻辑门来实现矩阵的功能。
根据矩阵,依次设计逻辑门电路来计算每个输出数据位。
例如,对于第一个数据位,使用七个输入位的与门计算出结果。
-将每个输出数据位的结果输出到对应的输出端口。
3.性能分析和优化:可以通过FPGA的资源利用率和时钟频率等指标对设计进行性能评估。
通过仔细设计逻辑电路,合理分配资源和优化电路,可以提高编码器和解码器的性能。
可以考虑使用并行计算、流水线等技术来提高时钟频率和减少时延。
另外,还可以在FPGA中使用多个编码器和解码器来实现更高级的错误检测和纠正功能。
可以考虑使用更高级的汉明码,如(15,11)汉明码或(31,26)汉明码,来提高错误检测和纠正能力。
可以结合其他编码技术,如校验和,奇偶校验等,来增加冗余度和提高系统的可靠性。
单片机实现(7,4)汉明码的编码毕业设计
单片机实现(7,4)汉明码的编码摘要在当今和未来的信息化社会中,数字通信已成为信息传输的重要手段,全球数字化已成为当今世界的主要潮流。
但是,数字信号在传输过程中,加性噪声,码间串扰等都会产生误码,因此需要用信道编码来降低误码率,提高数字通信的可靠性。
随着差错控制编码技术的蓬勃发展,作为信道传输过程抗干扰的有效手段,其中较为成熟的编码方法如汉明码、奇偶校验码、循环冗余码等编码技术,被广泛应用于计算机、电子通信、控制等领域。
其中汉明码是一种能够纠正一位错误且编码效率较高的线性分组码。
由于它的编译码在工程上较易实现,所以应用广泛。
与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。
利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。
在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。
通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。
但这种方法比简单重传协议的成本要高。
汉明码利用奇偶块机制降低了前向纠错的成本。
软件实现下面给出基于最常用的MCS-51单片机汇编语言的汉明码测试程序。
它的有效信息占到了总编码长度的70%,测试程序中自动生成11个字节的原始数据。
原始数据块的长度、存放地址可根据实际情况由用户自己确定,只要将本测试程序的汉明码编码、解码子程序嵌入用户应用程序中,就可直接使用。
本课题就是研究利用C8051F系列单片机来实现(7,4)汉明码的编码。
关键词:单片机;线性分组码;(7,4)汉明码C8051F series MCU(7,4)hamming code encodingABSTRACTIn today's and future information society, digital communication has become an important means of information transmission, the global digital has become a major trend in today's world. However, the digital signal in the transmission process, the additive noise, intersymbol interference, and this will result in error, channel coding, therefore need to reduce the error rate and improve the reliability of digital communications. With the error control coding techniques flourished as the transmission channel interference and effective means by which the more mature coding methods, such as Hamming codes, parity bits, cyclic redundancy code and other coding techniques are widely used in computers, electronics communication, control and other fields. Hamming code which is able to correct a mistake and the code more efficient linear block codes. Encoding and decoding in the project because of its easier to achieve, so widely used. With other similar error check code, Hamming code parity bit also use the concept, followed by an increase in the number of bits of data bits, the validity of data can be verified. Use more than one parity bit, Hamming codes can not only verify the data is valid, but also in the caseof data error location specified in the error. By error correction decoding in a receiver automatically correct the transmission errors to achieve error correction code, known as forward error correction FEC. There are a lot of data-link noise, FEC can increase data throughput. Transmission code in the column by adding redundant bits (also known as error correction bits) can be achieved FEC. However, this method than a simple retransmission protocol to the high cost. Hamming code parity block mechanism reduces the use of forward error correction costs. Software are given below based on the most popular MCS-51 microcontroller Hamming code assembly language test program. It accounts for effective information length of 70% of the total coding and testing program automatically generates 11 bytes of raw data. The length of the original data block, or hold the actual situation according to the user to determine if the Hamming code of the test program encoding and decoding routines embedded in user applications, can be used directly.This topic is to study the use of C8051F MCU to achieve (7,4) hamming code encoding.Keywords:MCU;linear block codes; (7,4) hamming code目录第1章绪论 (1)第2章实验的软硬件环境 (2)2.1 VHDL语言的概述 (2)2.1.1 VHDL语言的发展历史 (2)2.1.2 VHDL语言的特点 (2)2.1.3 VHDL语言的开发流程 (3)2.1.4 VHDL的程序结构 (5)2.1.5 逻辑芯片的分类 (5)2.2 MAX+plusⅡ的使用 (9)第3章基于CPLD的PCM解码电路的设计 (12)3.1 PCM的概述 (13)3.2 解调PCM码的基本原理 (18)3.2.1 位同步的实现 ..................................................................错误!未定义书签。
(7,4)汉明码编译码系统CPLD实现
课程设计报告题目:(7,4)汉明码编译码系统CPLD实现系(部):专业:班级:姓名:年月日(7,4)汉明码编译码系统CPLD实现一.设计目的通过本课程设计巩固并扩展通信原理课程的基本概念、基本理论、分析方法和实现方法。
结合EDA技术、数字通信技术和微电子技术,学习现代数字通信系统的建模和设计方法,使学生能有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。
二.设计要求⑴熟悉数字电路设计的一般方法,熟练地运用通信理论,进行数字基带信号、数字信号频带传输系统设计,掌握对数字基带信号的处理方法,并进行通信系统建模。
⑵熟悉和掌握MAXPLUSⅡ软件的使用,按设计要求进行建模;⑶设计完成后,按学校规范统一书写格式撰写课程设计报告一份,包括:设计目的、设计要求、逻辑分析、设计总体电路、模块设计、模块程序(含对程序的说明)、仿真波形、实验结果分析、心得体会(不少于500字)、参考文献(不少于5篇)等。
三.逻辑分析线性分组码是一种很重要的纠错码,应用很广泛。
在(n,k)分组码种,若监督码元是按线性关系模2相加而得到的,则称其为线性分组码。
循环码是采用循环移位特性界定的一类线性分组码。
如果一个线性分组码的任意一个码字都是另外一个码字的循环移位,那么称此线性分组码为一个循环码。
而本次课程设计要求采用新型数字系统设计的方法实现(7,4)汉明码。
汉明码是差错控制编码中最主要、最常用的一种。
它有很强的纠错能力,所以普遍应用于各种实际的差错控制系统。
要求用CPLD实现(7,4)汉明码编码解码的方法,可以采用原理图或VHDL编程输入的方式。
(7,4)汉明码的编码就是将输入的4位信息码加上3位监督码从而编成7位汉明码输出。
监督位的生成如下: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);(7,4)汉明码的译码就是将输入的7位汉明码译为4位信息码,并且根据得到的校正子纠正编码过程中可能出现的1位错码。
(,)汉明码编解码器的设计
(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)汉明码编译码系统CPLD实现系(部):电子信息工程学院专业:电子信息工程班级:姓名:学号:2011 年5 月29 日1[设计目的]通过本课程设计巩固并扩展通信原理课程的基本概念、基本理论、分析方法和实现方法。
结合EDA技术、数字通信技术和微电子技术,学习现代数字通信系统的建模和设计方法,使学生能有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。
⑴熟悉数字电路设计的一般方法,熟练地运用通信理论,进行数字基带信号、数字信号频带传输系统设计,掌握对数字基带信号的处理方法,并进行通信系统建模。
⑵熟悉和掌握QUARTUS软件的使用,按设计要求进行建模;⑶设计完成后,按学校规范统一书写格式撰写课程设计报告一份,包括:设计目的、设计要求、逻辑分析、设计总体电路、模块设计、模块程序(含对程序的说明)、仿真波形、实验结果分析、心得体会(不少于500字)、参考文献(不少于5篇)等。
3. [逻辑分析](7,4)汉明码的编码思路分析(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。
根据式(2.2.0)A = [a6 a5a4a3] ·G可知,信息码与生成矩阵G的乘积就是编好以后的(7,4)汉明码,而生成矩阵G又是已知的,由式(1.1.9)得1 0 0 0 1 1 1G = 0 1 0 0 1 1 00 0 1 0 1 0 10 0 0 1 0 1 1所以,可以得出如下方程组a6 = a6a5 = a5a4 = a4a3 = a3a2 = a6+ a5+ a4a1 = a6+ a5+ a3a0 = a6+ a4+ a3根据上式就可以编出编码程序了。
2. [设计要求](7,4)汉明码的编码程序设计根据(7,4)汉明码的编码原理,首先画出程序设计的流程图:编码流程图输入信息码a 3a 2a 1a 0,输出(7,4)汉明码b 6b 5b 4b 3b 2b 1b 0。
(完整版)(7,4)汉明码编译码程序说明
(7,4)汉明码编译码原理程序说明书1、线性分组码假设信源输出为一系列二进制数字0和1.在分组码中,这些二进制信息序列分成固定长度的消息分组(message blocks )。
每个消息分组记为u ,由k 个信息位组成。
因此共有2k 种不同的消息。
编码器按照一定的规则将输入的消息u 转换为二进制n 维向量v ,这里n>k 。
此n 维向量v 就叫做消息u 的码字(codeword )或码向量(code vector )。
因此,对应于2k 种不同的消息,也有2k 种码字。
这2k 个码字的集合就叫一个分组码(block code )。
一个长度为n ,有2k 个码字的分组码,当且仅当其2k 个码字构成域GF (2)上所有n维向量空间的一个k 维子空间时被称为线性(linear )(n ,k )码。
对于线性分组码,希望它具有相应的系统结构(systematic structure ),其码字可分为消息部分和冗余校验部分两个部分。
消息部分由k 个未经改变的原始信息位构成,冗余校验部分则是n-k 个奇偶校验位(parity-check )位,这些位是信息位的线性和(linear sums )。
具有这样的结构的线性分组码被称为线性系统分组码(linear systematic block code )。
本实验以(7,4)汉明码的编译码来具体说明线性系统分组码的特性。
其主要参数如下:码长:21mn =-信息位:21mk m =-- 校验位:m n k =-,且3m ≥ 最小距离:min 03d d ==由于一个(n ,k )的线性码C 是所有二进制n 维向量组成的向量空间n V 的一个k 维子空间,则可以找到k 个线性独立的码字,0,1,1k g g g -…… ,使得C 中的每个码字v 都是这k 个码字的一种线性组合。
(7,4)汉明码的生成矩阵如下,前三位为冗余校验部分,后四位为消息部分。
0123 1 1 0 1 0 0 00 1 1 0 1 0 01 1 1 0 0 1 01 0 1 0 0 0 1g g G g g ⎧⎫⎧⎫⎪⎪⎪⎪⎪⎪⎪⎪==⎨⎬⎨⎬⎪⎪⎪⎪⎪⎪⎪⎪⎩⎭⎩⎭如果()0123u u u u u =是待编码的消息序列,则相应的码字可如下给出:()0101230011223323g g v u G u u u u u g u g u g u g g g ⎧⎫⎪⎪⎪⎪===+++⎨⎬⎪⎪⎪⎪⎩⎭编码结构即码字()0123456v v v v v v v v =,对于(7,4)线性分组码汉明码而言,3456,,,v v v v 为所提供的消息序列,而0356v v v v =⊕⊕,1345v v v v =⊕⊕,2456v v v v =⊕⊕。
基于VHDL语言的汉明码编译器设计
基于VHDL 语言的(7,4)汉明码编译码的设计1、设计目的熟悉掌握汉明码的重要公式和基本概念。
进一步掌握(7,4)汉明码的编码和译码的原理和设计步骤。
学会应用流程图来表示设计实体的具体运行步骤。
掌握运用VHDL 语言对(7,4)汉明码的编译码的设计。
2、设计要求通过应用硬件描述语言VHDL ,编写出(7,4)汉明码的编码和译码的程序,并对编译码程序进行编译和仿真分析,计算出信号误码率和汉明码的编码效率。
通过运用相关工具画出(7,4)汉明码的编译码流程图和仿真图,并对相关结果进行分析,得出结论。
3、设计步骤3.1 (7,4)汉明码的编码原理和程序设计汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。
它属于线性分组码,由于汉明码的抗干扰能力较强,至今仍是应用比较广泛的一类码。
在(n ,k)汉明码中,(n-k)个附加的监督码元是由信息码元的线性运算产生的。
码长为n,信息码元长度为k ,2k 个码组构成n 维线性空间中的一个k 维子空间,编码的实质就是要在n 维空间中,找出一组长为n 的k 个线性无关的矢量,使得每个码组a 都可以表示为k 个矢量的线性组合,其中,a i ∈{0,1},i=0,1,… ,k-1。
由此,[an-1 an-2 … a0]是带编码信息的信息组,G 是一个k*n 阶矩阵,G 称为(n,k)汉明码的生成矩阵。
当G 确定以后,编码的问题也就解决了。
根据监督码元是有信息码元的线性运算产生的关系可知,监督码(a0,a1,a2)满足以下关系式:34601356124562a a a a s a a a a s a a a a s ⊕⊕⊕=⊕⊕⊕=⊕⊕⊕= …… (3.1.1) 即可算出三位监督位,再与信息位结合,可得到(7,4)汉明码。
然后根据(7,4)汉明码的编码编码原理,画出程序设计的流程图:图3.1.1 编码流程图然后根据流程图进行编写程序。
首先,输入信息码a6a5a4a3,即使用语句:port(a:in std_logic_vector(6 downto 3)就可以得到监督位与信息码之间的对应关系,使用异或运算,即:a(2)<=a(6) xor a(5) xor a(4); ……(3.1.2)a(1)<=a(6) xor a(5) xor a(3); ……(3.1.3)a(0)<=a(6) xor a(4) xor a(3); ……(3.1.4) 最后,将算好的监督位与原来输入的信息码一起输出,这样,编码程序就完成。
基于VHDL汉明码编译码器的设计与实现毕业论文
基于VHDL汉明码编译码器的设计与实现目录摘要 1第一章绪论 31.1研究背景与选题意义 31.2研究目标与主要工作 31.3论文的内容安排 4第二章汉明码及汉明码编译原理 42.1 纠错编码的基本原理 42.1.1 分组码基本原理 42.1.2分组码的码重和码距 52.2 汉明码编译原理 8第三章 VHDL语言与集成环境 103.1 EDA概念 103.2 Max+pluxII简介 113.3 VHDL语言 123.3.1基本介绍 123.3.2 VHDL语言设计的特点 123.3.3 VHDL语言优势 13第四章汉明码编译系统模块设计与实现 14 4.1 汉明码编译原理设计 144.2 系统模块设计 144.2.1 16位比特序列产生与分组模块 144.2.2 编码模块 164.3.3 加错模块 164.3.4 译码与分组模块 17第五章系统仿真、调试和结果分析 185.1 16位序列产生与分组模块仿真 185.1.1仿真图 185.1.2 结果分析 195.2 编码模块仿真 195.2.1仿真图 195.2.2 结果分析 195.3 加错模块 195.3.1仿真图 195.3.2 结果分析 205.4 译码与分组串行模块仿真 205.4.2 结果分析 205.5 系统仿真 205.5.1 顶层图 205.5.3 结果分析 25第六章总结 25参考文献 26附录程序: 28摘要在通信系统中,要提高信息传输的有效性,我们将信源的输出经过信源编码用较少的符号来表达信源消息,这些符号的冗余度很小,效率很高,但对噪声干扰的抵抗能力很弱。
为了提高信息传输的准确性,我们引进了差错控制技术。
而该技术采用可靠的,有效的信道编码方法来实现的。
纠错码是一种差错控制技术,目前已广泛应用于各种通信系统和计算机系统中,纠错编码主要用于数字系统的差错控制,对于保证通信、存储、媒体播放和信息转移等数字传递过程的质量有着重要意义,是通信、信息类科知识结构中不可缺少的一部分。
(7,4)汉明码编译码系统CPLD实现
课程设计报告题目:(7,4)汉明码编译码系统CPLD实现系(部):专业:班级:姓名:年月日(7,4)汉明码编译码系统CPLD实现一.设计目的通过本课程设计巩固并扩展通信原理课程的基本概念、基本理论、分析方法和实现方法。
结合EDA技术、数字通信技术和微电子技术,学习现代数字通信系统的建模和设计方法,使学生能有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。
二.设计要求⑴熟悉数字电路设计的一般方法,熟练地运用通信理论,进行数字基带信号、数字信号频带传输系统设计,掌握对数字基带信号的处理方法,并进行通信系统建模。
⑵熟悉和掌握MAXPLUSⅡ软件的使用,按设计要求进行建模;⑶设计完成后,按学校规范统一书写格式撰写课程设计报告一份,包括:设计目的、设计要求、逻辑分析、设计总体电路、模块设计、模块程序(含对程序的说明)、仿真波形、实验结果分析、心得体会(不少于500字)、参考文献(不少于5篇)等。
三.逻辑分析线性分组码是一种很重要的纠错码,应用很广泛。
在(n,k)分组码种,若监督码元是按线性关系模2相加而得到的,则称其为线性分组码。
循环码是采用循环移位特性界定的一类线性分组码。
如果一个线性分组码的任意一个码字都是另外一个码字的循环移位,那么称此线性分组码为一个循环码。
而本次课程设计要求采用新型数字系统设计的方法实现(7,4)汉明码。
汉明码是差错控制编码中最主要、最常用的一种。
它有很强的纠错能力,所以普遍应用于各种实际的差错控制系统。
要求用CPLD实现(7,4)汉明码编码解码的方法,可以采用原理图或VHDL编程输入的方式。
(7,4)汉明码的编码就是将输入的4位信息码加上3位监督码从而编成7位汉明码输出。
监督位的生成如下: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);(7,4)汉明码的译码就是将输入的7位汉明码译为4位信息码,并且根据得到的校正子纠正编码过程中可能出现的1位错码。
基于FPGA和VHDL的汉明码编解码器设计
3.1 海明码编码基本原理 ·······························································································5
目录
摘 要·············································································································· I
Abstract ·············································································································II
如果一个分组码的数据位长度为k校验位长度为r总的编码长度为kr则总的可以编码的合法码字的个数为2k总的码字个数为2n可以看出检验位的长度越长合法码字所占的比例就越小如果这些码字能够尽可能地在所有的码字中均匀分布的话合法码字之间的最小海明码距就越大编码的抗干扰能力也就越强因此设计编码方法的最重要的任务就是尽量使合法码字尽可能地均匀分差错控制编码在通信电子系统中得到广泛应用其中一类重要的差错控制编码是线性分组码线性分组码中信息位和监督位通过代数方程相联系
5.3.1 测试预期情况 ······················································································································14 5.3.2 实际硬件测试情况 ··············································································································15
(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语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
基于FPGA(7,4)汉明码编译码器设计
本科毕业论文院系信息科学与工程学院专业通信工程题目基于FPGA的(7,4)汉明码编译码器设计年级11 学号2011020400021 学生姓名胡帅指导老师陈珍职称讲师论文提交日期2015. 04. 22南京大学金陵学院毕业设计(论文)作者: 胡帅学号:2011020400021 系部: 信息科学与工程学院专业: 通信工程题目: 基于FPGA的(7,4)汉明码编译码器设计指导老师提交日期2010年4月22日摘要数字信号在信道中传输的过程中,由于受到正态分布白噪声等干扰信号影响,马元将会遭到破坏,称这种现象为码间干扰。
码间干扰可由乘性干扰和加性干扰引起。
乘性干扰可以采用均衡的办法纠正,而加性干扰则需要采用差错编码的方法解决。
差错控制编码又称为纠错编码[1]。
线性分组码就是纠错编码的一种,而汉明码又是一种可以纠错一位错码的典型的线性分组码。
本文用Verilog语言实现了基于FPGA的(7,4)汉明码码的编译码器。
首先介绍了本次实验需要用到的软件以及硬件、简单复习了Verilog语法知识与数字电路有关知识。
然后进行详细地阐述汉明码的编码和译码的基本原理,在此期间加入了按键去抖、伪随机信号发生器、8位8段数码管控制等模块。
最后在此基础上设计出了基于FPGA的(7,4)汉明码的编译码器,编写出了基于Verilog实现编译码功能的源程序,并且通过Xilin ISE的仿真。
关键词:(7,4)汉明码; Verilog; FPGA; Xilin ISEABSTRACTIn the process of digital signal transferring between signal channel ,code elements will be destructed since some interference signal such as white noise, ect. we call this phenomenon intersymbol interference. Intersymbol interference can be caused by multiplicative and additive interference.Multiplicative interference can be corrected by using balancing approach, but you need to use the error coding solutions to solve additive interference.Error control coding, also known as error correction coding. Is a linear block code error correction coding, and Hamming code is a way to correcting an error code of typical linear block code.This thesis has finished the encode and decode of the ()Hamming code by using V erilog programming language. First, introduced the software and hardware in this experiment. After a simple review of the verilog syntax knowledge and knowledge of digital circuits. encoding and decoding fundamentals of the Hamming code and digital circuits. On this basis, Then I has elaborated the basic principles of Hamming encoding and decoding . In the meantime, I has joined the None Jitter Keys、Pseudo Random Signal Generator and 8 8 segment LED control module.Finally Ihas wrote the source code which can realize the encoding and decoding functions based on by the Field Programmable Gate Array (FPGA) by V erilog programming language and succeed in emulating on the Xilinx ISE Desgin Suite. Keywords:the (7,4) Hamming code;V erilog programming language;the Field Programmable Gate Array (FPGA);Xilinx ISE Desgin Suite目录摘要 (i)ABSTRACT (ii)目录 (iii)第一章绪论 (1)1.1 引言 (1)第二章实验软件与硬件简介 (2)2.1 Xilinx ISE简介 (2)2.1.1 Xilinx ISE简介 (2)2.1.2 Xilinx ISim Simulatior 简介 (2)2.2 QuartusⅡ简介 (2)2.3 V5核心板简介 (2)图2-3数码管电路 (4)第三章 Verilog HDL编程基础知识 (5)3.1 Verilog HDL简介 (5)3.2 Verilog HDL语法知识 (5)3.2.1 常量、reg型和wire型变量 (5)3.2.2 赋值语句 (6)3.2.3 测试文件与连接文件 (6)第四章汉明码 (8)4.1 汉明码编码原理 (8)4.2 汉明码译码原理 (10)第五章(7,4)汉明码的设计与仿真 (12)5.1 (7,4)汉明码编译码器顶层文件 (12)5.1.1 (7,4)汉明码编译码器顶层文件 (12)5.1.2 (7,4)汉明码编译码器设计原理图 (13)5.1.3 连接文件的仿真图 (14)5.2 分频模块 (15)5.2.1 分频原理 (15)5.2.2 分频器流程图 (16)5.2.3 1Hz与1kHz分频模块仿真波形 (16)5.4 按键去抖模块 (17)5.4.1 按键去抖原理 (17)5.4.2 按键去抖模块流程图 (19)5.4.3 按键去抖模块仿真波形 (19)5.5 伪随机信号发生器 (20)5.5.1 伪随机信号发生器原理 (20)5.5.2 伪随机信号发生器设计流程图 (22)5.5.3 伪随机信号发生器仿真 (22)图5-17编码器和译码器使能端仿真波形 (23)5.6 (7,4)汉明码编码器 (23)5.6.1 (7,4)汉明码编码器原理 (23)5.6.2 (7,4)汉明码编码器流程图 (24)5.6.3 (7,4)汉明码编码器的仿真图 (24)5.7 (7,4)汉明码译码器 (25)5.7.1 (7,4)汉明码译码器设计原理 (25)5.7.2 (7,4)汉明码译码器设计流程图 (26)5.7.3 (7,4)汉明码译码器的仿真图 (27)第六章 FPGA实现 (29)6.1 实验截图 (29)结束语 (31)致谢 (32)参考文献 (33)附录X (34)第一章绪论1.1 引言当代电子产品在系统设计及实现形式上与传统电子产品设计方法及实现形式有很大不同,例如:电子设计自动化(EDA)、基于CPU的实现技术、基于专用集成电路(ASIC)的实现技术。
基于VHDL的汉明码编解码器实现
基于VHDL的汉明码编解码器实现孙志雄;谢海霞【期刊名称】《微型机与应用》【年(卷),期】2014(000)024【摘要】介绍了汉明码的原理,分析了汉明码编码、解码电路设计思路。
利用VHDL 语言设计(7,4)汉明码编解码器并通过 Quartus II 仿真平台进行仿真验证,最后下载到 FPGA 芯片EP1K30QC208-2实现了汉明码编解码电路。
仿真及实验结果证明,该方法实现的汉明码编解码电路方案正确,并具有速度快、修改方便、可移植性好等优点。
%This paper introduces the principle of Hamming code and the ideas on designing Hamming code encoder and decoder. After designing and simulating the Hamming code(7,4) with VHDL language on Quartus II, the programming data files are downloaded to implement the design of Hamming code(7,4) encoder and decoder with FPGA chip EP1K30QC208-2 at the last. The simulation and experiment results show that using this method to achieve the Hamming code encoder and decoder is Correct, and with advantages of fast speed, convenient to modify and better portability.【总页数】4页(P72-74,77)【作者】孙志雄;谢海霞【作者单位】琼州学院电子信息工程学院,海南三亚 572022;琼州学院电子信息工程学院,海南三亚 572022【正文语种】中文【中图分类】TN911.22【相关文献】1.基于VHDL语言的汉明码编码器和译码器的设计 [J], 刘燎原2.基于FPGA的通用RS编解码器的VHDL设计方法 [J], 梁炜新;王群生;牟刚3.基于FPGA的汉明码扩频串行通信的实现 [J], 温建飞;岳凤英4.扩展汉明码的编解码器设计及其FPGA实现 [J], 王爱珍5.基于VHDL语言的卷积码编解码器的设计 [J], 张建斌因版权原因,仅展示原文概要,查看原文内容请购买。
- 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,则表示其中有一位出错。