要发送的数据为1011010011。采用CRC的生成多项式是P(X)=X⁴+X+1。试求应添加在
数据后面的余数。
答:1)将信息码1011010011左移4位,得M(X)=10110100110000
2)生成多项式,G(X)=10011
3)M(X)/G(X)=10110100110000/10011,得商=1001100000,余数=10000
所以CRC=1001100000。
答案:
(1)将信息码1011010011左移4位,得m(x)=10110100110000,
由CRC的生成多项式P(X)=X4+X+1,可得除数P=10011;
将m(x)模2再除P,可得余数为1110;
(2)数据(这里要注意是数据,不包括检验序列)在传输过程中最后一个 1 变成了 0 ,则接收方收到的数据为 11010110101110 。将数据11010110101110除 P (10011)得到的余数为0011,故会发现差错。
(3)若数据在传输过程中最后两个 1 都变成了 0 ,则接收方收到的数据为 11010110001110 。数据11010110001110除 P(10011) 得到的余数为0101,不为零,故会发现差错。
解析:
(1)本题主要考察由CRC的生成多项式如何得到除数,根据除数如何求出序列。已知生成多项式的情况下,得到除数很简单,除数的位数是P(X)最高次幂+1,从右往左分别为第0位1位2位3位4位...P(X)每个幂数代表着除数从右到左第几位为1,其余的都为0,比如P(X)=X4+X+1就是第4位、第1位和第0位为1,其余是0;
根据除数P求出序列的方法:为发送数据补齐(多项式的最高次幂)个0,再用得到的数模2除P(根据生成多项式算出的除数),余数即为所求的CRC。
(2)、(3)主要考察的是CRC的校验规则,将传输得到的数据除P(根据生成多项式算出的除数),判断得到的余数是否为0,如果不为0,则会发现数据传输错误。