1.奇偶校验码
奇校验码保证一段数据出现奇数个1。
如两个码字 00 与 01,为保证奇校验的要求,该两码字可增添为100和001。
偶校验码则保证一段数据出现偶数个1.
2.海明码
使用奇偶校验码的缺点是只能对整段数据进行校验,而无法对局部进行校验,因此引入海明码。
**海明码设计思路:**分组校验->多个校验位->校验位标出出错位置。
设信息位n,校验位k,校验位计算公式:2^k>=n+k+1。
注:校验位Pi需放在2^(i-1)的位置上.
怎么求校验位**?
海明码位上:7=22+21+20、6=22+21、5=22+20、3=21+2^0,权重的指数代表P3,P2,P1。
P1=0,P2=1,P3=0;把校验位填入海明位;
纠错
将本身进行异或,若全为0代表正确,若得到的是010则说明第二个位置错误,将其取反即可。
CRC校验码
-
k位信息位,R位校验位,校验码位数N=K+R。
-
移位后信息码变为101001000
-
用移位后的信息码101001000被除二进制码1101的余数就是校验码。如下图:
**4.纠错:**所接收的的CRC码除以二进制位1101所得余数为000,则正确。