校验码-海明距离

自由 / 2024-12-29 / 原文

简介

在信息编码中,两个编码对应二进制位不同的个数称为码距,又称海明距离。

如10101和00110从第一位开始依次有第1位、第4位、第5位等3位不同,则码距为3。一个有效编码集中,任意两个码字的最小码距称为该编码集的码距。

校验码的目的就是扩大码距,从而通过编码规则来识别错误代码。码距越大,抗干扰能力、纠错能力越强,数据冗余越大,编码效率越低,选择码距时应考虑信息出错概率、系统容错率以及硬件开销等因素。

示例

例子:现有两种编码体系,分别分析它们各自的码距。
(1)设用4位二进制数表示16种状态,从0000~1111。
(2)4位二进制数可表示0000、0011、0101、0110、1001、1010、1100、1111共8种状态
解:
(1)根据码距定义,4位二进制数表示 16 种状态时的最小码距为1,任何一个合法编码发生一位错误时,就会变成另外一个合法编码,所以这种编码不具备检测错误的能力。
(2)第二种编码方式的最小码距为2。8个编码中的任何一个编码中发生一位错误时,如0000变成 1000,就会从合法编码变成无效编码,所以这种编码可以识别一位错误。

但发生两位错误时合法编码可能变成另外一个合法编码,如0000变成0011,所以它对两位错误无法检测。

码距是编码体系中的重要概念,从上例不难看出,增大码距能把一个不具备检错能力的编码变成具有检错能力的编码。

校验码就是利用这一原理,在正常编码的基础上,通过增加几余校验信息来到达增大码距的目的,使其具有检错功能,甚至具有纠错的能力。


以上摘自《谭志虎--计算机组成原理》