循环冗余校验码怎么算(crc循环冗余校验码计算)

冗馀验证码视频链接至: https://www.bilibili.com/video/b v1 be 411 D7 ii? from=search seid=6420326887479343502计算机组成原理系列文章目录循环冗馀校验码前言1循环冗馀校验码1.1基本思想1.2结构方法1.3纠错校验码2总结

前言

在本篇中,你将掌握

循环冗馀校验码的基本思想和构造方法

1循环冗馀校验码

1.1基本思想循环冗馀校验码思想:数据发送、接收方约定一个“除数”(二进制除数) ) ) ) ) )。

k个消息代码r位校验码为“被除数”,在检查时判断馀数是否为0并判断是否出错。

来看看例子吧。 如下图所示,生成多项式g(x )是已知的,消息代码为101001,求出对应的CRC代码。

二进制除法规则如上图所示,其除法过程首先判断被除数的当前最高有效位是否为1,如果为1,则当前商为1,否则为0,然后被除数和除数为”模2减” 然后,在“模2负”之后,如果位数不在最高位补充0,则重复第一步,直到最后得到商和馀数。

对于馀数,馀数的位数=除数的位数-1=校验码的位数。

1.2结构方法解法步骤

确定与k、r和生成多项式对应二进制代码

K=信息代码长度=6、R=生成多项式最高次幂=3的校验码比特数为N=K R=9

与生成多项式g对应的二进制码为1101,与x次幂的系数移位对应

信息码向左移动r位,并在低位添加0 (即,在信息码之后添加r个奇偶校验位的0 )来进行除法

对于移位后的消息代码,用生成多项式进行模2除法,产生剩馀

对应的CRC代码: 101001 001

(除法运算的过程请参照上图。 该模式2除法的余数001为奇偶校验位。 (错误检测和纠错

发送端发送的数据为101001001,其中c9c8 c7c6C5 C4 C2C 1c _ 9c _ 8c _ 7c _ 6c _ 5c _ 4c _ 2c _1c9c8 c7c6C4 C2C 1接收端承诺接收到的数据为1101,2

1.3纠错检查注意在上表中,如果错误位置1和8、2和9之余两个相同,你能猜测循环冗馀校验码只有检测错误的能力,没有纠错的能力吗?

并不是一切都是对的。 在上述示例中,剩下的只有三位二进制代码,只能表示8-1=7种(000表示没有错误)的错误位,但由于传输的位数为9位,因此无法纠错。

对于确定的生成多项式,错误位对应于馀数

也就是如果出错的位数并没超过余数所能表示的范围,则余数和出错位之间就是一一对应的关系

如果适当地选择了k个信息比特、r个奇偶校验位和所生成多项式,且2 R=K R 1 2_R=K R 1 2R=K R 1,则CRC码可以被纠错

2总结

本篇的要点:

(1)循环冗馀校验码的构建方法)如何根据给定的k个信息比特和最高阶为r的生成式构建循环冗馀校验码(k个信息比特) r个奇偶校验位) );

)2)循环冗馀校验码的校验方法)除以生成模式2,得到r的馀数,如果是000就没错了,否则就会出错,有纠错的可能性

本篇也是计算机网络的重中之重,需要熟悉CRC的计算结构方法。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注