2.3数据校验基本原理
受元器件的质量、电路故障或噪音干扰等因素的影响,计算机在对数据进行处理、传输及存储过程中,往往会出现错误。如何发现或纠正上述过程中的数据错误,是计算机系统设计者必须面临的问题。
码距
(1)什么是码距? 在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离。 (2)举个栗子? 比如说到码A和码B的码距,就是看从A到B有几个2进制位翻转… 1100和1101之间码距为1,因为只有最低位翻转了。 而1001和0010之间码距则为3,因为只有1位没有变化。 10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。
简单来说,计算海明距离的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数。例如110和011这两个位串,对它们进行异或运算,其结果是: [2] 110⊕011=101 异或结果中含有两个1,因此110和011之间的海明距离就等于2。
有了码距的概念,就可以知道码距与检错或纠错能力的关系,如下图
如何选择码距
(1)在确定与使用数据校验码时,应该考虑在不过多增加硬件开销的情况下,尽可能发现或改正更多的错误。 (2)码距越大,抗干扰能力越强,纠错能力越强,数据冗余越大,编码效率低,编码电路也相对复杂; (3)选择码距必须考虑信息发生差错的概率和系统能容许的最小差错率。
练习
1、下列编码中码距为2的编码是( ) (多选) A.0011, 1100, 0000, 0101 B.00 , 11, 01, 10 C.000, 101, 110 D.00000, 11100, 00111, 10100 正确答案:A、C 2下列关于码距与检错与纠错能力的描述中正确的是 ( ) (多选) A.码距为1的编码不具备任何检错能力 B.码距为2的编码具有1位检错能力,但无纠错能力 C.码距为4的编码可检测出2位错误,并可纠正1位错误 D.码距为4的编码可检测出2位错误,并可纠正2位错误 正确答案:A、B、C 3下列关于校验的描述中,正确的是 ( ) (多选) A.校验码的基本原理就是通过增加校验位提高码距,从而使编码具有检错或纠错能力 B.码距越大,对应编码的检错与纠错能力就越强 C.码距越大,所需要的校验信息也就多,对应的编码效率就越低 D.校验既可采用硬件实现,也可采用软件实现 正确答案:A、B、C、D