校验码
在原有信息中增加一些冗余信息,用于校验;
码距:任何一种编码都由许多码字构成,任意两个码字之间最小的变化二进制位就称为数据校验码的码距;如:00表示男,11表示女,则码距为2;如用四位二进制表示16种状态此时码距为1,如0000,0001;
奇偶校验码
奇偶校验码的编码方式是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码;
奇校验:整个校验码(有效信息和校验位)中1的个数为奇数;
偶校验:整个校验码(有效信息和校验位)中1的个数为偶数;
检错有局限性,如使用偶校验:发送11,收到00,无法检错;
无法纠错;
CRC循环冗余校验码
CRC校验,可检错,不可纠错;
CRC的编码方法是:在k位信息码之后拼接r位校验码.应用CRC码的关键是如何从k位信息位见面的得到r位校验位(编码),以及如何从k+r位信息码判断是否出错;r的具体数值由生成多项式决定;
把接收到的CRC码用约定的生成多项式G(X)去除(模二除法),如果正确在余数位0;如果某一位出错则玉树不为0.不同的位数出错玉树不同,余数和出错为之间有唯一的对应关系;
海明校验码
海明校验,可检错,可纠错;
海明校验码的原理:在有效信息位中加入几个校验位形成海明码,使码距比较均匀的拉开,并把海明码的每个二进制分配到几个奇偶校验组中.当有一位出错后,就会引起有关的几个校验位的值发生吧变化,这不但可以发现错误,还能指出错误位置,为自动纠错提供了依据;
公式: 2^r>=m+r+1 => 2^r-1>=m+r 求r最小值,m代表信息位个数;