“21天养成好习惯”第一期—1

海明校验码是一种用于检测和定位错误的多重分组奇偶校验方法。它通过将数据分为多个分组并添加校验位来确保数据的准确性。本文详细介绍了如何进行分组、编码规则以及如何利用海明距离进行检错。例如,对于4比特有效码1001,其海明编码为0011001,当读取到数据0011011时,可以发现第6位错误并修正为0011001。若出现多位错误,需增加分组以提高纠错能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海明校验码

特点:是一种多重分组奇偶校验

做法:将代码组织为若干分组,每组进行奇偶校验

用途:能够检验是否出错,也能定位出错位

1.怎么分组

                        分成几组?每组包含多少校验位?

设 编码位数为k位,分成r组,每组1个校验位,则校验码位数为r位,海明编码总长n=k+r

代码检验时:每组能产生一个指误码,则r位指误码能产生2^r中可能的指误代码

当指误码为全0时,则表示海明编码无错,因此剩下2^r-1指误码能用来表示1位错的情况

*各参数应该满足:k+r<=2^r-1

因此,当k=4时 带入公式得4+r<=2^r-1 解得 r>=3 ,所以能组成7位海明码

2.分组方法

以有效信息:A1A2A3A4为例,则校验位为P1P2P3,方式为偶校验

 由图可知:第一组选定p1a1a2a4第二组选定p2a1a3a4第三组选定p3a2a3a4

每组选定应不相同

根据偶校验的规则,得到指误码的编码,如图,当数据码取1011010时,G3G2G1=000,则编码没有错误,当数据码取1011110时,G3G2G1=101(二进制)=5(十进制),表示第五位错误,则可将第五位变反得到正确编码1011010

海明距离(k=4,r=3)的海明距离为d=3

3.编码规则

每组均采用偶校验,填入检验码,组内具有偶数个1

【例题】4比特有效码(待编码数据)1001

(k=4,r=3)海明编码:0011001(黄色的为检验码)

4.检错与纠错

【例题】读取到数据:0011011

指误码:第3组0011011->G3=1

               第2组0011011->G2=1 --------->G3G2G1=110(二进制)=6(十进制)

               第1组0011011->G1=0

因此第6位出错,0011011->0011001

问?如果有多位数字发生错误呢?需增加分组扩大码距!

【注意】各组单独进行奇偶校验编码,以确定各组的校验位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值