汉明码系统
- 格式:doc
- 大小:415.00 KB
- 文档页数:9


汉明码的编码检错原理
针对4位数据的汉明码编码示意图
汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。以典型的4位数据编码为例,汉明码将加入3个校验码,从而使实际传输的数据位达到7个(位),它们的位置如果把上图中的位置横过来就是:
数据位 1 2 3 4 5 6 7
代码 P1 P2 D8 P3 D4 D2 D1
说明 第1个汉明码 第2个汉明码 第1个数据码 第3个汉明码 第2个数据码 第3个数据码 第4个数据码
注:Dx中的x是2的整数幂(下面的幂都是指整数幂)结果,多少幂取决于码位,D1是0次幂,D8是3次幂,想想二进制编码就知道了
现以数据码1101为例讲讲汉明码的编码原理,此时D8=1、D4=1、D2=0、D1=1,在P1编码时,先将D8、D4、D1的二进制码相加,结果为奇数3,汉明码对奇数结果编码为1,偶数结果为0,因此P1值为1,D8+D2+D1=2,为偶数,那么P2值为0,D4+D2+D1=2,为偶数,P3值为0。这样,参照上文的位置表,汉明码处理的结果就是1010101。在这个4位数据码的例子中,我们可以发现每个汉明码都是以三个数据码为基准进行编码的。下面就是它们的对应表:
汉明码 编码用的数据码
P1 D8、D4、D1
P2 D8、D2、D1
P3 D4、D2、D1
从编码形式上,我们可以发现汉明码是一个校验很严谨的编码方式。在这个例子中,通过对4个数据位的3个位的3次组合检测来达到具体码位的校验与修正目的(不过只允许一个位出错,两个出错就无法检查出来了,这从下面的纠错例子中就能体现出来)。在校验时则把每个汉明码与各自对应的数据位值相加,如果结果为偶数(纠错代码为0)就是正确,如果为奇数(纠错代码为1)则说明当前汉明码所对应的三个数据位中有错误,此时再通过其他两个汉明码各自的运算来确定具体是哪个位出了问题。
还是刚才的1101的例子,正确的编码应该是1010101,如果第三个数据位在传输途中因干扰而变成了1,就成了1010111。检测时,P1+D8+D4+D1的结果是偶数4,第一位纠错代码为0,正确。P1+D8+D2+D1的结果是奇数3,第二位纠错代码为1,有错误。P3+D4+D2+D1的结果是奇数3,第三但纠错代码代码为1,有错误。那么具体是哪个位有错误呢?三个纠错代码从高到低排列为二进制编码110,换算成十进制就是6,也就是说第6位数据错了,而数据第三位在汉明码编码后的位置正好是第6位。
实验四 汉明码系统
一、 实验原理和电路说明
差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的校验关系将受到破坏,从而可以发现错误,乃至纠正错误。
通信原理综合实验系统中的纠错码系统采用汉明码(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=
汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。
图2.4.1和图2.42给出汉明编码器和译码器电原理图。
a6
a5
a4
a3
a2
a1
a0 a6
a5
a4
a3
图2.4.1汉明编码器电原理图 ● ● ●
● ● ●
● ● ●
a6
a5
a4
a3 a6
a5
a4
a3
a3
a3
a3
图2.4.2汉明译码器电原理图
3-8译码器
校正子生成 错码
指示
7654321 ●
● ● ●
● ● ●
●
表2.4.1 (7,4)汉明编码输入数据与监督码元生成表
4位信息位
a6, a5, a4, a3 3位监督码元
a2, a1, a0 4位信息位
a6, a5, a4, a3 3位监督码元
a2, a1, a0
0000 000 1000 101
0001 011 1001 110
汉明码编译码实验
一、实验目的
1、 掌握汉明码编译码原理
2、 掌握汉明码纠错检错原理
二、实验内容
1、 汉明码编码实验。
2、 汉明码译码实验。
3、 汉明码纠错检错能力验证实验。
三、实验器材
LTE-TX-02E通信原理综合实验系统----------------------------------------------模块8
四、实验原理
在随机信道中,错码的出现是随机的,且错码之间是统计独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。这些监督码元和信码之间有一定的关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。不同的编码方法有不同的检错或纠错能力。有的编码就只能检错不能纠错。
那么,为了纠正一位错码,在分组码中最少要加入多少监督位才行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致汉明码的诞生。汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。下面我们介绍汉明码的构造原理。
一般说来,若码长为n,信息位数为k,则监督位数r=n−k。如果希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求
2r − 1 ≥ n 或 2r ≥ k + r + 1 (14-1)
下面我们通过一个例子来说明如何具体构造这些监督关系式。
设分组码(n,k)中k=4,为了纠正一位错码,由式(14-1)可知,要求监督位数r≥3。若取r=3,则n= k + r =7。我们用α6α5…α0 表示这7个码元,用S1、S2、S3表示三个监督关系式中的校正子,则S1 S2 S3的值与错码位置的对应关系可以规定如表14-1所列。
数据存储系统中的安全卫士
陈海丽(广东省高级技工学校) 技_一 中国高新技术套生
汉明码
【摘要】 汉明码是一种编码效率极高的差错控制码,汉明码及扩展汉明码广泛应用于数据存储系 统中。本文在简单分析汉明码原理的基础上,详细阐述了汉明码的编码及纠错步骤,旨在使读者理 解汉明码的纠错过程以及在实际中的广泛应用。 【关键词】差错控制编码技术汉明码原理编码纠错步骤 随着PC机的日益普及,存储对象的日渐多元化,用户对 存储需求不断升级,如何保证数据稳定、高速传输?RAID(” Redundant Array of Independent Disk”)独立冗余磁盘阵列解决 了这个难题,并且成为目前存储的主流技术。RAID是如何实 现数据高速、可靠的传输呢,一个关键的核心技术就是应用了 一定的差错控制编码技术,在RAID众多系列中最复杂的 RAID 2中就采用了”汉明码(Hamming Code)差错控制编码技 术”,它在数据存储及移动过程中进行差错控制,对传输过程 中出现的差错自动进行纠正,保证了数据传输的安全可靠性。 笔者在这里将阐述汉明码的编码原理,并剖析汉明码编码纠 错过程。 一汉明码的应用与原理 汉明码是1950年由美国贝尔实验室汉明f也有译为海 明)提出来的,是第一个设计用来纠错的分组码。目前,汉明码 及其变形已广泛地应用在数字通信、数据通信中的数据存储 系统中,尤其在计算机的内存寻址及RAM与寄存器之间来回 传送比特位时经常使用。 汉明码是在原编码的基础上附加一部分代码.使其满足 纠错码的条件,原编码我们可将它称为信息码,附加码称为校 验码(又可称为监督码或冗余码)。汉明码码距为3,所以只能 够发现2个错误或纠正1个错误,编码效率最高。它属于线性 分组码,由于线性码的编码和译码容易实现,至今仍是应用最 广泛的一类码。 二汉明码编码过程 汉明码编码可遵循以下四个步骤: 1.由信息位数,根据汉明不等式,确定校验位数。2.确定 校验码位置。3.确定校验码的值。4.求出汉明码 实例:若有一7位长的信息码为1001101,请求出汉明码。 步骤1:校验位数的确定 由汉明不等式2r一1≥n或2r≥k+r+1(其中r为检验码 位数,k为信息码位数,n为编码后的码总长)可知,在本题中k=7, 代入2r≥k+r+1公式中可解得r的取值为4,即需要4位检验码 (可依次编为ro、r1、r2、r3),则总码长n=k+r=7+4=11。 步骤2:确定校验码位置 从理论上讲校验码位可放在任何位置,但习惯上将它放 于位置1,2,4,8……等位置,对于校验位少的可用强记法记 住所在位置,而对于位数较多的强记法就不适用,在这里介绍 一种公式法,不用死记硬背,即可求出各校验码的位置。 校验位m对应的位置为2n,n的取值从O开始,则: ro 2。=1 r 2’=2 r2 2 =4 r3 2 8 将校验位填在表格1对应的单元格内,其余位用信息码 填充。表格1中,位数是指数据存放在第几位,共11位,用In表 示(n的取值从1至11)。