CRC循环冗余校验码的计算

假设使用的生成多项式是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 | 10000(即110000/11000)

111 01

1 0100

1 1101

1001

余数是1001,所以CRC码是110,1001。

CRC的和纠错

接收端收到CRC码后,生成多项式为G(x)除以模2。如果余数是0,则码字是正确的。如果一位有错,余数不为0,如果不同位有错,其余数不一样。可以证明余数与错误位的对应关系只与码系和生成多项式有关,而与信息位无关。