|
|
知识路径: > 计算机系统基础知识 > 数据的表示 > 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码等) > 校验码 >
|
|
被考次数:1次
|
|
被考频率:
低频率
|
|
总体答错率:
46%
|
|
知识难度系数:
|
|
考试要求:
掌握
|
|
相关知识点:3个
|
|
|
|
海明码(Hamming Code)是由贝尔实验室的Richard Hamming设计的,是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
|
|
|
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
|
|
|
|
|
设k个校验位为Pk,Pk-1,…,P1,n个数据位为Dn-1,Dn-2,…,D1,D0,对应的海明码为Hn+k,Hn+k-1,…,H1,那么:
|
|
|
(1)Pi在海明码的第2i-1位置,即Hj=Pi,且j=2i-1,数据位则依序从低到高占据海明码中剩下的位置。
|
|
|
(2)海明码中的任何一位都是由若干个校验位来校验的。其对应关系如下:被校验的海明位的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。
|
|
|
对于8位的数据位,进行海明校验需要4个校验位(23-1=7,24-1=15>8+4)。令数据位为D7,D6,D5,D4,D3,D2,D1,D0,校验位为P4,P3,P2,P1,形成的海明码为H12,H11,…,H3,H2,H1,则编码过程如下。
|
|
|
|
|
|
|
|
|
(3)检测错误。对使用海明编码的数据进行差错检测很简单,只需做以下计算:
|
|
|
|
若采用偶校验,则G4G3G2G1全为0时表示接收到的数据无错误(奇校验应全为1)。当G4G3G2G1不全为0时说明发生了差错,而且G4G3G2G1的十进制值指出了发生错误的位置,例如G4G3G2G1=1010,说明H10(D5)出错了,将其取反即可纠正错误。
|
|
|