海明码学习笔记

        海明码由信息码和校验码两部分组成,设海明码为n位,信息码为m位,校验码为r位,则n = m + r。

校验码的位数

        海明码仅能检测其中一位出错的状态,信息码有m位,若仅有一位出错,则有m种状态,同理,若校验码出错则有r种状态,加上正确的状态,共有m + r + 1种状态。

        r位的二进制校验码共能表示2^{r}种状态,若要包含其全部的状态,则有2^{r}\geq m+r+1

        假设信息码为1011 0101,则m=8,由上文不等式可得r\geq 4,则r = 4,校验码有4位。

校验码的位置

        校验码应该放在2^{k}处,其中k = 0,1,2,...,r-1。

        假设信息码仍为上文的1011 0101,信息码加校验码共有n = m + r = 8 + 4 = 12位,对其编号:

12   11   10   9   8   7   6   5   4   3   2   1

        r = 4,故校验码应放在2^{0}2^{1}2^{2}2^{3},即1,2,4,8处,其余八位按序填入信息码:

1   0   1   1         0   1   0         1            

校验码的确定

        汉明码共有12位,其编号1 - 12分别可以写作:

                                                                        1 = 2^{0}

                                                                        2 = 2^{1}

                                                                        3 = 2^{1} + 2^{0} ;

                                                                        4 = 2^{2}

                                                                        5 = 2^{2} + 2^{0}

                                                                        6 = 2^{2} + 2^{1}

                                                                        7 = 2^{2} + 2^{1} + 2^{0}

                                                                        8 = 2^{3}

                                                                        9 = 2^{3} + 2^{0}

                                                                        10 = 2^{3} + 2^{1}

                                                                        11 = 2^{3} + 2^{1} + 2^{0}

                                                                        12 = 2^{3} + 2^{2}

        校验码四位编号分别位1、2、4、8。

        先看第1位:1 = 2^{0},找出上文编号中所有含2^{0}的编号,即1、3、5、7、9、11,除去1号位为检验码未知外,其余均为已知,则有

      1   0   0   1   0

        海明码为偶校验(1的数量为偶数),则      1   0   0   1   0中第1位应为0。

        剩下三位确定方式相同,不再赘述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值