【常识】CRC与汉明距离

Cyclic Redundancy Check (CRC)

 参考:CRC(循环冗余校验码)简介与实现解析 - 知乎

CRC就是一种优秀的检错码。它的计算原理,说白了就是作除法。把比特流看作多项式的系数。设定一个生成多项式(generator polynomial)作为除数。数据流看作被除数。发送方需要在数据流末尾加上一段冗余码,使得组合后的新数据流能够整除除数。这段冗余码就是所谓的CRC(如何计算CRC在数据流末尾补CRC长度的0,然后做除法得到的余数就是了。)发送方计算好CRC后,把它加到末尾。然后接收方通过传过来的数据做除法计算余数如果余数不为0,就说明有错误发

模2除法它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可。模2加法运算为:1+1=0,0+1=1,0+0=0,无进位,也无借位;模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0,也无进位,无借位。相当于二进制中的逻辑异或运算。也就是比较后,两者对应位相同则结果为“0”,不同则结果为“1”。如100101除以1110,结果得到商为110,余数为1。

 Hamming Distance

汉明距离:两个(相同长度)字的各个对应位中,位不同的数量

最小汉明距离

最小汉明距离:在一个码组集合中,任意两个编码之间汉明距离的最小值

注意这个编码可以是不连续的

用d表示码组的最小汉明距离

  •  检测错误时,设可检测e位的错误,则d>=e+1 (也就是保证任一点A的错误状态不落到其余点B)
  • 纠正错误时,设可纠正t位的错误,则d>=2t+1(也就是保证任一点A的错误状态不落到其余点B,并且A的错误状态离A更近)
  • 检错+纠错时,设可检测e位的错误,纠正t位的错误,则d>=e+t+1 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值