海明码的计算

海明码的计算,第1张

19.选B20.选C例1.解:1)由监督关系式知冗余码为a2a1a0. 2)冗余码与信息码合成的海明码是:0010a2a1a0"设s2=s1=s0=0,由监督关系得: a2=a4+a5+a6=1 a1=a3+a5+a6=0 a0=a3+a4+a6=1 因此,海明码码字为:"0010101" 例2:不会做啊.

海明码是一种利用奇偶性来差错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置插入K个校验位,通过扩大码距来实现检错和纠错。

假设数据位是n位,校验位是k位,则n和k的关系必须满足以下关系:

2^k -1 >= n+k

依据给定的数据位,很容推断到校验位,但是校验位在数据中的位置需要立即。

还是以一个实际的例子说明吧:

原始数据:1011

这样 n=4 , 将 k=1,2,3,...  代入公式很容发现 k=3就满足条件,2^3-1 >=4+3

所以校验码位数为3位,数据和校验码一共7位。

校验码的位置都处在2的n(n=0,1,2,3...)次方中,即位于1,2,4,8,16....的位置上,其余为才能填充数据。

本例就7位数据组成:D4D3D2D1+P2P1P0

7        6        5        4        3        2        1

D4      D3    D2       P2      D1      P1    P0

1        0        1                    1

7=4+2+1 ==>第4位 P2,第2位P1,第1位 P0 这3个校验位共同校验

6=4+2==>第4位 P2,第2位P1 这2个校验位共同校验

5=4+1 ==>第4位 P2,第1位 P0  这2个校验位共同校验

3=2+1 ==>第2位P1,第1位 P0    这2个校验位共同校验

校验码计数,异或运算:

P2 = D7^D6^D5=1^0^1=0

P1=D7^D6^D3=1^0^1=0

P0=D7^D5^D3=1^1^1=1

校验码为:001

传输数据为: 1 0 1  0  1  0 1

检错和纠错原理

接收方依据同样的规则重新计算三位校验码的值。而后与接收到的校验码进行异或。当数据无误时,产生的校验码无误,若接收到的校验码有误,那么这不同的2个校验码异或,必然为1.

若某位的校验码最终异或结果为1,则表示产生了错误,找出错误位之后,就可以纠错了,纠错方法就时将该为逆转。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11938954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存