CRC码的计算

简介

  循环冗余码是最常用的差错控制编码方法之一,又称为CRC码,它是利用除法及余数的原理来作错误侦测(Error Detecting)的。
  CRC码又称为多项式码,任何一个由二进制数位串组成的代码,都可以唯一地与一个只含有0和1两个系数的多项式建立一一对应的关系。例如,代码1010111对应的多项式为X^6+X^4+X^2+X+1,同样多项式X^5+X^3+X^2+X+1,对应的代码为101111。

CRC码详解

  CRC码在发送端编码和接收端检验时,都可以利用事先约定的生成多项式G(X)来得到。k位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由k位信息位后面加上r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=X^r·K(X)+R(x)。例如

信息位:1011001(K=7)   ——> K(X)=X^6+X^4+X^3+1
冗余位:1010(r=4)     ——> R(X)=X^3+X
码字: 10110011010(n=11)  ——> T(X)=X^4·K(X)+R(X)
=X^10+X^8+X^7+X^4+X^3+X

  由信息位产生冗余位的编码过程,就是已知K(X)求R(X)的过程。在CRC码中可以通过找到一个特定的r次多项式G(X),然后用X^r·K(X)去除以G(X),得到的余式就是R(X)。

计算

  以上例中K(X)=X^6+X^4+X^3+1为例(信息位为1011001),若G(X)=X^4+X^3+1(对应代码11001),取r=4,则X^4·K(X)=X^10+X^8+X^7+X^4(对应代码为10110010000),其由模2除法求余式R(X)的过程所示如下:
         1101010
11001 ) 10110010000

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
crc校验是一种循环冗余校验,用于检测和纠正数据传输中的错误。通过对要传输的数据进行处理,生成一个校验,并将其附加到数据中一起传输。接收端也会对接收到的数据进行相同的处理,然后与接收到的校验进行比较,从而判断数据是否正确。 我们来看一个crc校验计算例题: 假设要传输的数据为101011,生成多项式为1011(即x3+x+1),那么我们可以按照以下步骤来计算crc校验: 1. 首先在要传输的数据后面补上与生成多项式相同位数的0,比如我们要传输的数据为101011,则在后面增加3位0,变成101011000。 2. 然后用生成多项式去除这个新的数据,得到的余数就是crc校验。具体的计算过程是进行异或运算,从数据的最高位开始,依次将生成多项式与数据进行异或,得到的结果再与下一位进行异或,直到数据的最低位为止。最后得到的余数就是crc校验。 3. 将得到的crc校验附加到数据后面,一起传输给接收端。 接收端同样按照相同的方式进行数据处理和计算,然后将得到的crc校验与接收到的校验进行比较,如果相同,则数据传输正确无误,如果不同,则说明数据存在错误。 通过以上计算例题,我们可以了解到crc校验计算过程,以及其在数据传输中的应用。crc校验能够帮助我们检测和纠正数据传输中的错误,保障数据的正确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值