当前位置:文档之家› 最小码距和检错纠错能力关系

最小码距和检错纠错能力关系

最小码距和检错纠错能力关系
一、码距?
码距就是两个码字C1与C2之间不同的比特数。

如:1100与1010的码距为2;1111与0000的码距为4。

一个编码系统的码距就是整个编码系统中任意(所有)两个码字的最小距离。

若一个编码系统有四种编码分别为:0000,0011,1100,1111,此编码系统中0000与1111的码距为4;0000与0011的码距为2,是此编码系统的最小码距。

因此该编码系统的码距为2。

二、码距和检错纠错有何关联?
首先大家要了解以下两个概念:
1.在一个码组内为了检测e个误码,要求最小码距应该满足:d>=e+1
2.在一个码组内为了纠正t个误码,要求最小码距应该满足:d>=2t+1
现在举个例子来说明这个问题:
假如我们现在要对A,B两个字母进行编码。

我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错纠错能力。

||-- 若用1位长度的二进制编码。

若A=1,B=0。

这样A,B之间的最小码距为1。

合法码:{0,1};非法码:{0,1};
根据上面的规则可知此编码的检错纠错能力均为0,即无检错纠错能力。

其实道理很简单,这种编码无论由1错为0,或由0错为1,接收端都无法判断是否有错,因为1,0都是合法的编码。

||-- 若用2位长度的二进制编码,可选用11,00作为合法编码,也可以选用01,10作为合法编码。

若以A=11,B=00为例,A、B之间的最小码距为2。

合法码:{11,00};非法码:{01,10};
根据上面的规则可知此编码的检错位数为1位,无法纠错。

因为无论A(11)或B(00),如果发生一位错码,必将变成01或10,这都禁用码组(非法码),故接收端可以判断为误码,却不能纠正其错误。

因为无法判断误码(01或10)是A(00)错误还是B(11)错误造成,即无法判断原信息是A或B,或说A与B形成误码(01
或10)的可能性(概率)是相同的。

如果产生二位错码,即00错为11,或11错为00,结果将从一个合法编变成另一个合法编码,接收端就无法判断其是否有错。

所以此种编码的检错能力为1位,纠错能力为0位。

||--若用3位长度的二进制编码,可选用111,000作为合法编码。

A,B之间的最小码距为3。

合法码:{111,000};非法码:{001,010,011,100,101,110};
根据上面的规则可知此编码的检错位数为2位,纠错位数为1位。

例如:当信息A(000)产生1位错误时,将有3种误码形式,即001或010或100,这些都是禁用码组,可确定是误码。

而有这3个误码与合法编码000的距离最近,与合编码111的距离较远,根据误码少的概率大于误码多的概率的规律,可以判定原来的正确码组为000,只要把误码中的1改为0即可得到纠正。

同理,如果信息B(111)产生1位错误时,则有另三种误码可能产生,即110,101,011,根据同样道理可以判定原来的正确码组是111,并能纠正错误。

但是,如果信息A(000)或信息B(111)产生两位错误时,虽然能根据禁用码组识别其错误,但纠错时去会做出错误的纠正而造成“误纠错”。

如果信息A(000)或信息B(111)产生三位错误时,将从一个合法编码A(或B)变成了另一个合法编码B(或A),这时既检不出错,更不会纠错了,因为误码已成为合法编码,译码后必然产生错误。

所以检错位数为2位,纠错位数为1位。

总结:。

相关主题