汉明码编译码文档_第1页
汉明码编译码文档_第2页
汉明码编译码文档_第3页
汉明码编译码文档_第4页
汉明码编译码文档_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章绪论过失控制编码1.1概述数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。接收端收到后可能发生错误判决。由于乘性干扰引起的码间串扰,可以采用均衡的方法来纠正。而加性干扰的影响那么需要用其他方法解决。在设计数字通信系统时,应该首先从合理选择调制制度,解调方法以及发送功率等方面考虑,使加性干扰缺乏以影响到误码率要求。在仍不能满足要求时,就要考虑采用过失控制措施了。从过失控制角度看,按加性干扰引起的错码分布规律不同,信道可以分为3类,即随机信道,突发信道和混合信道。在随机信道中,错码的出现是随机的,而且错码之间是统计独立的。在突发信道中,错码是成串集中出现的,而且在短促的时间段之间存在较长的无错码区间。把既存在随机错码又存在突发错码的的信道称为混合信道。对于不同类型的信道,应该采用不同的过失控制技术。1.2纠错编码原理我们把信息码分组,为每组信息码附加假设干监督码的编码称为分组码(blockcode).在分组码中,监督码元仅监督本码组中的信息码元。分组码一般用符号〔n,k〕表示,其中n是码组的总位数,又称为码组的长度〔码长〕,k是码组中信息码元的数目,n-k=r为码组中的监督码元的数目,或者称为监督位数目,分组码的结构如图2示,图中前k位为信息位,后面附加r个监督位。其中an-1到ar为k个信息位,ar-1到a0为r个监督位。an-1an-2………arar-1………ao图4分组码的结构在分组码中,把码组中“1”的个数称为码组的重量,简称码重。把两个码组中对应位上数字不同的位数称为码组的距离,简称为码距,码距又称为汉明距离。我们把某种编码中各个码组之间距离的最小值称为最小码距〔d0一种编码的最小距离的大小直接关系着这种编码的检错与纠错能力:〔1〕为检测e个错码,要求最小码距d0大于等于e+1;(2)为了纠正t个错码,要求最小码距d0大于等于2t+1;(3)为纠正t个错码同时检测e个错码,要求最小码距d0大于等于e+t+1〔e>t〕.1.3汉明码编码Hamming码中文称作汉明码。汉明码是由汉明于1950年提出的,具有纠正一位错误能力的线性分组码它的突出特点是:编译码电路简单,易于硬件实现;用软件实现编译码算法时,软件效率高;而且性能比拟好..1汉明码的定义:假设一致监督矩阵H的列是由不全为0且互不相同的所有二进制m(m≥2的正整数)重组成,那么由此H矩阵得到的线性分组码称为[2m-1,2m-1-m,汉明码的构造特点:1).绐定一个m,我们由二进制m重组成线性分组码的监督矩阵H,由二进制m重来标定一个发生错误的位置。由此可知,二进制m重共有2种位组合,去掉一个全为0的位组合,那么余下共有2m-1种位组合。故汉明码的最大码长n=22).由上面分析,我们可以知道:m即是汉明码监督位的位数。故一个汉明码中,信息位的位数k=n—m=2m3).汉明码的距离为3,因此可以纠正1位错误,检出2位错误。汉明码编码的主要算法汉明码的编码就是如何根据信息位数k,求出纠正一个错误的监督矩阵H,然后根据H求出信息位所对应的码字。构造汉明码监督矩阵H的方法很多,这里仅介绍一种。1)根据的信息位数k,从汉明不等式中求出校验位数m=n-k;2)在每个码字C:(C1,C2,⋯,C2m-1)中,用c02,c12,cn-12作为监督位,剩下的位作为信息位;3)用二进制数字表示2m-1列,得到2m-1列和m行监督矩阵4)用3步的H形成HCT=0,从而得出m个监督方程;5)将的信息代入方程组,然后求出满足上述方程组的监督位c(i=0,1,⋯,m一1)。例如,用以上方法,很容易求出[7,4,3]汉明码的监督矩阵:1110100H=11010101011001及编码所对应的码字为C=011001。1.4.主要应用领域1.4.1随着现代通信技术和计算机技术的高速开展,无线数字通信的应用越来越广泛.钢丝绳张力检测系统将数字无线通信、测量和计算机技术结合在一起,其功能是将电梯、缆车或提升机钢丝绳张力检测信息转换成数字信号,通过无线方式传送给控制中心,由控制中心对原始数据进行处理、分析和计算,输出人们想要的结果,做出相应的判断与控制。因此,钢丝绳张力的检测系统对使用钢丝绳的提升设备的平安运行起着至关重要的作用。数字存储系统随着PC机的日益普及,存储对象的日渐多元化,用户对存储需求不断升级,如何保证数据稳定、高速传输?RAID(”RedundantArrayofIndependentDisk”)独立冗余磁盘阵列解决了这个难题,并且成为目前存储的主流技术。RAID之所以实现数据高速、可靠的传输,一个关键的核心技术就是应用了一定的过失控制编码技术。在RAID众多系列中最复杂的RAID2中就采用了”汉明码(HammingCode)过失控制编码技术”,它在数据存储及移动过程中进行过失控制,对传输过程中出现的过失自动进行纠正,保证了数据传输的平安可靠性。保密通信技术随着计算机网络的开展及应用的普及,特别是在军事指挥,情报系统,银行系统的应用,通信的可靠性及保密性要求越来越高,这就要求研制新的高可靠性及保密性通信技术。接收端不仅能从接收到的信息中检测出传输过程中的错误而且能纠正之。针对IBM-PC微计算机之间通信过程中的纠错技术提出了一种在通信计算机之间不增加任何硬件设备的情况下,仅用编写一段纠错编码(发送端)和纠错译码(接收端)的软件方法到达计算机通信纠错和保密的目的,即利用汉明码编码实现检错、纠错的具体方案,这样做的优点是:在保持一定功能和相应速度的前提下,采用软件方法,不仅可以提高通信过程的可靠性,而且还可以提高通信系统本身的可靠性。第二章(7,4)汉明码的编码原理2.1根本构造对于码组长度为n、信息码元为k位、监督码元为r=n-k位的分组码,常记作〔n,k〕码,如果满足2r-1≥n,那么有可能构造出纠正一位或一位以上错误的线性码。下面我们通过〔7,4〕汉明码的例子来说明如何具体构造这种码。设分组码〔n,k〕中,k=4,为能纠正一位误码,要求r≥3。现取r=3,那么n=k+r=7。我们用a0ala2a3a4a5a6表示这7个码元,用S1、S2、S3表示由三个监督方程式计算得到的校正子,并假设三位S1S1S2S3错码位置S1S2S3错码位置001a0101a4010al110a5100a2111a6011a3000无错码表1校正子和错码位置关系由表可知,当误码位置在a2、a4、a5、a6时,校正子S1=1;否那么S1=0。因此有S1=a6⊕a5⊕a4⊕a2,同理有S2=a6⊕a5⊕a3⊕a1和S3=a6⊕a4⊕a3⊕a0。在编码时a6、a5、a4、a3为信息码元,a2、a1、a0为监督码元。那么监督码元可由以下监督方程唯一确定a6⊕a5⊕a4⊕a2=0a6⊕a5⊕a3⊕a1=0()a6⊕a4⊕a3⊕a0=0也即a2=a6⊕a5⊕a4a1=a6⊕a5⊕a3〔〕a0=a6⊕a4⊕a3由上面方程可得到表2所示的16个许用码组。在接收端收到每个码组后,计算出S1、S2、S3,如果不全为0,那么表示存在错误,可以由表1确定错误位置并予以纠正。举个例子,假设收到码组为0000011,可算出S1S2S3=011,由表1可知在a3上有一误码。通过观察可以看出,上述〔7,4〕码的最小码距为dmin=3,纠正一个误码或检测两个误码。如果超出纠错能力那么反而会因“乱纠”出现新的误码.信息位监督位信息位监督位a6aa2a1a6aa2a0000000100100011010001010110011100001110111011010101100010001001101010111100110111101111111100010001001010100111表2〔7,4〕汉明码的许用码组2.2监督矩阵上面有提到过,线性码是指信息位和监督位满足一组线性代数方程的码,式()就是这样的例子,现在将它改写成1*a6⊕1*a5⊕1*a4⊕0*a3⊕1*a2⊕0*a1⊕0*a0=01*a6⊕1*a5⊕0*a4⊕1*a3⊕0*a2⊕1*a1⊕0*a0=0()1*a6⊕0*a5⊕1*a4⊕1*a3⊕0*a2⊕0*a1⊕1*a0=0我们可以将式〔〕表示成如下的矩阵形式a6a51110100a401101010a3=0〔〕1011001a20a1a0式〔〕还可以简记为H*AT=0T或A*HT=0〔〕其中1110100H=1101010A=a6a5a41011001上角“T”表示将矩阵转置。例如HT是H的转置,即HT的第一行为H的第一列,第二行为第二列。我们将H称为监督矩阵(parity—checkmatrix).只要监督矩阵H给定,编码时监督位和信息位的关系就完全确定了。由〔〕和(1.1.5)都可以看出,H的行数就是监督关系式的数目r,H的每一行中的“1”的位置表示相应码元之间存在的监督关系。式〔1.1.4〕中的H矩阵可以分为两局部。1110100H=1101010=PIr()1011001式中:P为r*k阶矩阵;Ir为r*r阶单位方阵。2.3生成矩阵由代数理论可知,H矩阵的的各行应该是线性无关的,否那么将得不到r个线性无关的监督关系式,从而也得不到r个独立的监督位。假设一矩阵可以写成PIr的矩阵形式,那么其各行一定是线性无关的。因为容易验证Ir的各行是线性无关的,故PIr的各行也是线性无关的。类似于〔〕那样,〔1.1.2〕可以改写成a6a21110a5a1=1101a4〔〕a01011a3或者111a2a1a0=a6a5a4a3110=a6101011其中,Q为一个k*r阶矩阵,它为P的转置,即Q=PT式〔〕表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。我们将Q的左边加上一个k*k阶单位方阵,就构成一个矩阵G1000111G=IKQ=0100110()00101010001011G称为生成矩阵〔generatormatrix〕,因为由它可产生整个码组,即有a6a5a4a3a2a第三章(7,4)汉明码编码的设计3.1(7,4)汉明码的编码思路(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即参加三位监督位。根据式(〕A=[a6a5a4a3]·G可知,信息码与生成矩阵G1000111G=010011000101010001011所以,可以得出如下方程组a6=a6

a5=a5

a4=a4

a3=a3()

a2=a6+a5+a4

a1=a6+a5+a3

a0=a6+a4+a3

根据式()就可以编出编码程序了。

3.2(7,4)汉明码的编码程序设计根据(7,4)汉明码的编码原理,首先画出程序设计的流程图:

图6编码流程图输入信息码a3a2a1a0,输出(7,4)汉明码b6b5b4b3b2首先,输入信息码a3a2port(a:instd_logic_vector(3downto0);然后,根据式(),就可以得到监督位与信息码之间的对应关系,使用异或运算,即:b(6)<=a(3);

b(5)<=a(2);

b(4)<=a(1);

b(3)<=a(0);b(2)<=a(3)xora(2)xora(1);b(1)<=a(3)xora(2)xora(0);b(0)<=a(3)xora(1)xora(0);最后,将算好的监督位与原来输入的信息一起输出,就是编码结束了。第四章编译程序的调试与分析4.1(7,4)汉明码的编码程序的编译在max+plusⅡ中采用原理图输入如下所示:步骤一:指定设计工程名字步骤二:建立一个新的图形文件步骤三:输入图元和功能符号步骤四:命名引脚和链接逻辑符号编译结果如下:在在max+plusⅡ采用文本输入法:(7,4)汉明码的编码程序如下

libraryieee;

useieee.std_logic_1164.all;

entitybmis

port(a:instd_logic_vector(3downto0);

b:outstd_logic_vector(6downto0));

endbm;

architecturestrcofbmis

begin

b(6)<=a(3);

b(5)<=a(2);

b(4)<=a(1);

b(3)<=a(0);b(2)<=a(3)xora(2)xora(1);

b(1)<=a(3)xora(2)xora(0);

b(0)<=a(3)xora(1)xora(0);

endstrc;文本编辑如下:编译结果:4.2(7,4)汉明码的编码程序的仿真在max+plusⅡ采用波形编辑器:先建立一个仿真通道文件bm·scf,如下列图示:编辑的wdf文件如下图:编译结果如下:4.3〔7,4)汉明码的编码程序的编译和仿真分析

按照上述编码程序的编写思路,编写好程序,点击,进行编译,出现一些错误,列举如下:Error1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论