通信原理设计报告(7_4)汉明码的编解码设计
(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)码是一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。
二元(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 ;引言汉明码是最早提出来的用于纠错的编码,它是一类可以纠正一位错误的高效的线性分组码。
(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的话,则将奇
通信原理实验报告汉明编译码系统自行设计实验附加同步位实验
汉明编译码系统自行设计实验一、 实验原理差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。
汉明码(7,4)是一种纠错码,是能纠正单个错误的线性分组码。
它有以下特点:码长n=2m -1 最小码距d=3 信息码位 k=2n -m -1纠错能力t=1监督码位r=n -k这里m 位≥2的正整数,给定m 后,既可构造出具体的汉明码(n ,k )。
汉明码的监督矩阵有n 列m 行,它的n 列分别由除了全0之外的m 位码组构成,每个码组只在某列中出现一次。
系统中的监督矩阵如下图所示:1110100H=01110101101001其相应的生成矩阵为:1000101010011100101100001011G=汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。
图9.1和图9.2给出汉明编码器和译码器电原理图。
a 6 a 5 a 4 a 3 a 2 a 1 a 0a 6 a 5 a 4 a 3图9.1汉明编码器电原理图●●●●●●●●●a 6 a 5 a 4 a 3a 6 a 5 a 4 a 3 a 3 a 3 a 3图9.2汉明译码器电原理图3-8译码器校正子生成错码 指示765432 1● ●● ● ●●●●表1.1 (7,4)汉明编码输入数据与监督码元生成表4位信息位 a 6, a 5, a 4, a 3 3位监督码元 a 2, a 1, a 04位信息位 a 6, a 5, a 4, a 3 3位监督码元a 2, a 1, a 00000 000 1000 101 0001 011 1001 110 0010 110 1010 011 0011 101 1011 000 0100 111 1100 010 0101 100 1101 001 0110 001 1110 100 01110101111111表1.1为(7,4)汉明编码输入数据与监督码元生成表。
通信报告-汉明码编译码
自主设计实验二.汉明码编译码121180165赵博睿一.实验原理汉明码是差错控制编码的一种,是一种线性分组码,可以纠一位错,利用监督位和信息位的线性方程关系实现监督。
满足n=k+r,n=2^r-1的关系,本次实验采用的是(7,4)汉明码。
二.设计思路本次实验可以分为6个模块:m序列产生模块、汉明编码模块、编码输出模块、信道加错模块、接收译码模块、译码输出模块。
1.m序列产生模块:上次实验做过,因此不赘述设计思路;2.汉明码编码模块:需要将m序列缓冲到一个寄存器中进行汉明编码,编码方法由生成矩阵G决定,需要将编码数据放入到另一个寄存器中。
3.编码输出模块:将寄存器中编好的数据输出,需要另一个寄存器进行并行存储到串行输出的转换,并且需要一个同步计数器跟踪串行输出的首位。
4.信道加错模块:需要一个计数器来进行固定频率的加错,需要一个寄存器进行汉明码串行输出到并行存储的转换。
5.译码输出模块:将加错后的汉明码进行纠错译码并且输出,需要一个同步信号查找首位,需要一个寄存器进行译码,需要一个寄存器进行译码后数据并行存储到串行输出的转换。
从技术层面来讲,需要三种技术:同步技术、串/并行转换技术、编译码技术。
三.Verilog代码module hanmingma(clk,mout,hout,tout);input clk;//晶振clk信号//output reg mout;//m序列输出//output reg hout;//汉明码输出//reg mclk;//m序列clk//reg hclk;//汉明码clk//reg [3:0] mreg;//m序列寄存器//reg [6:0] hreg;//用来汉明码编码的汉明码寄存器//reg [6:0] hreg2;//用来输出的汉明码寄存器//reg [6:0] rereg;//接收端汉明码寄存器//reg [3:0] m;//m序列产生寄存器//reg [7:0] count1;//mclk计数器//reg [7:0] count2;//hclk计数器//reg [1:0] mcount;//m序列同步计数器//reg [2:0] hcount;//汉明码同步计数器//reg [6:0] ecount;//加错计数器//reg [3:0] rem;//用来译码的译码m序列寄存器//output reg tout;//译码输出//reg [3:0 ]rem2;//用来输出的译码m序列寄存器//reg[2:0] tcount;//译码输出同步计数器//reg [2:0] a1;//接收端同步寄存器1//reg[2:0] a2;//接收端同步寄存器2//reg [3:0] acount;//接收端同步计数器//always @(posedge clk)beginif(count1==223)//分频产生32khz时钟信号mclk// beginmclk<=~mclk;count1<=0;endelsecount1<=count1+1;if(count2==127)//分频产生56khz的时钟信号hclk// beginhclk<=~hclk;count2<=0;endelsecount2<=count2+1;endalways @(posedge mclk)//产生m序列并且输出到mout// beginif(m==0)m=1;elsebeginm[0]<=m[0]^m[3];m[1]<=m[0];m[2]<=m[1];m[3]<=m[2];mout<=m[3];endendalways @(posedge mclk)//将mout输入到mreg寄存器中并且计数,每当存入4个数据时进行汉明码编码并存储到hreg寄存器中,并且重新开始计数//beginmreg[3:1]<=mreg[2:0];mreg[0]<=mout;if(mcount==2)beginhreg[6:3]<=mreg[3:0];hreg[2]<=mreg[3]^mreg[2]^mreg[1];hreg[1]<=mreg[1]^mreg[2]^mreg[0];hreg[0]<=mreg[3]^mreg[0]^mreg[2];mcount<=mcount+1;endelsemcount<=mcount+1;endalways @(posedge hclk)//将hreg中的汉明码存入hreg2中用以输出,hreg2中的最高位输出到hout并且进行移位,同时进行计数,输出7个数据之后重新将hreg中的数据存入hreg2中并且重复上述输出过程//beginhout<=hreg2[6];hreg2[6:1]<=hreg2[5:0];if(hcount==6)beginhreg2<=hreg;hcount<=0;endelsehcount<=hcount+1;endalways @(posedge hclk)//模拟加错信道,将hout输入到接收端汉明码寄存器,并将接收端寄存器数据移位,同时进行错码周期计数,当传输18个数据时,将当前数据取反输入给接收端//beginrereg[6:1]<=rereg[5:0];if(ecount==17)beginrereg[0]<=~hout;ecount<=0;endelsebeginrereg[0]<=hout;ecount<=ecount+1;endendalways @(posedge hclk)//进行接收端汉明码首位寻址,若两个同步监督寄存器中有一个为0,即连续两个7位序列中有一个无错误,视为同步成功,将同步计数器归0,否则同步计数器数值不变,继续寻找满足条件的首位//beginif(acount==6)beginif(a2==0||a1==0)acount<=0;elseacount<=6;endelseacount<=acount+1;endalways @(posedge hclk)//接收端纠错译码和监督,寻找首位时进行同步监督,并将同步监督寄存器1值赋给同步监督寄存器2,以实现监督连续两组汉明码的目的,与上一个模块共同作用保证同步,并同时进行纠错译码,将译码后的结果放到译码m序列寄存器中// beginif(acount==6)begina1[2]<=rereg[6]^rereg[5]^rereg[4]^rereg[2];a1[1]<=rereg[5]^rereg[4]^rereg[3]^rereg[1];a1[0]<=rereg[6]^rereg[5]^rereg[3]^rereg[0];a2<=a1;rem[3]<=((~(rereg[5]^rereg[3]^rereg[4]^rereg[1]))&(rereg[6] ^rereg[5]^rereg[3]^rereg[0])&(rereg[6]^rereg[5]^rereg[4]^re reg[2]))^rereg[6];rem[2]<=((rereg[5]^rereg[3]^rereg[4]^rereg[1])&(rereg[6]^re reg[5]^rereg[3]^rereg[0])&(rereg[6]^rereg[5]^rereg[4]^rereg [2]))^rereg[5];rem[1]<=((rereg[5]^rereg[3]^rereg[4]^rereg[1])&(~(rereg[6] ^rereg[5]^rereg[3]^rereg[0]))&(rereg[6]^rereg[5]^rereg[4]^r ereg[2]))^rereg[4];rem[0]<=((rereg[5]^rereg[3]^rereg[4]^rereg[1])&(rereg[6]^re reg[5]^rereg[3]^rereg[0])&(~(rereg[6]^rereg[5]^rereg[4]^rer eg[2])))^rereg[3];endendalways @(posedge mclk)//译码后的m序列输出,将译码m序列寄存器中的数据存入rem2中,rem2中最高位输出到tout并进行移位,并同时进行计数,输出4个数据后将m序列寄存器中的数据再次存入rem2中,重复上述输出过程//begintout<=rem2[3];rem2[3:1]<=rem2[2:0];if(tcount==3)beginrem2<=rem;tcount<=0;endelsetcount<=tcount+1;endendmodule四.实验结果分析1.程序仿真结果分析:图1.汉明码编码仿真分析:图中的hout为..1110100 1011000 0010110 0011101.., 经查表(此表格在报告最后附录给出)可知分为别1110,1011,0010,0011的汉明码编码,而1110-1011-0010-0011也符合mout的输出,所以这个仿真结果表明编码成功。
matlab(74)汉明码和(74)循环码的编程设计
二、创新实验设计创新实验一:(7,4)汉明码的编码与译码实现1、实验目的实现(7,4)汉明码的编码与译码,通过这次实验不但加深了对汉明码编码和译码原理了解,而且对线性分组码有所了解。
2、实验原理线性分组码的构造方法比较简单、理论较为成熟,应用比较广泛。
汉明码是一种能够纠正一个错码的效率比较高的线性分组码,下面以(7,4)码为例就汉明码的编码与译码分别进行介绍:(1)编码原理一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。
若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求21r n -≥或211rk r -≥++ (1)设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r ≥3。
若取r=3,则n=k+r=7。
这样就构成了(7,4)码。
用6543210a a a a a a a 来表示这7个码元,用123s s s 的值表示3个监督关系式中的校正子,则123s s s 的值与错误码元位置的对应关系可以规定如表1所列。
表2.1 校正子和错码位置的关系则由表1可得监督关系式:16542s a a a a =⊕⊕⊕()226531s a a a a =⊕⊕⊕()3 36430s a a a a =⊕⊕⊕()4 在发送端编码时,信息位6543a a a a 的值决定于输入信号,因此它们是随机的。
监督位2a 、1a 、0a 应根据信息位的取值按监督关系来确定,为使所编的码中无错码,则123,,S S S 等于0,即65426531643000(5)0a a a a a a a a a a a a ⊕⊕⊕=⎧⎪⊕⊕⊕=⎨⎪⊕⊕⊕=⎩方程组(5)可等效成如下矩阵形式6543210111010001101010010110010a a a a a a a ⎡⎤⎢⎥⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎣⎦(6)式(6)可简化为0T T HA =,H 为监督矩阵,则由式(6)可得到监督矩阵11101001101010=[P I ] (7)1011001r H ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦因为生成矩阵'=[I Q]=[I ]k k G P ,所以由(7)得生成矩阵G 如下:[]k 10001110100110[']00101010001011k G I Q I P ⎡⎤⎢⎥⎢⎥===⎢⎥⎢⎥⎣⎦然后利用信息位和生成矩阵G 相乘产生整个码组,即有[][]65432106543=(8)A a a a a a a a a a a a G=其中A 为整个码组矩阵,6543a a a a 是信息位。
单片机实现(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 位同步的实现 ..................................................................错误!未定义书签。
(完整word版)matlab(7,4)汉明码和(7,4)循环码的编程设计
二、创新实验设计创新实验一:(7,4)汉明码的编码与译码实现1、实验目的实现(7,4)汉明码的编码与译码,通过这次实验不但加深了对汉明码编码和译码原理了解,而且对线性分组码有所了解。
2、实验原理线性分组码的构造方法比较简单、理论较为成熟,应用比较广泛。
汉明码是一种能够纠正一个错码的效率比较高的线性分组码,下面以(7,4)码为例就汉明码的编码与译码分别进行介绍:(1)编码原理一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。
若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求21r n -≥或211rk r -≥++ (1)设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r ≥3。
若取r=3,则n=k+r=7。
这样就构成了(7,4)码。
用6543210a a a a a a a 来表示这7个码元,用123s s s 的值表示3个监督关系式中的校正子,则123s s s 的值与错误码元位置的对应关系可以规定如表1所列。
表2.1 校正子和错码位置的关系则由表1可得监督关系式:16542s a a a a =⊕⊕⊕()226531s a a a a =⊕⊕⊕()3 36430s a a a a =⊕⊕⊕()4 在发送端编码时,信息位6543a a a a 的值决定于输入信号,因此它们是随机的。
监督位2a 、1a 、a 应根据信息位的取值按监督关系来确定,为使所编的码中无错码,则123,,S S S 等于0,即65426531643000(5)0a a a a a a a a a a a a ⊕⊕⊕=⎧⎪⊕⊕⊕=⎨⎪⊕⊕⊕=⎩方程组(5)可等效成如下矩阵形式6543210111010001101010010110010a a a a a a a ⎡⎤⎢⎥⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎣⎦(6)式(6)可简化为0T T HA =,H 为监督矩阵,则由式(6)可得到监督矩阵11101001101010=[P I ] (7)1011001r H ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦因为生成矩阵'=[I Q]=[I ]k k G P ,所以由(7)得生成矩阵G 如下:[]k 10001110100110[']00101010001011k G I Q I P ⎡⎤⎢⎥⎢⎥===⎢⎥⎢⎥⎣⎦然后利用信息位和生成矩阵G 相乘产生整个码组,即有[][]65432106543=(8)A a a a a a a a a a a a G=其中A 为整个码组矩阵,6543a a a a 是信息位。
通信原理设计报告(7-4)汉明码的编解码设计
4.3 (7,4)汉明码编码程序旳编译及仿真................................11
第5章 (பைடு நூலகம்,4)汉明码译码器旳设计.............................12
QuartusⅡ设计软件提供完整旳多平台设计环境,可以很轻松地满足特定设计旳需要。它是可编程片上系统(SOPC)设计旳综合性环境,拥有FPGA和CPLD设计旳所有阶段旳解决方案。与其他EDA软件相比较,QuartusⅡ软件旳重要特点涉及:
可运用原理图、构造框图、VerilogHDL、AHDL和VHDL完毕电路描述,并将其保存为设计实体文献。
般旳计算机高级语言。VHDL旳程序构造特点是将一项工程设计,或称设计实体(可以是一种元件,一种电路模块或一种系统)提成外部(或称可视部分)和内部(或称不可视部分),既波及实体旳内部功能和算法完毕部分。在对一种设计实体定义了外部界面后,一旦其内部开发完毕后,其他旳设计就可以直接调用这个实体。这种将设计实体提成内外部分旳概念是VHDL系统设计旳基本点。应用VHDL进行工程设计旳长处如下几点:
(1)与其他旳硬件描述语言相比,VHDL具有更强旳行为描述能力,从而决定了他成为系统设计领域最佳旳硬件描述语言。强大旳行为描述能力是避开具体旳器件构造,从逻辑行为上描述和设计大规模电子系统旳重要保证。
(2)VHDL丰富旳仿真语句和库函数,使得在任何大系统旳设计初期就能查验设计系统旳功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句旳行为描述能力和程序构造决定了他具有支持大规模设计旳分解和已有设计旳再运用功能。符合市场需求旳大规模系统高效,高速旳完毕必须有多人甚至多种代发组共同并行工作才干实现。
7-4汉明码
7,4汉明码及8,4扩展汉明码的实现(2012-12-16 15:32:02)分类:FPGA标签:fpga扩展汉明码一、汉明码汉明码是1950 年由美国贝尔实验室提出来的,是第一个设计用来纠正错误的线性分组码,汉明码及其变型已广泛应用于数字通信和数据存储系统中作为差错控制码。
汉明码是一种线性分组码。
线性分组码是指将信息序列划分为长度为k的序列段,在每一段后面附加r位的监督码,且监督码和信息码之间构成线性关系,即它们之间可由线性方程组来联系。
这样构成的抗干扰码称为线性分组码。
编码原理设码长为n,信息位长度为k,监督位长度为r=n-k。
如果需要纠正一位出错,因为长度为n的序列上每一位都可能出错,一共有n种情况,另外还有不出错的情况,所以我们必须用长度为r的监督码表示出n+1种情况。
而长度为r的监督码一共可以表示2^r种情况。
因此2^r>=n+1,即r>=log(n+1)我们以一个例子来说明汉明码。
假设k=4,需要纠正一位错误,则2^r>=n+1=k+r+1=4+r+1解得r>=3。
我们取r=3,则码长为3+4=7。
用a6,a5,...a0表示这7个码元。
用S1,S2,S3表示三个监关系式中的校正子。
我们作如下规定(这个规定是任意的):S1S2S3错码的位置001a0010a1100a2011a3101a4110a5111a6000无错按照表中的规定可知,仅当一个错码位置在a2,a4,a5或a6时校正子S1为1,否则S1为0。
这就意味着a2,a4,a5,a6四个码元构成偶校验关系:S1=a6⊕a5⊕a4⊕a2(1)式同理,可以得到:S2=a6⊕a5⊕a3⊕a1(2)式S3=a6⊕a4⊕a3⊕a0(3)式在发送信号时,信息位a6,a5,a4,a3的值取决于输入信号,是随机的。
监督为a2,a1,a0应该根据信息位的取值按照监督关系决定,即监督位的取值应该使上述(1)(2)(3)式中的S1,S2,S3为0,这表示初始情况下没有错码。
通信原理课程设计--汉明码的编码和译码
兰州理工大学课程设计报告课程名称:通信系统课程设计设计名称:汉明码的编码和译码姓名:学号:班级:指导教师:起止日期:2014.4.7-2014.4.9课程设计任务书学生班级:学生姓名:学号:设计名称:汉明码的编译和译码起止日期:2012.6.11-2012.6.25 指导教师:课程设计学生日志课程设计评语表汉明码的编码和译码一、 设计目的和意义1. 学习汉明码的编码和译码;2. 学习Matlab 的相关使用,学会用Malab 解决实际问题;3. 培养自己全面、独立思考的能力。
二、 设计原理2.1汉明码编码原理一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。
若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求21r n -≥或211rk r -≥++ (1)下面以(7,4)汉明码为例说明原理:设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r ≥3。
若取r=3,则n=k+r=7。
我们用6543210a a a a a a a 来表示这7个码元,用123s s s 的值表示3个监督关系式中的校正子,则123s s s 的值与错误码元位置的对应关系可以规定如表1所列。
表1 校正子和错码位置的关系则由表1可得监督关系式: 16542s a a a a =⊕⊕⊕()226531s a a a a =⊕⊕⊕ ()3 36430s a a a a =⊕⊕⊕()4 在发送端编码时,信息位6543a a a a 的值决定于输入信号,因此它们是随机的。
监督位2a 、1a、a 应根据信息位的取值按监督关系来确定,即监督位应使式(2)~式(4)中1s、2s 、3s 的值为0(表示编成的码组中应无错码)654265316430000a a a a a a a a a a a a ⊕⊕⊕=⎧⎪⊕⊕⊕=⎨⎪⊕⊕⊕=⎩ (5)式(5)经过移项运算,接触监督位265416530643a a a a a a a a a a a a=⊕⊕⎧⎪=⊕⊕⎨⎪=⊕⊕⎩ (6)式(5)其等价形式为:6543210111010001101010010110010a a a a a a a ⎡⎤⎢⎥⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎣⎦(7)式(6)还可以简记为0T T H A •=或0TA H •= (8)其中111010011010101011001H ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦[]6543210A a a a a a a a =[]0000=111011011011P ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦100010001r I ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦ 所以有[]r H PI = (9)式(6)等价于[][][]21065436543111110101011a a a a a a a a a a a Q⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦(10)其中Q 为P 的转置,即T Q P = (11)式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q 就产生出监督位。
(,)汉明码编解码器的设计
(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.课程设计目的(1)通过利用matlab simulink,熟悉matlab simulink仿真工具。
(2)通过课程设计来更好的掌握课本相关知识,熟悉汉明码的纠错与检错方法。
(3)更好的了解通信原理的相关知识,磨练自己分析问题、查阅资料、巩固知识、创新等各方面能力。
2.课程设计要求(1)掌握课程设计的相关知识、概念清晰。
(2)程序设计合理、能够正确运行。
3.相关知识3.1汉明码的概念汉明码是1950年由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(Single Error Correcting)码,它不仅性能好,而且编译码电路非常简单,易于实现。
从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。
最先用于磁芯存储器,60年代初用于大型计算机,70年代在MOS存储器中得到应用,后来在中小型计算机中普遍采用,目前常用于RFID系统中多位错误的纠正。
3.2 汉明码的校验与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。
利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
3.2 汉明码的纠错在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。
在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。
通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。
但这种方法比简单重传协议的成本要高。
汉明码利用奇偶块机制降低了前向纠错的成本。
在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。
在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。
通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。
但这种方法比简单重传协议的成本要高。
汉明码利用奇偶块机制降低了前向纠错的成本。
3.3 汉明码的编码方法设原代码的码长为 k比特,附加纠错编码部分为r比特,当码字长度n = 2 r -1,r=n-k,r = 1 ,2 …时就称这种线性分组码为汉明码。
合工大通信比编码_74汉明编解码的实现
实验一(7,4)汉明编解码◆实验任务利用C语言或C++实现(7,4)汉明码的编码与解码,其中解码包括检错与纠错,要求可以纠正一位错误。
◆实验目的●掌握线性分组码的编码原理●掌握线性分组码的译码原理◆实验原理汉明码是能纠正单个错误的线性分组码。
它有以下特点:码长…………n=2^m-1最小码距…………d=3信息码位…………k=2^m-m-1纠错能力…………t=1监督码位…………r=n-k(7,4)汉明码的生成矩阵为:10001010100111G=00101100001011(7,4)汉明码的校验矩阵为:1110100H=01110101101001(7,4)汉明码校正子与错误位置的关系●(7,4)汉明码的编码原理利用矩阵相乘的原理,码字向量v等于待编的消息向量u与生成矩阵G相乘得到,由于(7,4)线性码的后四位为信息位,与输入的消息相同,因此只需对前三位校验位进行编译,根据课本例题3-2,由矩阵乘法可以得到v0=u0+u2+u3v1=u0+u1+u2v2=u1+u2+u3v3=u0v4=u1v5=u2v6=u3前三位校验位对输入的四位消息序列中的三位进行模二加即可实现编码。
●(7,4)汉明码的检错原理由校验矩阵,若接收到的码字正确,则接收到的码字为r向量,则其与校验矩阵的转置相乘可以得到0向量,设接收到的向量为s向量,s向量即为校正子,若s向量不等于0,则一定有错,由r向量和校验矩阵的转置相乘可以得到S1S2S3,S1S2S3即是校正子,由上表错误位置与校正子的对应位置关系,可以判断出错误的位置,校正子与校验矩阵每列序列相对应,因此可以用校正子与校验矩阵每列相对比,可以判断出错的位置,为纠错做准备。
●(7,4)汉明码纠错的基本原理根据校正子判断出是否出错以及出错位置,如果S1S2S3为全零则正确,否则根据校正子判断出出错的位置,将对应位的0/1相应的取反,则接收到的码字是正确的,输出接收码字的后四位即为译码的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录前言...............................................................1第1章设计要求.................................................3第2章 QuartusⅡ软件介绍.......................................4第3章汉明码的构造原理........................................6 3.1 (7,4)汉明码的构造原理........................................6 3.2 监督矩阵H与生成矩阵G.........................................7 3.3 校正子(伴随式S)..............................................8第4章(7,4)汉明码编码器的设计............................10 4.1 (7,4)汉明码的编码原理及方法.................................10 4.2 (7,4)汉明码编码程序的设计...................................10 4.3 (7,4)汉明码编码程序的编译及仿真.............................11第5章(7,4)汉明码译码器的设计...........................12 5.1 (7,4)汉明码的译码方法......................................12 5.2 (7,4)汉明码译码程序的设计..................................13 5.3 (7,4)汉明码译码程序的编译及仿真............................15第6章(7,4)汉明码编译码器的设计........................17 6.1 (7,4)汉明码编译码器的设计..................................17参考文献.........................................................18体会与建议.......................................................19附录..............................................................20前言汉明(Hamming)码是一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。
本次课程设计的任务就是利用EDA技术在Quartus II软件下用VHDL语言实现(7,4)汉明码的编译码的设计和仿真。
从而进一步加深对汉明码编译码原理的理解。
EDA(Electronic Design Automation)技术是随着集成电路和计算机技术飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。
目前,VHDL 语言已经成为EDA的关键技术之一,VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力,因此在实际应用中越来越广泛。
VHDL语言具有功能强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成,近几十年来,EDA技术获得了飞速的发展,它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编译,化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作,以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点,随着EDA技术的深入发展,基于硬件描述语言的方法将由取代传统手工设计方法的趋势。
第1章设计要求1、采用VHDL语言输入法进行设计;2、根据(7,4)汉明码的编解码原理,确定编解码器具体设计方案;3、画出(7,4)汉明码的编解码的程序设计流程图;4、编写VHDL源程序、调试及仿真时序波形。
第2章QuartusⅡ软件介绍●QuartusⅡ软件QuartusⅡ是Altera公司推出的CPLD/FPGA的开发工具,QuartusⅡ提供了完全集成且于电路结构无关的开发环境,具有数字逻辑设计的全部特性。
QuartusⅡ设计软件提供完整的多平台设计环境,可以很轻松地满足特定设计的需要。
它是可编程片上系统(SOPC)设计的综合性环境,拥有FPGA和CPLD 设计的所有阶段的解决方案。
与其他EDA软件相比较,QuartusⅡ软件的主要特点包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件。
芯片(电路)平面布局连线编辑。
LogicLock增量设计方法,用户建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块、功能强大的逻辑综合工具。
完备的电路功能仿真与时序逻辑分析、定时/时序分析与关键路径延时分析。
可使用SignalTapⅡ逻辑分析工具进行嵌入式的逻辑分析。
支持软件源文件的添加和创建,并将它们链接起来生成编程文件。
使用组合编译方式可一次完成整体设计流程。
自动定位编译错误、高效的器件编程与验证工具。
可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件。
能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
●VHDL语言VHDL语言主要用于描述数字系统的结构、行为、功能和接口,除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点如下几点:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
第3章 (7,4)汉明码的构造原理3.1 汉明码的构造原理线性分组码是一类重要的纠错码,应用很广泛。
在(n ,k )分组码中,若监督码元是按线性关系模2相加而得到的,则称其为线性分组码。
现在以(7,4)分组码为例来说明线性分组码的特点。
设其码字为A=[6a ,012345,,,,,a a a a a a ],前4位是信息元,后3位是监督元,可用下列线性方程组来描述该分组码产生监督元: (式3.1)显然,这3个方程是线性无关的。
代入上述公式可得(7,4)码的全部码组,如表1所示。
表1 (7,4)汉明码的全部码组由上表可知:(7,4)汉明码的最小码距0d =3,它能纠1位错或检2位错。
⎪ ⎩ ⎪⎨ ⎧ ⊕ ⊕ = ⊕ ⊕ = ⊕ ⊕ = 3 4 6 03 5 6 14 5 6 2 aa a a a a a a a a a a由此可见,汉明码是能够纠正单个错误的线性分组码,其特点是:最小码距0d =3,码长n 与监督位r 满足关系式:n r ≥-12,说明上述所说的(7,4)线性分组码就是汉明码。
同时,由于码率n r n r n n k -=-=1)(,故当n 很大和r 很小时,码率接近1,可见:汉明码是一种高效码。
3.2 监督矩阵H 和生成矩阵G ● 监督矩阵H式(3.1)所示的(7,4)汉明码的监督方程可以改写为:02456=+++a a a a01356=+++a a a a (式3.2.1)00346=+++a a a a用矩阵的形式可以将上式表示为:(式3.2.2)并简记为:T T A H 0=∙或0=∙A H T其中,H 成为监督矩阵,只要H 给定,信息位和监督位的关系也就随即确定下来了。
H 的行数就是监督矩阵的数目,等于监督数目r 。
H 序列可分为两部分:(式3.2.3)其中P 为k r ⨯阶矩阵,r I 为r r ⨯阶单位阵。
[]r PI H =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=001101101011011001110因为0=∙A H T ,所以可以用这个关系式来作为判断接收码字A 是否出错的依据。
若0=∙A H T ,则说明码字A 有错,反之则说明码字A 无错。
● 生成矩阵G若将(3.2.1式)的监督方程补充完整并写成矩阵的形式:(式3.2.4)即:A=G ·[6a 345a a a ]=G ·M 上式中G=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡011....0001101....0010110....0100111. (1000)(式3.2.5) G 成为生成矩阵,根据式3.2.4知:由G 和信息码就能产生所有码字。
生成矩阵也可分为两部分,即G=[]Q I k , (式3.2.6)上式中Q=T P =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡011101110111 (式3.2.7)Q 为r k ⨯阶矩阵,k I 为k 阶单位阵。
a ⎡3.3 校正子(伴随式)S设一发送码组A=[0121,,...,a a a a n n --],在传输的过程中可能发生误码。
接受码组B=[0121,,...,,b b b b n n --],收发码组之差定义为错误图样E 。
E=B-A (式3.3.1)其中,E=[0121,,...,,e e e e n n --],令S=T H B ∙,称为校正子(伴随式)。
T T T H E H E A H B S ∙=+=∙=)( (式3.3.2) 可见:校正子S 与错误图样E 之间由确定的线性变换关系。