计算机组成原理-汉明码相关计算

今天复习计算机组成原理中看到了汉明码的计算,其中有些知识书上没有完全讲到,我这里根据自己的复习梳理下计算的几个方法。


检测位的小组

首先检测位的小组的划分书上说的有点不好理解,这里一种比较容易的理解方法是:
C1:小组中的数最后一个数的二进制数为1:1,3,5,7,9,11
C2:小组中的倒数第二个数的二进制数为1:2,3,6,7,10,11
C4:小组中的倒数第三个数的二进制数为1:4,5,6,7,12,13
C8:小组中的倒数第四个数的二进制数为1:8,9,10,11,12,13

依次类推

在做题的过程中,基本上只需要记住前四组的前六位就可以了


根据不同的代码长度n,所需要的检测位的个数为:2^k>= n+ k + 1

经常用的就是:

nk
12
2~43
5~114

然后检测位的插入位置是1,2,4,8,…,2^k-1

例如插入三个检测位,传递信息为:b1b2b3b4,则它们的位置安排如下:

二进制序号1234567
名称C1C2b1C4b2b3b4

计算

求相应的汉明码

例子:0101 求相应的汉明码

二进制序号1234567
名称C1C20C4101

配偶原则:
C 1 = 3 + 5 + 7 = 0 C1 = 3+5+7 = 0 C1=3+5+7=0
C 2 = 3 + 6 + 7 = 1 C2 = 3+6+7 = 1 C2=3+6+7=1
C 4 = 5 + 6 + 7 = 0 C4 = 5+6+7 = 0 C4=5+6+7=0
配奇原则:
C 1 = 3 + 5 + 7 = 1 C1 = \frac{}{3+5+7}=1 C1=3+5+7=1
C 2 = 3 + 6 + 7 = 0 C2 = \frac{}{3+6+7}=0 C2=3+6+7=0
C 4 = 5 + 6 + 7 = 1 C4 = \frac{}{5+6+7}=1 C4=5+6+7=1

配偶原则:使小组位中的1的个数为偶数
奇配原则:取配偶原则的相反数

简单的方法就是直接在二进制序号找出小组中的数

C1:1,357
C2:2,367
C4:4,567

最后得到0101的汉明码为(配偶原则):0100101
最后得到0101的汉明码为(配奇原则):1001101


汉明码的纠错

例子:接收到的汉明码为 0011001,求欲传送的代码

二进制序号1234567
名称0011001

对于任意不同的n位信息,下面的步骤均可以配置汉明码:

配偶原则:
P 1 = 1 + 3 + 5 + 7 = 0 P1 = 1 + 3 + 5 + 7 = 0 P1=1+3+5+7=0
P 2 = 2 + 3 + 6 + 7 = 0 P2 = 2 + 3 + 6 + 7 = 0 P2=2+3+6+7=0
P 4 = 4 + 5 + 6 + 7 = 0 P4 = 4 + 5 + 6 + 7 = 0 P4=4+5+6+7=0

即P1 P2 P4 = 000,表示没有位错误,故欲传送的信息为:1001

配奇原则:

P 1 = 1 + 3 + 5 + 7 = 1 P1 = \frac{}{1+3+5+7}=1 P1=1+3+5+7=1
P 2 = 2 + 3 + 6 + 7 = 1 P2 = \frac{}{2+3+6+7}=1 P2=2+3+6+7=1
P 4 = 4 + 5 + 6 + 7 = 1 P4 = \frac{}{4+5+6+7}=1 P4=4+5+6+7=1

即P1 P2 P4 = 111,表示第七位错误,可纠正为:0011000 ,故欲传送的信息为:1000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值