循环冗余校验码

CRC循环冗余校验码的定义及相关例题

一、CRC是什么?

循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。
这种编码基本思想是将要传送的信息M(X)表示为一个多项式L,用L除以一个预先确定的多项式G(X),得到的余式就是所需的循环冗余校验码。

二、CRC码怎么计算

1.模2运算

模2运算是一种二进制算法,CRC校验技术中的核心部分。
与四则运算相同,模2运算也包括:
1、模2加法:
0和1之间的加法,其中0+0=0,1+0=0+1=1,1+1=0(!)
2、模2减法:
不考虑借位,0-0=0 1-1=0 1-0=1 0-1=1
3、模2乘法:
多位数的模2乘法与普通乘法一样演算,唯一的区别是,部分积相加时按模2加,即奇数个1相加得1,偶数个1相加得0
0×0=0 0×1=0 1×0=0 1×1=1
4、模2除法:
模2除法是模2乘法的逆运算
模2除法具有下列三个性质:
(1)当最后余数的位数小于除数位数时,除法停止。
(2)当被除数的位数小于除数位数时,则商数为0,被除数就是余数。
(3)只要被除数或部分余数的位数与除数一样多,且最高位为1,不管其他位是什么数,皆可商1。
四种二进制运算。

2.检错计算举例

(1)设约定的生成多项式为G(x)=x4+x+1,其二进制表示为10011,共5位,其中k=4。
字丑勿见怪

(2)假设要发送数据序列的二进制为1101011011( 即 F(x) ),共10位。

(3)在要发送的数据后面加4个0(生成 F(x)*xk),二进制表示为11010110110000,共14位。

由于G(x)最高次幂为4,(k=4),所以发送数据乘以2^4

(4)用生成多项式的二进制表示10011去除乘积11010110110000,按模2算法求得余数比特序列为 1110(注意余数一定是k位的)。
如有错误,敬请纠正

(5)将余数添加到要发送的数据后面,得到真正要发送的数据的比特流:11010110111110,其中前10位为原始数据,后4位为CRC校验码。

(6)接收端在接收到带CRC校验码的数据后,如果数据在传输过程中没有出错,将一定能够被相同的生成多项式G(x)除尽,如果数据在传输中出现错误,生成多项式G(x)去除后得到的结果肯定不为0。

在这里插入图片描述


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值