海明码列题

#海明码列题

最近在学习海明码,看了一遍书还是不太理解,就找了一道题自己做做看。

例子:8位数01101101如何使用海明码进行校验

①数据位n=8,则根据公式2k-1>=n+k计算出校验位k = 4;

则8个数据位为D0,D1,D2,D3,D4,D5,D6,D7;4个校验位为P1,P2,P3,P4。

②根据公式Pi=2i-1=计算出校验位的位置分别为1,2,4,8,则排列后的数据为:

D7,D6,D5,D4,P4,D3,D2,D1,P3,D0,P2,P1

③计算校验位的值:

海明码下标校验位
H1(P1)1P1
H2(P2)2P2
H3(D0)3=1+2P1,P2
H4(P3)4P3
H5(D1)5=1+4P1,P3
H6(D2)5=2+4P2,P3
H7(D3)7=1+2+4P1,P2,P3
H8(P4)8P4
H9(D4)9=1+8P1,P4
H10(D5)10=2+8P2,P4
H11(D6)11=1+2+8P1,P2,P4
H11(D6)11=1+2+8P1,P2,P4
H12(D7)12=4+8P3,P4
可以得到涉及到P1的有D0,D1,D3,D4,D6;涉及到P2的有D0,D2,D3,D5,D6;涉及到的P3有D1,D2,D3,D7;涉及到P4的有D4,D5,D6,D7。

P1 =D0+D1+D3+D4+D6=1+0+1+0+1=1

P2 = D0+D2+D3+D5+D6=1+1+1+1+1=1

P3 = D1+D2+D3=0+1+1+0=0

P4 = D4+D5+D6+D7=0+1+1+0=0

可见结果不全为0,则存在错误位。

P4 P3P2 P1 = 0011 转换为10进制后为3,则第三位海明码H3(D0)有误,将D0取反后为正确的数据:

正确的数据:D7,D6,D5,D4,D3,D2,D1,D0

                 0     1     1       0     1      1      0       0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值