2017年6月1日 / 1,441次阅读
计算机
在一个编码系统中,任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。码距,也称为“海明距离”。
信息序号 | 二进码字 | ||
a2 | a1 | a0 | |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
2 | 0 | 1 | 0 |
3 | 0 | 1 | 1 |
4 | 1 | 0 | 0 |
5 | 1 | 0 | 1 |
6 | 1 | 1 | 0 |
7 | 1 | 1 | 1 |
如上图所示的一个编码系统,用3个bit来表示八个不同信息中。在这个系统中,两个码字之间不同的bit数从1到3不等,但最小值为1,故这个系统的码距为1。如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。例如,如果传送信息001,而被误收为011,因011仍是表中的合法码字,接收机仍将认为011是正确的信息。
然而,如果用四个二进数字来编8个码字(只用一半的编码空间),那么在码字间的最小距离可以增加到2,如下图的表中所示。
信息序号 | 二进码字 | |||
a3 | a2 | a1 | a0 | |
0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 1 |
2 | 1 | 0 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 1 | 1 | 0 | 0 |
5 | 0 | 1 | 0 | 1 |
6 | 0 | 1 | 1 | 0 |
7 | 1 | 1 | 1 | 1 |
注意,上图的8个码字相互间最少有2bit的差异。因此,如果任何信息的一个数位被颠倒,就成为一个不用的码字,接收机能检查出来。例如信息是1001,误收为1011,接收机知道发生了一个差错,因为1011不是一个码字(表中没有)。然而,差错不能被纠正。假定只有一个数位是错的,正确码字可能是1001,1111,0011或1010。接收者不能确定原来到底是这4个码字中的那一个。也可看到, 在这个系统中,偶数个(2或4)差错也无法发现。
为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”。
最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错(只将错误的码子纠正道距离它码距最小的合法码子,所以说这种纠错是自动的,并不是真正的纠错;比如码距为5 的编码系统,发送00000 11111,接收到后是00000 00011,纠错后得00000 00000,也合法,但正确的却是00000 11111)。编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。 码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。所以,选择码距要取决于特定系统的参数。数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素。
本文链接:https://www.maixj.net/ict/maju-15632
©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。