射飞镖的例子中,射偏红心仍然有可能判断出实际打算射哪个红心的实质是可以检测到错误并纠正,这也就是编码的目的,编码有检错纠错的功能。显然,在射击当中,假设运动员的失手概率是一定的,比较靠谱的,那么相邻红心之间的间隔距离越大,判断也能越准确,即检错纠错能力越强。两个红心之间的间隔距离,对于码字来说,就是码字之间的距离。也就是说,直观想象知道,编码的检错纠错能力与编码的最小码距有关。需要提醒的是,有些编码只能检错而不能纠错,而能纠错的编码当然需要先能知道有错误,即一定能检错。下面我们就更具体地谈谈编码的检错纠错能力与最小码距之间的关系。
性质12-1 一种编码方式若能检测e个之内的错位,那么各码字之间的最小汉明距离至少为e+1。
比如,假设用集合{1,7,13,19,…}里的数字想象成码字,那么它能检测的错误最大为e=5;因为若发生的错误为6,比如,发送的是7,而接收到13,接收端是没有任何依据知道这里有错误发生的。也就是说,如果发生的错误在e个之内,接收端一定能感觉得到有错误;但并不表示接收端感觉到有错误,那么发生的错误一定在e个之内。比如,发送的是7,接收端收到15,接收端也能知道有错误发生,但很明显这个错误为8,而不是在e=5之内。
性质12-2 一种编码方式若能纠正t个之内的错位,那么各码字之间的最小汉明距离至少为2t+1。(www.xing528.com)
很显然,能纠错必然首先要能检错,即各有用码组之间的最小汉明距离至少为t+1。也就是说,当接收端感觉到有错误时,它总是假设错误是在t个之内的纠错方法去纠,如果发生的错误确实在t个之内,那么这种纠错方法正确地纠正了错误;反之,若实际发生的错误在t个之外,显然会错误地纠正错误。比如,集合{1,7,13,19,…}中的是码字,那么它能纠正的错误最大为t=2;因为若发生的错误大于2,比如,发送的是7,而接收到11,错误为4,接收端是没有任何依据区别这里发生的错误是从7变成11还是从13变成了11。如果接收端仍然假设错误在2以内来纠错,即把11纠成13,则会错误地纠正错误。
性质12-3 一种编码方式若能纠正t个之内错位,同时能检测e>t位之内错误,那么各码字之间的最小汉明距离至少为e+t+1。
这种情况不太好理解,经常有人会问“为什么最小汉明距离不是max{e+1,2t+1}呢”,满足这个条件不是既能检测到e个之内错误,又能纠正t个之内错误吗?原因在于如何理解“既能纠正t个错误,又能检测e>t个错误”。正确的理解应该是,t个之内错误一定能纠错,而大于t小于等于e之间的错误一定能检测到。即要求当错误在[t+1,e]区间时,该错误一定不在任何码字周围距离t之内,否则被当纠错处理了。所以,当任何一个码组发生任何e个错误后,这个错误离剩下的其他码组的距离至少为t+1,那么各码字之间的最小汉明距离至少为e+t+1。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。