码距:任意两个合法编码间不同的二进制位数的最小值。最小码距
0011和0001的码距为1,一位错时无法识别。
码距的计算:两个编码按位异或后1的个数 = 码距 110异或101 = 011 1的个数为2,所以码距为2
码距越大,抗干扰能力,纠错能力越强,数据冗余越大,编码效率越低。
奇偶校验 最小码距为2
海明码 最小码距为3
比如:
用0表示√,用1表示×(码距为1),这时候如果1在传输过程中变成了0,是没有办法检错的。
用00表示√,用11表示×(码距为2),这时候00在传输过程中变成了01或者10,是可以检测出有一位错误,但是不能确定是哪一位出现了错误(可能是00变成01,也可能是11变成01)即不能纠错。
用000表示√,111表示×(码距为3),这时000在传输过程中变成了001或者010或者100,假设情况只能出现一个错误,那么说明是为1的那一位出现了错误,取反即纠错;假设情况可以出现多个错误,那么可以是1/2位、1/3位、2/3位发生了错误(111在传输过程中),那么可以判断是两位发生了错误,但是不能纠错。
码距与纠错性能:
注:检测出更多位数的目的还是纠错,没有必要只检测出几位错,而不纠错。