CRC循环冗余校验码的基本原理

您所在的位置:网站首页 crc循环冗余校验的原理 CRC循环冗余校验码的基本原理

CRC循环冗余校验码的基本原理

2024-07-12 16:24| 来源: 网络整理| 查看: 265

基本原理:在K位信息码(我们要传递的值-二进制)后面加上R位的校验码,R位即为G(x)多项式的最高幂(校验码的位数比生成除数的位数少1)。整个码的长度为N位,根据N位和K位查表找到多项式G(x)。根据G(x)生成除数用来接收端判断数据是否正确(收到的整个编码如果能够整除除数的话那么就是完整并且正确的数据)。

G(x)多项式从表中通过信息码的位数得到相应的G(x)多项式,得到之后,可以从多项式中算出除数(二进制),例如 x3+x+1,那么相应的二进制为 1011,1*x^3+0*x^2+1*x^1+1*x^0=x^3+x+1

N K 码距d G(x)多项式 G(x) 7 4 3 x3+x+1 1011 7 4 3 x3+x2+1 1101 7 3 4 x4+x3+x2+1 11101 7 3 4 x4+x2+x+1 10111 15 11 3 x4+x+1 10011 31 26 3 x5+x2+1 100101 63 57 3 x6+x+1 1000011

假设现在我要发送数据: 1010 ,那么K=4,我们选择G(x)=x^3+x+1,总共有3位项数,即原信息码向左移动3位 –> 1010 000 。根据G(x)=x^3+x+1生成除数为 1011, 1010 000 除以 1011 进行模2相除(即为异或)。商为1001,余数为11,11即为校验码,那么拼接之后生成CRC码–> 1010 011。那么在接收端根据列表找到G(x)得到除数,将CRC码相除若无余数则为数据传输正确。如若要取原码只要左移R位即可。

模2相除:相同为0,不同为1 举例:1010 000 除以 1011 1 001 1011 )1010 000 1011 —————– 1000 1011 ———— 11

参考文档:循环冗余校验码(CRC)的基本原理 循环冗余(CRC)算法入门引导 CRC码计算及校验原理的最通俗解释



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3