最小码距和检错纠错能力关系
一、码距?
码距就是两个码字
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