海明码!是人看的例子!说人话!

一、特点

反正兄台都已经翻烂了,这里就简单描述:
	
可检错,可纠错

二、奇偶校验概念

  • 偶校验:

    即获取的二进制字符串中,“1” 的个数为偶数(双数)时,取值为0,否则为1。

    例如:r0 = 1001⊕1111⊕1110⊕1101 = 0 (⊕ 为异或)

  • 奇校验:

    跟偶校验取值相反,当“1” 的个数为偶数(双数)时,取值为1,否则为0。

    这里的海明码是用 偶校验

三、求海明码

1、数据位n位,校验位k位,公式:
在这里插入图片描述

假设数据位8位,引入上面公式得:
在这里插入图片描述
满足不等式最小值即为校验位个数,所以校验位有4位。

海明码总长度为:n+k 。所以为8+4=12位。

2、求解

令信息位为D7,D6,D5,D4,D3,D2,D1,D0,信息位从高往低占据编码位;

令校验位为P3,P2,P1,P0,校验位P0=2⁰=1,P1=2¹=2,P2=2²=4,P3=2³=8;

形成的海明码编码过程如下:
在这里插入图片描述
信息位D7的位数为12,12=8+4,所以D7的校验位组为P3(位数:8)和P2(位数:4),即信息位的位数=校验位组的位数之和。

在这里插入图片描述
由上表可得,P0参与了D0,D1,D3,D4,D6的检验,其他由此类推
P0=D0⊕D1⊕D3⊕D4⊕D6
P1=D0⊕D2⊕D3⊕D5⊕D6
P2=D1⊕D2⊕D3⊕D7
P3=D4⊕D5⊕D6⊕D7

这样子就可以算出整个海明码的值了。

四、例子:

设数据为01101001,求海明码。

数据位为8,则2⁴-1=15>8+4=12,则校验位为4位,即这个海明码长12位;
D7D6D5D4D3D2D1D0=01101001;
P0=2⁰=1,P1=2¹=2,P2=2²=4,P3=2³=8;
P0=D0⊕D1⊕D3⊕D4⊕D6=1⊕0⊕1⊕0⊕1=1
P1=D0⊕D2⊕D3⊕D5⊕D6=1⊕0⊕1⊕1⊕1=0
P2=D1⊕D2⊕D3⊕D7=0⊕0⊕1⊕0=1
P3=D4⊕D5⊕D6⊕D7=0⊕1⊕1⊕0=0

则海明码为011001001101

仅做位个人笔记。

博客引用出处:
https://blog.csdn.net/abc123007q/article/details/90901586?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%B1%82%E6%B5%B7%E6%98%8E%E7%A0%81%E7%9A%84%E6%B5%81%E7%A8%8B&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-90901586.first_rank_v2_pc_rank_v29

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值