在等重碼(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” 恒比碼)
欲進一步了解信道編碼基本原理的請進入。