CRC循环冗余校验

CRC循环冗余校验

  • 基本原理:

CRC检验原理:

在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),构成一个总长为n=p+r位的二进制序列;

附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏;

因此,通过检查这一关系,就可以实现对数据正确性的检验。

  • 计算步骤:

发送方:

(1):确定产生多项式代码序列N,长度最高次幂r;

(2):在p位的二进制数据序列P之后加r个0得到M,长度p+r;

(3):用M对N做模2除法运算取余数代码序列R;

(4):Q后附加R得到C。

接受方:

(1):用C对N做模2除法运算余数为0则传输过程中无错

  • 例子:

  1. 需要发送的信息P为1010001101,产生多项式对应得代码N为110101。

解:

(1)确定产生多项式代码序列N,长度r=5;

(2)M为101000110100000

(3)用M对N做模2除法运算取余数代码序列R为01110;

(4)N为1010001101 01110

接受方:

(1):用C对N做模2除法运算余数为0则传输过程中无错。

  • 附加:

模2运算:即按位异或运算(相同为0,相异为1);

生成多项式:

       如上述例子,

               110101多项式为X^5+X^4+0*X^3+X^2+0*X^1+X^0;

               即X^5+X^4+X^2+1;

               则r=5。

余数:余数的长度需等于r,不足则在前面补0。

CRC只能判断是否出错,不能判断出错位置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值