WordPress 中文文档

循环冗余码算法分析

出自WordPress Chinese 中文文档

跳转到: 导航, 搜索
循环冗余 拷贝时出现循环冗余的解决方法 循环冗余码算法分析 循环冗余码校验的原理 数据恢复的所有文章


CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码。



目录

其实现步骤如下

  • 设待发送的数据块是m位的二进制多项式t(x),
  • 生成多项式为r阶的g(x)。在数据块的末尾添加r个0,
  • 数据块的长度增加到m+r位,
  • 对应的二进制多项式为 。
  • 用生成多项式g(x)去除 ,
  • 求得余数为阶数为r-1的二进制多项式y(x)。此二进制多项式y(x )就是t(x)经过生成多项式g(x)编码的CRC校验码。
  • 用 以模2的方式减去y(x),
  • 得到二进制多项式 。 就是包含了CRC校验码的待发送字符串。


从CRC的编码规则可以看出,CRC编码实际上是将代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式 ,所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。许多CRC的硬件解码电路就是按这种方式进行检错的。同时可以看做是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。



为了更清楚的了解CRC校验码的编码过程,下面用一个简单的例子来说明CRC校验码的编码过程。由于CRC-32、CRC-16、CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样。




例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1 生成码:11001 生成多项式:G(X)=X4+X3+1(r=4) 求:循环冗余码和码字。 解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。 2)积/G(X)(按模二算法)。 由计算结果知冗余码是1001,码字就是1100111001。

1 0 0 0 0 1←Q(X) G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr 1 1 0 0 1 , 1 0 0 0 0 1 1 0 0 1 1 0 0 1←R(X)(冗余码)


例2.已知:接收码字:1100111001 多项式:T(X)=X9+X8+X5+X4+X3+1 生成码 : 11001 生成多项式:G(X)=X4+X3+1(r=4) 求:码字的正确性。若正确,则指出冗余码和信息码。 解:1)用字码除以生成码,余数为0,所以码字正确。

1 0 0 0 0 1←Q(X) G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x) 1 1 0 0 1 , 1 1 0 0 1 1 1 0 0 1 0←S(X)(余数)


2)因r=4,所以冗余码是:11001,信息码是:110011 </pre>


内容不完整……(欢迎补充资料)


相关知识

相关条目

硬件 - 软件 - 操作系统 - 应用软件 - 电脑教程 - 语言 - 内存


相关链接

wordpress