题目
1.2 假设CRC编码采用的生成多项式为G(x)=x^4+x+1,请为位串10111001进行CRC编码。
1.2 假设CRC编码采用的生成多项式为$G(x)=x^{4}+x+1$,请为位串10111001进行CRC编码。
题目解答
答案
根据题目,生成多项式 $ G(x) = x^4 + x + 1 $ 对应二进制为10011。将数据位10111001左移4位得101110010000。
将101110010000除以10011,余数为1110。
最终编码结果为:
\[
101110010000 \div 10011 = 101110011110
\]
因此,CRC编码后的结果为101110011110。
答案:101110011110
解析
考查要点:本题主要考查循环冗余校验(CRC)编码的基本原理和实现步骤,重点在于理解生成多项式的作用及如何通过多项式除法计算校验码。
解题核心思路:
- 生成多项式转换:将生成多项式转换为二进制形式,确定校验码的位数。
- 数据位扩展:将原始数据位左移生成多项式次数对应的位数,末尾补零。
- 多项式除法:用扩展后的数据位除以生成多项式,得到余数作为校验码。
- 拼接结果:将余数替换掉补零部分,得到最终编码。
破题关键点:
- 生成多项式与二进制对应关系:生成多项式 $G(x)=x^4+x+1$ 对应二进制为 $10011$。
- 模2运算规则:除法过程中采用模2运算(即异或操作),确保余数正确。
步骤1:生成多项式转换
生成多项式 $G(x)=x^4+x+1$ 对应二进制为 $10011$,表示校验码位数为4位。
步骤2:数据位扩展
原始数据位 $10111001$ 左移4位(生成多项式次数),得到:
$10111001 \ll 4 = 101110010000$
步骤3:多项式除法
将 $101110010000$ 除以 $10011$,计算余数:
- 对齐最高位:用除数 $10011$ 逐次与被除数高位对齐,通过异或操作消去高位1。
- 迭代计算:重复上述过程,最终余数为 $1110$。
步骤4:拼接结果
将余数 $1110$ 替换掉补零部分,得到最终编码:
$10111001\ 1110 = 101110011110$