汉明码
初学汉明码时,往往总是觉得很奇怪。其实原理很简单的。
我们先明确几个概念:
设汉明距离为d。
我们再来看汉明码的判断标准:
公式一: 如果要检测e个错码,则要求汉明距离 d≥e+1
公式二: 若要纠正t个错码,则要求汉明距离 d≥2*t+1
公式三: 若要同时检测e个错码而又纠正t个错码 则汉明距离d≥e+t+1(e≥t)
我们来简单思考一个,如何检测出错码?
其实很简单:只要我们错误的码无法变成正确的码。我们假设汉明距离为d,则只要你错误的位数小于d,不就无法得到正确的编码吗!所以公式一得证。
那我们来看公式二,想要纠正错码,那我们其实意义上就是让几个正确的码即使变化了几个位,我们仍能分清楚它是由谁变来的。
假设有两个正确编码A和B,此时要纠正的范围是t,如图示
其实意义就是让正确的码在t位错码范围内不产生重叠。即公式二的意义是,在变化t位时编码A,B产生的错码不能相同。
所以我们要求d≥2*t+1,不然就会产生重叠。导致无法识别。
公式三可由公式一和公式二得。