汉明码
- 格式:pptx
- 大小:1.55 MB
- 文档页数:16


汉明码编译码实验
一、实验目的
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所列。
汉明码的编码检错原理
针对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位。
汉信码介绍
汉信码是一种全新的二维矩阵码,由中国物品编码中心牵头组织相关单位合作开发,完全具有自主知识产权。和国际上其他二维条码相比,更适合汉字信息的表示,而且可以容纳更多的信息。
它的主要技术特色是:
1. 具有高度的汉字表示能力和汉字压缩效率
汉信码支持GB18030中规定的160万个汉字信息字符,并且采用12比特的压缩比率,每个符号可表示12~2174个汉字字符。
2. 信息容量大
在打印精度支持的情况下,每平方英寸最多可表示7829个数字字符, 2174个汉字字符, 4350个英文字母。
3. 编码范围广
汉信码可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码。
4. 支持加密技术
汉信码是第一种在码制中预留加密接口的条码,它可以与各种加密算法和密码协议进行集成,因此具有极强的保密防伪性能。
5. 抗污损和畸变能力强 汉信码具有很强的抗污损和畸变能力,可以被附着在常用的平面或桶装物品上,并且可以在缺失两个定位标的情况下进行识读
6. 修正错误能力强
汉信码采用世界先进的数学纠错理论,采用太空信息传输中常采用的Reed-Solomon纠错算法,使得汉信码的纠错能力可以达到30%。
7. 可供用户选择的纠错能力
汉信码提供四种纠错等级,使得用户可以根据自己的需要在8%、15%、23%和30%各种纠错等级上进行选择,从而具有高度的适应能力。
8. 容易制作且成本低
利用现有的点阵、激光、喷墨、热敏/热转印、制卡机等打印技术,即可在纸张、卡片、PVC、甚至金属表面上印出汉信码。由此所增加的费用仅是油墨的成本,可以真正称得上是一种“零成本”技术。
9. 条码符号的形状可变
汉信码支持84个版本,可以由用户自主进行选择,最小码仅有指甲大小。
10. 外形美观
汉信码在设计之初就考虑到人的视觉接受能力,所以较之现有国际上的二维条码技术,汉信码在视觉感官上具有突出的特点。
汉明码校正子与错码位置对应关系
一、汉明码概述
汉明码(Hamming code)是一种用于错误检测和校正的线性二进制码。它是由美国数学家理查德·汉明于1950年提出的,用于解决计算机存储和传输中遇到的数据错误问题。
二、汉明码的生成方式
汉明码通过在数据位之间插入冗余校验位来实现错误检测和校正的功能。冗余校验位的数量取决于数据位的数量,并且校验位的位置与数据位有着固定的对应关系。
三、汉明码的错误检测与校正原理
汉明码利用冗余位可以检测和纠正单个比特的错误。通过校验位之间的对应关系,可以确定出错的比特位,并将其纠正。校验位的位置与错误比特位的位置具有一一对应的关系。
四、汉明码校正子与错码位置对应关系
以下是汉明码校正子与错码位置对应关系的示意图:
校正子位置: p1 p2 d1 p3 d2 d3 d4
错码位置: X X X X X X X
其中,p1、p2和p3分别是校验位,d1、d2、d3和d4分别是数据位。校错位的位置用X表示。
五、汉明码的纠错能力
汉明码可以纠正单个比特的错误,并能够检测和指示多个比特的错误。通过特定的计算方法,汉明码可以确定出错的比特位,并将其纠正。 六、汉明码的应用场景
汉明码广泛应用于存储和传输系统中,以确保数据的完整性和准确性。它被用于计算机内存、硬盘驱动器、通信协议等领域,以保障数据的可靠性。
七、如何实现汉明码校正
要实现汉明码校正,需要按照以下步骤进行: 1. 计算校验位的值:根据汉明码的生成方式,计算校验位的值。校验位的值取决于数据位的值。 2. 插入校验位:将计算得到的校验位插入到数据位之间,形成汉明码。 3. 进行传输或存储:将汉明码传输或存储到相应的设备中。 4. 检测错误:接收到汉明码后,通过比较校验位和数据位的值,可以检测出错误的比特位。 5. 纠正错误:根据检测到的错误比特位,使用汉明码的纠错算法纠正错误。 6. 进行校验:纠正错误后,再次计算校验位的值,并与接收到的校验位进行比较,确认是否成功纠正错误。