CRC码的计算

CRC码,即循环冗余码,是一种广泛使用的错误检测方法。它基于多项式除法,通过预先约定的生成多项式G(X)进行编码和校验。本文详细解释了如何将信息位转换为多项式,以及如何通过模2除法计算冗余位,以形成最终的码字。以实例展示了CRC码的计算过程。
摘要由CSDN通过智能技术生成

简介

  循环冗余码是最常用的差错控制编码方法之一,又称为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

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值