文章目录
- 纠错编码-海明码
- 海明距离
- 1.确定校验码位数r
- 2.确定校验码和数据的位置
- 3.求出校验码的值
- 4.检错并纠错
- 纠错方法1
- 纠错方法2
- 小结
纠错编码-海明码
奇偶校验码:只能发现错误不能找到错误位置和纠正错误
海明距离
如果找到码距为1,那肯定为1了,因为是最小的
编码集的码距从1开始找,递增找
检验d位那么需要码距d+1
纠错d位那么需要码距2d+1
对于检测d位错误的能力,码距至少需要为d+1。这是因为如果码距为d+1,那么任何d位的错误都会导致编码从一个合法码字变为另一个非合法码字,而不会与任何其他合法码字相同。这样,接收方可以通过检查编码是否为一个合法的码字来检测错误。如果码距小于d+1,那么可能会存在两个合法的码字,它们之间的海明距离小于或等于d,这意味着d位错误可能将一个码字变为另一个合法的码字,从而无法检测到错误。
对于纠正d位错误的能力,码距至少需要为2d+1。这是因为为了纠正错误,接收方不仅需要能够检测到错误,还需要能够确定错误发生的具体位置。如果码距为2d+1,那么即使发生了d位错误,错误的码字与所有合法码字的最小汉明距离至少为d+1,这意味着接收方可以通过比较接收到的码字与所有合法码字的海明距离来确定最有可能的原始码字。如果码距小于2d+1,那么可能会存在多个合法码字与错误的码字海明距离相同,从而无法准确确定原始码字。
1.确定校验码位数r
按照公式确定r
2.确定校验码和数据的位置
3.求出校验码的值
通常采用偶校验,也可以采用奇校验
4.检错并纠错
纠错方法1
三个大圈是分别对应1,2,4号校验码,重叠部分为各自的总和。正确的部分2号校验码2,3,6,7那么没有问题,错误的部分1号和4号校验码的公共部分5,7肯定是有问题的,而7是没有问题(2号校验码2,3,6,7那么没有问题)所以5有问题
纠错方法2
通过两两异或得错误位置的二进制编码,再求该编码的十进制数即可得到错误位置