检错纠错码(奇偶校验码 CRC循环冗余校验码 海明码)

本文深入解析了三种常见的检错纠错码:奇偶校验码、CRC循环冗余校验码和海明码,详细介绍了它们的工作原理、校验方法及特点。

检错与纠错码在计算机中经常被使用,在此对常用的三种检错纠错码做一个介绍,分别是奇偶校验码,CRC循环冗余校验码和海明码。

奇偶校验码

通常所说的奇偶校验码指的是一维奇偶校验码,它只能检错,不能纠错;只有二维奇偶校验码具备纠错能力。

校验方法:分为奇校验和偶校验,默认是校验所传输数据中’1’的个数是奇数还是偶数。
当约定为奇校验时,当所传输数据中’1’的个数为奇数,便在数据后面添加’0’;当所传输数据中’1’的个数为偶数,便在数据后面添加’1’,使1的个数满足奇数个。当约定为偶校验时,类似。后面的附加位选择是用来控制数据中’1’的个数,使其满足校验规则(奇数个或是偶数个)。

判断是否出错?当约定为奇校验时,如果接收方收到的数据中’1’的个数为奇数时,则认为未出错,否则发生错误。偶校验时类似。

例如:对待传输数据10110110约定采用奇校验时,发送方所需要发送的校验码为101101100,对于接收方来说,如果接收到的数据中’1’的个数不为奇数时,就会认为数据出错。

特点:接收方不会知道是数据的哪一处发生错误;只能检测奇数个位出现错误的情形,不能检验偶数个位发生错误;开销小,常用来校验1字节长的数据(只有1位出现错误的可能性大)。

CRC循环冗余校验码

循环冗余校验可以发现并纠正信息在传输过程中所出现的错误。

由于后面计算的需要,先引入模2运算的计算方法,它也可以看作为异或运算。

模2加法-按位加,不考虑进位:0+0=0;0+1=1;1+0=1;1+1=0。模2减法-按位减,不考虑借位:0-0=0;0-1=1;1-0=1;1-1=0。可以看出模2加法与减法的运算结果相同,故一律采用模2加法来运算。模2乘法-按照模2加法求部分积之和,不考虑进位。模2除法-按照模2减法求部分余数,不借位。余数的位数应该为除数的位数减一。

生成多项式:G(x)的选用需要满足合适的条件:1,任何一位发生错误,都应该使余数不为0;2,不同位发生错误应使余数不同;3,对余数继续做模2除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值