题目
假定我们要发送信息11001001,并且使用CRC多项式x3+1来检错,使用多项式长除来确定应该发送的信息块。假定信息块最左边的比特由于在传输链路[1]上的噪音而变化,接收方CRC计算的结果是什么?接收方是怎样知道发生了错误的?
假定我们要发送信息11001001,并且使用CRC多项式x3+1来检错,使用多项式长除来确定应该发送的信息块。假定信息块最左边的比特由于在传输链路[1]上的噪音而变化,接收方CRC计算的结果是什么?接收方是怎样知道发生了错误的?
题目解答
答案
答:(1)取信息11001001,附加000,并用1001去除,余数是011, 应该发送的信息块是11001001011。(2)把第1位变反,得到01001001011,再用1001去除,得到商01000001,余数是10。由于余数不为零,所以接收方知道发生了错误。
解析
考查要点:本题主要考查循环冗余校验(CRC)的基本原理,包括生成多项式的应用、校验码的计算,以及错误检测的过程。
解题核心思路:
- 发送方:将原始数据附加与生成多项式次数相同的0,通过多项式长除法计算余数(校验码),并将余数附加到原始数据后形成最终发送的信息块。
- 接收方:对收到的数据(含校验码)重新进行多项式长除法,若余数不为零,则说明数据在传输中发生了错误。
破题关键点:
- 生成多项式转换:将多项式 $x^3 + 1$ 转换为二进制形式 $1001$。
- 校验码计算:通过长除法确定余数,并替换附加的0。
- 错误检测:通过余数是否为零判断数据完整性。
(1) 确定发送的信息块
- 附加初始0:原始数据为 $11001001$,生成多项式为三次,需附加三个0,得到 $11001001000$。
- 多项式长除法:
- 用 $11001001000$ 除以 $1001$,计算余数。
- 通过逐位异或运算,最终余数为 $011$。
- 替换校验码:将附加的三个0替换为余数 $011$,最终发送的信息块为 $11001001011$。
(2) 接收方错误检测
- 数据被篡改:最左边比特变化后,接收数据为 $01001001011$。
- 重新计算余数:
- 用 $01001001011$ 除以 $1001$,余数为 $10$。
- 判断错误:余数 $10 \neq 0$,说明数据传输中发生错误。