海明码校验纠错原理实例详解

问题

编码前有效信息为10011101,请求解对应的海明码

位数

如何海明码(校验码)的位数?参考如下公式:

2^k >= N+k+1

其中N为有效信息位数,k为校验码位数。

如上述问题,有效信息有8位,所以N = 8 代入上述公式,满足条件成立的最小值 k = 4,所以海明码(校验码)的位数为4

位置

海明码一共有4位,那它们的具体位置在哪里呢?位置公式如下:

2^n(2^0,2^1,2^2...)

有效信息(8位)+ 校验码(4位) = 12位,我们通过表格来定位校验码位置,如下表所示,P代表校验位,D代表信息位:

码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位2^02^12^22^3

求值(编码)

求值公式(以偶校验求值):

  1. Pn的值,受验证位中所有1的个数的影响,当1为偶数个时Pn = 0,当1为奇数个时 Pn = 1。
  2. 验证位 = Pn所在的位数起,校验n位,然后跳过n位,以此规则循环到末尾。(例如所在位数在第5位,则校验5位,然后跳过5位)
码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位10011101
P1验证位

P1验证位目前有3个1,为保证偶校验,所以P1 = 1。

码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位110011101
P1验证位
P2验证位

P2验证位目前有3个1,为保证偶校验,所以P2 = 1。

码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位1110011101
P1验证位
P2验证位
P3验证位

P3验证位目前有2个1,为保证偶校验,所以P3 = 0。

码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位111000111101
P1验证位
P2验证位
P3验证位
P4验证位

P4验证位目前有3个1,为保证偶校验,所以P4 = 1。

至此所有编码工作结束:111000111101

纠错(解码)

正确的海明码为111000111101,假设在传输过程中出现了错误,将第5位由0变成1了,则接收端实际接受的是111010111101。

将P1、P2、P3、P4所负责验证的码位取名为组,即得到对应的G1、G2、G3、G4四个组,然后分别用奇偶校验法去验证各组码值定位错误。

码位123456789101112
码值P1P2D1P3D2D3D4P4D5D6D7D8
校验位11101(异常)0111101
P1验证位
P2验证位
P3验证位
P4验证位
G1111110
G2110110
G301011
G411101
  • G1验证组有5个1,奇数,使用异或运算G1 = 1。
  • G2验证组有4个1,偶数,使用异或运算G2 = 0。
  • G3验证组有3个1,奇数,使用异或运算G3 = 1。
  • G4验证组有4个1,偶数,使用异或运算G4 = 0。

计算法

校验位降序排列G4 G3 G2 G1,设出错位为N,则得到公式N = 0101 换成十进制是5,所以第5位出现了传输错误。

图表法

通过图标G1和G3共同验证的码位是5和7,使用排除法纠错确定是第5位发生了错误。

综上,纠错后的信息为:111000111101

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值