首页 > 编程知识 正文

crc循环冗余码例题(循环冗余校验码原理谢希仁)

时间:2023-05-03 08:38:56 阅读:73143 作者:1227

定义循环冗馀校验码(Cyclic Redundancy Chec,CRC )是用多项式模式2除法将数名校验码加到信息码上,从而增加整个编码系统的编码距离和纠错能力,被广泛应用于移动通信和磁盘数据存储。

原理CRC的基本原理是在k位信息码之后添加r位的校验码,由于整个码长为n位,所以该码也被称为“n,k”码。 对于给定的(n,k )码,可以证明存在N-K=R的最高次幂的多项式g ) x )。 g ) x )可以生成r比特的校验数字,g(x )被称为这个CRC码的生成多项式。

校验码的具体生成过程是,将发送信息用信息多项式c(x )表示,如果将c ) x )向左偏移r比特,则能够表现为如c ) x )2R那样在c ) x )的右边空出r比特的位置。 c(x ) 2r除以生成多项式g ) x所得的馀数为校验码。

生成CRC代码的步骤如下:

(1)将x的最高次为r的生成多项式g ) x )变换为对应的R 1比特的二进制数。

)2)将信息码左移r位,相当于对应的信息多项式c(x )2R。

)3)用生成多项式(二进制)将信息代码除以模数2,得到r位的馀数。

)4)将余数向左偏移报文编码,拼写在空位置,得到完整的CRC编码。

样本CRC生成多项式为g(x )=X4 X3 1,求二进制序列10110011的CRC校验码。

1、多项式转换为R 1二进制。

在g(x )=x431时,由于缺少x的二次侧和一次侧,所以为0,其他为1,结果为11001

2、信息码左移r位

上面得到的多项式位数为5,R=4,将消息代码10110011向左偏移4位,如下所示:

101100110000

3、用多项式二进制11001将信息代码101100110000除以型2

清淡月饼: 100,不到r位,前补0,所以清淡月饼0100

4、将余数移动到短信码的左边,连接到空闲的位置

结果是101100110100

类型2除法类型2除法的关键:

1、除数和被除数的对应位置进行异或运算得到馀数。

2、如果不能被整除,如果馀数小于R 1,则商为0,否则商为1,直到馀数充分达到R 1

考虑一下上述例子。

11010100

11001/101100110000

11001

11110

11001

11111

11001

11000

11001

0100

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。