题目
若接收方收到的二进制序列是 1010111001100111,CRC 生成多项式为 X4+X2+X+1。请判断,数据传输过程中是否发生了差错。A. 正确B. 错误
若接收方收到的二进制序列是 1010111001100111,CRC 生成多项式为 X4+X2+X+1。请判断,数据传输过程中是否发生了差错。
A. 正确
B. 错误
题目解答
答案
A. 正确
解析
本题考查CRC(循环冗余校验)差错检测的原理,核心是通过计算接收数据除以生成多项式的余数是否为0来判断传输是否出错。
步骤1:明确CRC校验原理
CRC校验的基本思想是:发送方将原始数据左移生成多项式次数位(生成多项式最高次幂为4,故左移4位),然后除以生成多项式,得到的余数作为校验码附加在原始数据后发送。接收方收到数据后,用相同的生成多项式去除接收数据,若余数为0则无差错,否则有误。
步骤2:确定生成多项式及除数
生成多项式为$G(x)=X^4+X^2+X+1$,对应的二进制系数为10111(最高次幂$X^4$系数为1,$X^3$系数为0,$X2$、$X1$、常数项系数为1)。
步骤3:准备接收数据
接收的二进制序列为1010111001100111),长度为16位。
步骤4:计算接收数据除以生成多项式的余数
- 数据左移位数:生成多项式次数为4,接收数据无需额外左移(已隐含校验位),直接作为被除数。
- 多项式除法:采用模2进制模2除法(不进位、不借位,异或运算)。
- 除数:10111(5位),被除数:1010111001100111(16位)。
- 逐步异或直接计算得:$10010111001100111 \div 10111$的余数为0000(全0)。
步骤5:判断差错
余数为0,说明传输无差错。