一、校验码
目的:确保数据在传送过程中正确无误。
校验码的分类:
- 奇偶校验码
- 海明码(简述,不考)
- 循环冗余校验码(简述,不考)
码距:
一个编码系统中,任意两个合法编码之间至少有多少个二进制位不同。
如:
1010
1011
有1位二进制位不同,则码距就是1。
码距越大,越利于纠错和检错!!!
码距=2,检错能力
码距>=3,才有可能有纠错能力
二、奇偶校验码
2-1、奇校验
在编码中增加一位校验位,使得编码中1的个数为奇数。
如:1001——【在前面增加一位校验位】——>1 1001(有3个1,奇数个1)
2-2、偶校验
在编码中增加一位校验位,使得编码中1的个数为偶数。
如:1001——【在前面增加一位校验位】——>0 1001(有2个1,偶数个1)
奇偶校验,码数为2!
如:
1010,对比
1011,此时码距为1
奇校验:1 1010——>0 1011 ,此时码距为2
偶校验:0 1010——>1 1011,此时码距为2
2-3、特点
1、奇偶校验,只能检测代码中奇数位出错的编码。(如:只有1位出错,3位出错,5位出错......)
如:
11011的传输
1、只有1位出错:
奇校验:1 11011——> 1 11010,可以检测出
偶校验: 0 11011——>0 11010,可以检测出
2、只有2位出错:
奇校验:1 11011——> 1 11000,检测不出
偶校验: 0 11011——>0 11000,检测不出
2、奇偶校验,只能检错,不能纠错。
2-4、常用的奇偶校验:
- 水平奇偶校验码
- 垂直奇偶校验码
- 水平垂直校验码
三、海明码
利用奇偶性,可以实现检错和纠错。
真题:
海明码,利用多组数据的奇偶性,检错+纠错。
四、循环冗余校验码CRC
可以检错,但是不能纠错!
码距=2
利用生成多项式为K个数据位,产生r个校验位来进行编码。
校验位采用模2运算的方式得到。
五、小结
- 奇偶校验码:检错,码距=2;
- 海明码:检错+纠错;
- 循环冗余校验码CRC:检错,码距=2。
六、真题
真题1:
真题2:
真题3:
真题4:
真题5:
真题6:
真题7:
10 9 8 7 6 5 4 3 2 1
D5 D4 P4 D3 D2 D1 P3 D0 P2 P1
真题8:
真题9: