海明码小记

    一:海明码的计算

    牢记公式:2^r>=k+r+1 其中

k是已知的,是原本就提供了的信息码的位数

r是未知的,是需要通过该公式计算的

举例:信息码1011,求海明码以及校验方式

(1)1011一共四位,所以k=4

2^r>=4+r+1    得到满足公式的最小整数r为3,所以海明码一共七位,这三个校验位的位置分别为2^0, 2^1, 2^2 (如果不止三位,则按2的N次方递增) 

H7H6H5H4H3H2H1
101R31R2R1

   现在信息码的位置分别为7,6,5,3    校验码的位置为4,2,1

7=4+2+1

6=4+2

5=4+1

3=2+1

R1(7,5,3) PS:R1在1号位置,1在上面的等式里在7,5,3中都有出现,以下同理

R2(7,6,3)

R3(7,6,5)

∴R1=H7⊕H5⊕H3=1⊕1⊕1=1

  R2=H7⊕H6⊕H3=1⊕0⊕1=0

  R3=H7⊕H6⊕H5=1⊕0⊕1=0

由此可得 最终海明码为 1010101

二:海明码校验

因为有三个校验位,所以进行校验时也是三个值,这三个值用G1,G2,G3来表示

G1=R1⊕H7⊕H5⊕H3

G2= R2⊕H7⊕H6⊕H3

G3=R3⊕H7⊕H6⊕H5

用收到的数据对应的位置上的值代入以上公式计算,三个值都为0则没有出错,如果值为1,则数据传输错误。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值