【循环冗余校验码】CRC循环冗余校验码的计算CRC码是由两部分组成,前...

发布时间:2021-04-01 19:32:26

CRC循环冗余校验码的计算CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码.它的编码规则是:1、首先将原信息码(kbit)左移r位(k+r=n)2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码.第一个规则我我明白 但是第二个的生成多项式的就不明白了1.将什么放入多项式中计算?是不是信息码?多项式的计算规则是怎么样的?是不是就是移位 X3就是左移3位 最后按加号相加?最好能够讲解这个列子例如:g(x)=x4+x3+x2+1,(7,3)码,信息码110产生的CRC码就是:1111101 | 110,0000111 011 01001 11011001余数是1001,所以CRC码是110,1001 数学

网友回答

【答案】 假设使用的生成多项式是G(x)=x3+x+1.4位的原始报文为1010,求编码后的报文.
  1、将生成多项式G(x)=x3+x+1转换成对应的二进制除数1011.
  2、此题生成多项式有4位(R+1),要把原始报文C(x)左移3(R)位变成101,000,0
  3、用生成多项式对应的二进制数对左移4位后的原始报文进行模2除:
  1001--商
  1010000
  1011--除数
  1000
  1011
  011--余数(校验位)
  编码后的报文(CRC码):
  1010000
  + 011
  101,001,1
  例如:g(x)=x4+x3+x2+1,(7,3)码,信息码110产生的CRC码就是:
  101
  11101 | 110,0000(就是110,0000/11101)
  111 01
  1 0100
  1 1101
  1001
  余数是1001,所以CRC码是110,1001
  CRC的和纠错
  在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误.若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同.可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而与信息位无关
以上问题属网友观点,不代表本站立场,仅供参考!