在等重码(constant weight code)中,每个码字中所含“1”的数目相同(码字中“1”的个数又称码重),因此码字中“1”与“0”的个数之比是恒定的,所以又称为恒比码,又称为定比码,属于常用的差错控制编码方法,即是一种检错码。在检测中,只要检测接收到的码组中“1”的数目是否对就可知道传输是否正确。其纠错能力比奇偶监督码强。恒比码的主要优点是简单,适于传输电传机或其他键盘设备产生的字母和符号。对于信源传出的二进制随机数字序列,这种码就不适于传输。
一般情况下,从“n中取m”(m<n)恒比码的码组数为:Cmn=n!/(n-m)!m!。由此可以看出,恒比码实际上是n个信息传送log2 Cmn比特信息。
恒比码属于分组码,对于分组码来说,有效信息速度与传输编码所需信息传输速度之比称为编码效率,在一般情况下,恒比码的编码效率为
η=(log2 Cmn)/(log2 2n)=(log2 Cmn)/n
1、我国用于电传机的“5中取3”恒比码
在我国用电传机传输汉字时,只使用阿拉伯数字代表汉字。这时采用的所谓“保护电码”就是“3﹕2”或称“5中取3”的恒比码,即每个码组的长度为5,其中“1”的个数总是3,而“0”的个数总是2,如表1所示。
表1:我国用于电传机的“5中取3”恒比码
本来以5位码元组成的码组总共可以有25=32种,而恒比码规定只有确切地含有3个“1”、2个“0”的那些码组为准用码组,而有3个“1”、2个“0”的5位码组共有多少呢?这是“5中取3”求组合的算法,组合数为C35=5!/(5-3)!3!=10。“3﹕2”即“5中取3”的恒比码,用5位码只传10种信息。每个码组的信息量为log2 10=3.3比特,有5-3.3=1.7比特作为代价付出。而“5中取3”恒比码的编码效率为
η==(log2 C35)/5=3.3/5=0.66
采用表1所示的“5中取3”恒比码后,可以看到,如果差错码为奇数个,肯定不会错成其他字。在差错数为2时,必须是一位“1”变“0”,另一位是“0”变“1”,才会错成另一个字。推广来说,恒比码不能发现的差错只有这样一类:“1”错成“0”的数目正好等于“0”错成“1”的数目。实践证明,采用“5中取3”的恒比码后,电传机的差错率减少了90%左右。
2、国际用于英文电报的“7中取3”恒比码
在英文电报中,要传送的字母数不是10个而是26个,还要加上一些其他符号,所以采用“7中取3”或叫“3﹕4”恒比码,它总共有C37=7!/(3!4!)= 35个许用码组,足以代表26个英文字母及其他符号。这种“7中取3”或叫“3﹕4”恒比码,也称为国际无线电报码,其英文字母及其他符号的编码如表2所示。
表2:国际无线电报码(“7中取3” 恒比码)
欲进一步了解信道编码基本原理的请进入。