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,如果不同位有错,其余数不一样。可以证明余数与错误位的对应关系只与码系和生成多项式有关,而与信息位无关。