汉明码检错与纠错的结论(hamming code)

       假如一组二进制数据为101,另外一组为111,那么显然把第一组的第二位数据0改成1就可以变成第二组数据111,所以两组数据的汉明距离就为1

        简单点说,汉明距离就是一组二进制数据变成另一组数据所需的步骤数(它表示两个相同长度的字符串对应位置的不同字符的数量),显然,这个数值可以衡量两张图片的差异,汉明距离越小,则代表相似度越高。汉明距离为0,即代表两张图片完全一样。

要检测所有最多d个错误的集合,必须满足任意两个帧之间的海明距离是d+1或更多。

        这是因为,如果距离小于d+1,那么当一个帧发生少于或等于d个错误时,可能会变成另一个有效的帧,这样就检测不到错误了。

        考虑二进制编码“1010”和“1001”,海明距离为2,这意味着我们可以检测出最多1个错误,因为任何一个单一位的错误都会导致结果与原来的两个编码都不同。

要校正所有最多d个错误的集合,必须满足任意两个帧之间的海明距离是2d+1或更多。

        如果一个码字有d位发生差错,它仍然距离原来的码字距离最近,可以直接恢复为该码。

        也就是说,纠错的目的是为了让检测出差错的编码,这里出现差错的编码也就是与目标编码不符的非法编码,变回它改变前的合法编码,而在海明距离是2d+1时,如果出现d位差错,它只需要d位改变就可变回合法编码,一旦出现d+1位差错,数据也会想要通过d位改变成为合法编码,但此合法编码并非之前我们想要的编码,所以2d+1的海明距离只能纠正d个错误。

        如图,非法编码1只需改变d位就能变为合法编码1,而如果其一开始的编码为合法编码2,即其出现了d+1个错误,其仍会变为合法编码1,无法达到纠正效果 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值