奇偶校验码
校验原理:
1)由若干代码组成的字叫码字。
2)将两个码字逐位进行对比,具有不同的位的个数称为两个码字的距离。
3)一种编码方案可能有若干合法码字,各合法码字间最小距离称为“码距”。
距离d=1时,无检错能力;d=2时,有检错能力;d=3时,若设计合理,可能具有检错、纠错能力。
奇校验码
整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验码
整个校验码(有效信息位和校验位)中“1”的个数为偶数。
硬件实现(以偶检验码为例)
各信息进行异或(模2和)运算,结果为偶校验位。
海明码
原理
对于n个有效信息位,分组进行偶校验=>多个校验位
计算
n个信息位,k个校验位,满足:2^k>=n+k+1
求解步骤:
1)确定位数:2^k>=n+k+1。
2)确定校验位分布:校验位Pi放在海明码位号位2^(i-1)位置上。
3)信息位按顺序放在其余位置。
例:
循环冗余校验码(CRC码)
基本思想:
数据发送、接收方约定一个整数
k个信息位+r个校验位作为“被除数”添加校验位后需保证让除法的余数为0。
计算:
1)确定k,r以及生成多项式对应的二进制码。
k=信息码的长度,r=多项式最高次幂
2)移位:信息码左移r位。
3)相除:模2除。
4)检错和纠错。
例: