循环冗余校验码

  

 编码规则


    CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。它的编码规则是:


移位

    将原信息码(kbit)左移r位(k+r=n)


相除

   运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。

非常简单,要说明的:模2除就是在除的过程中用模2加,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是:

0+0=1+1=0,1+0=0+1=1

即‘异’则真,‘非异’则假。

由此得到定理:a+b+b=a也就是‘模2减’和‘模2加’直值表完全相同。

有了加减法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。

 

生成多项式应满足以下原则


  a、生成多项式的最高位和最低位必须为1。

  b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应 该使余数不为0。

  c、不同位发生错误时,应该使余数不同。

  d、对余数继续做模2除,应使余数循环。

 

 

例如:


  g(x)=x^4+x^3+x^2+1,(7,3)码,信息码110产生的CRC码就是:

对于g(x)=x^4+x^3+x^2+1的解释:(都是从右往左数)x4就是第五位是1,因为没有x1所以第2位就是0。

11101 |110,0000(设a=11101 ,b=1100000)

用b除以a做模2运算得到余数:1001

余数是1001,所以CRC码是1001,传输码为:110,1001



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值