关于码距、检错和纠错的说法有: ①为了检验e个误码,要求编码系统的码距d应满足:d≥2e+1; ②为了检验t个误码,要求编码系统的码距d应满足:d≥t+1; ③4位二进制编码1000与1010的码距为10; ④海明码能纠正2位错误。 其中正确的个数

admin2010-01-23  24

问题 关于码距、检错和纠错的说法有:
①为了检验e个误码,要求编码系统的码距d应满足:d≥2e+1;
②为了检验t个误码,要求编码系统的码距d应满足:d≥t+1;
③4位二进制编码1000与1010的码距为10;
④海明码能纠正2位错误。   
其中正确的个数为(43)。

选项 A、0
B、1
C、2
D、3

答案A

解析 码距就是两个编码不同位的数目,1000与1010左起第2位不相同,其它位都相同,所以码距为1。
   根据编码理论,在一个编码系统里为了检测e个误码,要求其码距d应满足:
    d≥e+1
   在一个编码系统里为了纠正t个误码,要求其码距应满足:
   d≥2t+1
   由于海明码的码距为3,因此它能检测出2个误码,但只能纠正一位误码。
   下面再举个例子来说明检错和纠错的问题。假如现在要对A、B两个字母进行编码。我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错、纠错能力。
   若用1位长度的编码,则A=1,B=0。这样A,B之间的最小码距d=1。根据上面的规则可知此编码的检错、纠错位数都为0,即无检错、纠错能力。其实道理很简单,这种编码无论由1错为o,或由。错为1,接收端都无法判断是否有错,因为1、0都是合法编码。
   若用2位长度的编码,可选用11、00作为合法编码,也可以选用01、10作为合法编码。这里我们以选A=11,B=00为例。A、B之间的最小码距为2。根据上面的规则可知此编码的检错位数为1位,无法纠错。因为如果A(00)或B(11)发生一位错码,必将变成 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。根据上面的规则可知此编码的检错位数为2位,纠错位数为1位。例如,当信息A(000)产生 1位错误时,将有3种误码形式,即001或010或100,这些都是禁用码组,可确定是误码。而且这3个误码与合法编码000的距离最近,与另一个合法编码111的距离较远,根据误码少的概率大于误码多的概率的规律,可以判定原来的正确码组是000,只要把误码中的1改为0即可得到纠正。
   同理,如果信息B(111)产生1位错误时,则有另3种误码可能产生,即110或101或 011,根据同样道理可以判定原来的正确码组是111,并能纠正错误。但是,如果信息 A(000)或信息B(111)产生两位错误时,虽然能根据出现禁用码组识别其错误,但纠错时却会作出错误的纠正而造成误纠错。如果信息A(000)或信息B(111)产生3位错误时,将从一个合法编码A(或B)变成另一个合法编码B(或A),这时既检不出错,更不会纠错了,因为误码已成为合法编码,译码后必然产生错误。所以检错位数为2位,纠错位数为1位。
转载请注明原文地址:https://jikaoti.com/ti/Y1a7FFFM
0

相关试题推荐
最新回复(0)