汉明码原理和校验

汉明码编码原理和校验方法 当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell 实验室的R.W.Hamming 发明,因此定名为汉明码。用于数据传送,能检测所有一位和双位差错并纠正所有一位差错的二进制代码。汉明码的编码原理是:在n 位有效信息位中增加k 为检验码,形成一个n+k位的编码,然后把编码中的每一位分配到k 个奇偶校验组中。每一组只包含以为校验码,组内按照奇偶校验码的规则求出该组的校验位。 在汉明校验码中,有效信息位的位数n 与校验位数K 满足下列关系: 2^K-1>=n+k.

1. 校验码的编码方法

(1)确定有效信息位与校验码在编码中的位置

设最终形成的n+k位汉明校验码为Hn+k„.H2H1, 各位的位号按照从右到左的顺序依次为1,2,„,n+k,则每一个检验码Pi 所在的位号是2^(i-1),i=1,2,„,k 。有效信息位按照原排列顺序依次安排在其他位置上。

假如有七位有效信息位X7X6X5X4X3X2X1=1001101,n=7,可以得出k=4,这样得到的汉明码就是11位,四个校验码P4P3P2P1对应的位号分别是 8,4,2,1(即2^3,2^2,2^1,2^0).

11位汉明码的编码顺序为:

位号 11 10 9 8 7 6 5 4 3 2 1 编码 X7 X6 X5 P4 X4 X3 X2 P3 X1 P2 P1

(2)将n+k位汉明码中的每一位分到k 个奇偶组中。

对于编码中的任何一位Hm 依次从右向左的顺序查看其Mk-1„M1M0的每一位Mj (j=0,1,„,k-1),如果该位为“1”,则将Hm 分到第j 组. (如:位号是11可表示成二进制1011,第零位 一位 三位都是1,所以此编码应排在第0组 第1组 第3组)

把11~1写成4位二进制的形式,分组结果如下:

位号 11 10 9 8 7 6 5 4 3 2 1 二进制1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 编码 X7 X6 X5 P4 X4 X3 X2 P3 X1 P2 P1 第0组X7 X5 X4 X2 X1 P1 第1组X7 X6 X4 X3 X1 P2 第2组 X4 X3 X2 P3

第3组X7 X6 X5 P4

(3)根据分组结果,每一组按照奇或偶校验求出校验位,形成汉明校验码。若采用奇数校验,则每一组中“1”的个数为奇数,反之为偶数。(X7X6X5X4X3X2X1=1001101)

若用奇校验,则 _________________

P1=X7⊕X5⊕X4⊕X2⊕X1=X7⊙X5⊙X4⊙X2⊙X1=0;

同理可得 P2=1 ; P3=1 ; P4=0

将这些校验码与有效信息位一起排列(分别插入到1,2,4,8位),可以

得到11位汉明校验码:[1**********];

若采用偶校验,则

P1= X7⊕X5⊕X4⊕X2⊕X1= 1⊕0⊕1⊕0⊕1=1;

P2=0; P3=1; P4=0

将这些校验码与有效信息位一起排列,可得到11位汉明编码: [1**********]

2. 校验码的校验方法 在信息传输中,将校验位与有效信息位一起形成的汉明校验码进行保存和传送,当接收到对方的校验码后,需要对其进行校验,判断是否出错。

校验方法就是:把n+k位校验码重新再分为k 个组。若用奇校验,则每一组中“1”的个数应该为奇数;若用偶校验,则每组中“1”个数应该为偶数,如果不满足表示出错了。

对上面的例子校验码进行校验,四位校验结果为:

E0= X7⊕X5⊕X4⊕X2⊕X1⊕P1=1; E1=1; E2=1; E3=1 _ _ _ _

因为 E3 E2 E1 E0=0000,所以接收到的汉明码是正确的。 假如收到的代码是[1**********],得到的校验结果为 E0=0 ;E1=1; E2=0;E3=1 _ _ _ _

因为 E3 E2 E1 E0=0101,不全是0,表示接收的校验码有错(并且

0101是二进制5)即把第五位取反,就可以得到正确的代码。

汉明码编码原理和校验方法 当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell 实验室的R.W.Hamming 发明,因此定名为汉明码。用于数据传送,能检测所有一位和双位差错并纠正所有一位差错的二进制代码。汉明码的编码原理是:在n 位有效信息位中增加k 为检验码,形成一个n+k位的编码,然后把编码中的每一位分配到k 个奇偶校验组中。每一组只包含以为校验码,组内按照奇偶校验码的规则求出该组的校验位。 在汉明校验码中,有效信息位的位数n 与校验位数K 满足下列关系: 2^K-1>=n+k.

1. 校验码的编码方法

(1)确定有效信息位与校验码在编码中的位置

设最终形成的n+k位汉明校验码为Hn+k„.H2H1, 各位的位号按照从右到左的顺序依次为1,2,„,n+k,则每一个检验码Pi 所在的位号是2^(i-1),i=1,2,„,k 。有效信息位按照原排列顺序依次安排在其他位置上。

假如有七位有效信息位X7X6X5X4X3X2X1=1001101,n=7,可以得出k=4,这样得到的汉明码就是11位,四个校验码P4P3P2P1对应的位号分别是 8,4,2,1(即2^3,2^2,2^1,2^0).

11位汉明码的编码顺序为:

位号 11 10 9 8 7 6 5 4 3 2 1 编码 X7 X6 X5 P4 X4 X3 X2 P3 X1 P2 P1

(2)将n+k位汉明码中的每一位分到k 个奇偶组中。

对于编码中的任何一位Hm 依次从右向左的顺序查看其Mk-1„M1M0的每一位Mj (j=0,1,„,k-1),如果该位为“1”,则将Hm 分到第j 组. (如:位号是11可表示成二进制1011,第零位 一位 三位都是1,所以此编码应排在第0组 第1组 第3组)

把11~1写成4位二进制的形式,分组结果如下:

位号 11 10 9 8 7 6 5 4 3 2 1 二进制1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 编码 X7 X6 X5 P4 X4 X3 X2 P3 X1 P2 P1 第0组X7 X5 X4 X2 X1 P1 第1组X7 X6 X4 X3 X1 P2 第2组 X4 X3 X2 P3

第3组X7 X6 X5 P4

(3)根据分组结果,每一组按照奇或偶校验求出校验位,形成汉明校验码。若采用奇数校验,则每一组中“1”的个数为奇数,反之为偶数。(X7X6X5X4X3X2X1=1001101)

若用奇校验,则 _________________

P1=X7⊕X5⊕X4⊕X2⊕X1=X7⊙X5⊙X4⊙X2⊙X1=0;

同理可得 P2=1 ; P3=1 ; P4=0

将这些校验码与有效信息位一起排列(分别插入到1,2,4,8位),可以

得到11位汉明校验码:[1**********];

若采用偶校验,则

P1= X7⊕X5⊕X4⊕X2⊕X1= 1⊕0⊕1⊕0⊕1=1;

P2=0; P3=1; P4=0

将这些校验码与有效信息位一起排列,可得到11位汉明编码: [1**********]

2. 校验码的校验方法 在信息传输中,将校验位与有效信息位一起形成的汉明校验码进行保存和传送,当接收到对方的校验码后,需要对其进行校验,判断是否出错。

校验方法就是:把n+k位校验码重新再分为k 个组。若用奇校验,则每一组中“1”的个数应该为奇数;若用偶校验,则每组中“1”个数应该为偶数,如果不满足表示出错了。

对上面的例子校验码进行校验,四位校验结果为:

E0= X7⊕X5⊕X4⊕X2⊕X1⊕P1=1; E1=1; E2=1; E3=1 _ _ _ _

因为 E3 E2 E1 E0=0000,所以接收到的汉明码是正确的。 假如收到的代码是[1**********],得到的校验结果为 E0=0 ;E1=1; E2=0;E3=1 _ _ _ _

因为 E3 E2 E1 E0=0101,不全是0,表示接收的校验码有错(并且

0101是二进制5)即把第五位取反,就可以得到正确的代码。


相关内容

  • hammin(汉明)码编码规则
  • 计算机 汉明码 编码规则 若编成的海明码为Hm,Hm-1-H2H1,则海明码的编码规律为: (1)校验位分布:在m位的海明码中,各校验位Pi分布在位号为2^(i-1)的位置,即校验位的位置分别为1,2,4,8,-,其余为数据位:数据位按 原来的顺序关系排列.如有效信息码为-D5D4D3D2D1,则编 ...

  • 通信原理课程设计--汉明码的编码和译码
  • 兰州理工大学 课 程 设 计 报 告 课程名称: 通信系统课程设计 设计名称: 汉明码的编码和译码 姓 名: 学 号: 班 级: 指导教师: 起止日期: 2014.4.7-2014.4.9 课 程 设 计 任 务 书 学生班级: 学生姓名: 学号: 设计名称: 汉明码的编译和译码 起止日期: 201 ...

  • 数据通信原理过程考核
  • 1. 分析影响信道容量的主要因素有哪些,现有一个1MHz 带宽的通道,通道的信噪比是63,求信道容量.[6Mbps ] 2. 阐述什么是位同步,缺乏位同步的效果(可以举例说明)? 3. According to Nyquist Law ,for good representation, we mus ...

  • 信道编码实验报告
  • 无线通信基础课程设计报告 (信道编码) 小组成员: 指导老师: 完成时间: 无线通信系统课程设计报告 实验摘要:数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从 而使接收端产生图象跳跃.不连续等现象.信道编码通过对数码流进行相应的处理,使系统具有一定的检错和纠错能力,可极大地避免码 ...

  • 第3章+差错控制
  • 3.1 第3章 差错控制 差错控制的基本概念及原理 3.1.1差错控制的基本概念 1.差错分类 z z 例:数据序列1 0 1 1 0 0 0 1 1 1 0 1 ××× ×× ××× 这一串为突发差错(中间可能有不错的码) 2.差错控制的基本思路 P95 信息码+监督码=(加的监督码越多,差错控制 ...

  • 无线通信协议原理及设计
  • 无线通信协议原理及设计 一 常简便 采用有效的办法来确保通信以及如何有效地传输数据 题因为PTR2000的应用非然而一些外部的因素会对数据的传输产生的影响,由此需我们将介绍一个高效的数传协议来解决传输中出现的这些问 二它包括产生出数据流发射解码 数据源 数据源可能是各种各样的东西,可能是一个温度传感 ...

  • 线性分组码-习题
  • 1. 已知一个(5, 3)线性码C的生成矩阵为: ⎡1G=⎢⎢0 ⎢⎣0 110 011 01⎤ 01⎥⎥ 11⎥⎦ (1)求系统生成矩阵: (2)列出C的信息位与系统码字的映射关系: (3)求其最小Hamming距离,并说明其检错.纠错能力: (4)求校验矩阵H: (5)列出译码表,求收到r=11 ...

  • 海明码编码
  • 纠错编码-海明码 在数据通信的过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够通过这些冗余信息推导出实际发送出的应该是什么样的比特串.最常见的纠错码是海明码,它能发现两比特错,但只能纠正单比特错. 汉明编码是将码字内的位从最左边开始依次编号,第1位是1号,第2位 ...

  • 数据通信原理
  • 北京邮电大学高等函授教育.远程教育 <数据通信>综合练习题 一.填空题 1.数据通信中常用的二进制代码有_____________________._____________________. _______________________和_______________________ ...