假设CRC编码采用的生成多项式为G(X) = x^4+x+1,请为位串10111001进行CRC编码。 

假设CRC编码采用的生成多项式为G(X) = x^4+x+1,请为位串10111001进行CRC编码。 


【正确答案】:

G(X) = X^4+X+1对应的比特串为10011,在待编码位串10111001后添加0000,得到101110010000。按如下计算过程求余数R。


于是,得到CRC编码后的结果为101110011001。


【题目解析】:

CRC编码的基本思想是:将二进制位串看成是系数为0或1的多项式的系数。一个k位二进制数据可以看作是一个k-1次多项式的系数列表,该多项式共有k项,从x^(k-1)到x^0。这样的多项式被认为是k-1阶多项式。故G(x) = x^4+x+1对应的比特串为10011。G(x)的阶为4。

假设G(x)的阶为r (即对应的位串为r+1位),则CRC编码过程如下。
1) 在帧的低位端加上r个0位,使该帧扩展为m+r位,对应的多项式为 x^rM(x)。故在待编码位串10111001后添加0000,得到101110010000。

2) 用G(x)系数对应的位串,去除(模2除法)x^rM(x)系数对应的位串,求得r位余数R。故得到余数1001。

3 )用x^rM(x)系数对应的位串,减(模2减法)去余数R,结果就是完成CRC编码的帧。 故得到CRC编码为101110011001。


Top