一、码距
一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。
如下图所示,用三个bit来表示八个不同信息中。在这个系统中,两个码字之间不同的bit数从1到3不等,但最小值为1,故这个系统的码距为1。如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。例如,如果传送信息001,而被误收为011,因011仍是表中的合法码字,接收机仍将认为011是正确的信息。
然而,如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如下图所示
(1)示例
海明码可以发现两位错或者纠正一位错,其码距为3。
解:根据纠错理论,L-1=D+C,且D≥C,L为码距,D为检错位数,C为纠错位数;结合题干描述的海明码的纠错能力可知其码距为3
二、海明码
(1)基本思想及工作流程
海明码是一种多重奇偶校验码,有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,还能指出错位的位置,为自动纠错提供依据。
(2)示例
1. 确定海明码的位数
2. 确定校验位的分布
3. 求校验位的值
所以,1010对应的海明码为1010010(加粗部分为校验位,其余为信息位)
4. 海明码的校验
每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查
010说明H2(P2)出错,直接将该位取反就达到了纠错的目的