CRC码的编码、解码(循环冗余校验码)

一、CRC码的原理
CRC码是一种可以检查出多位错误的校验码。
利用CRC码检错的过程如下:
在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
在这里插入图片描述
在上面这个图中,总位长必须符合这个式子(考试考过)

生成多项式是一个二进制序列,它比校验信息多一位(即r+1位),发送方用它对被校验的信息进行模二的除法运算,以此来生成校验码序列。接收方也这么操作。

补充一下模二运算是什么
模2除法·,从字面上可理解为二进制下的除法。
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。
举个栗子:
1111000除以1101:

在这里插入图片描述
二、CRC码的编码
先求这个式子的r的最大值
在这里插入图片描述
然后找到G(X) [这个好像是直接查就行了]
然后在有效信息后面补r个0
举个栗子
在这里插入图片描述
这个时候把之前的3个0替换成010就好了
这时候,1100010就是crc编码

三、那么如何校验呢
看这个图,比较清晰:
在这里插入图片描述
举个栗子
在这里插入图片描述
可以看到 余数为0,那就没错

但是如果是这样:
在这里插入图片描述
四、检错与纠错
在这里插入图片描述
看一下如何纠错
在这里插入图片描述
这个图讲的比较抽象 可以详细讲一讲 但是太晚了我以后再写吧。。。。。

  • 20
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值