先介绍部分概念:
由若干代码组成的一个字叫做码字
将两个码字逐位进行对比,具有不同的位的个数称为两个码字的距离
一种编码方案可能有若干个合法码字。各合法码字间的最小距离称为 码距
当d=1时,无检错能力;当d=2时,有检错能力;当d≥3时,若设计合理,可能具有检错、纠错能力。
校验原理简介
假设有一个编码方案:易知其码距为1。其在进行信息传递时可能因为某种原因发生位错误(0变1,1变0),从而导致错误的信息传递,但无法进行纠错。这是因为编码为2bit位映射的四个合法状态在接收信息时无法区分。
此时,在该编码前加上一个冗余校验位,得到如下编码方案,码距为2:
该编码为3bit,可映射到四个合法状态,还有四个冗余的非法状态。假设传输的信息编码为100,在传输过程中第三位发生位错误,编码变成了101,而编码方案中并不存在编码为101对应的信息,此时可进行检错,即该编码方案具有检错能力。
奇偶校验码
局限性:同时有两个bit位发生跳变时,跳变的结果可能也符合奇/偶校验
奇校验码:整个校验码(有效信息位和校验位)中的“1”的个数为奇数
偶校验码:整个校验码(有效信息位和校验位)中的“1”的个数为奇数
例1:给出两个编码1001101和1010111的奇校验码和偶校验码。
设最高位为校验位,余7位是信息位,则对应的奇偶校验码为:
由上述结论可知奇校验码中的“1”的个数为奇数,偶校验码中的“1”的个数为偶数
则
奇校验:11001101 01010111
偶校验:01001101 11010111
校验的硬件实现:
以偶校验为例:各信息进行异或(模2加)运算,得到的结果即为偶校验位
进行偶校验(所有位进行异或,若结果为1 则说明出错)
2式结果为1,即出错
3式中,有两个bit位出现位错误,但进行异或操作后结果为0,不能检测出错误,奇偶校验码的局限性由此体现。