1954年,莫勒提出一種可以糾正多個錯誤的碼。
里德給出它的譯碼方法,擇多判決法,RM碼。
雖然漢明碼的思想是比較先進的,但是它也存在許多難以接受的缺點。
首先,漢明碼的編碼效率比較低,它每4個比特編碼就需要3個比特的冗余校驗比特。
另外,在一個碼組中只能糾正單個的比特錯誤。
M.Golay研究了漢明碼的這些缺點,并提出了兩個以他自己的名字命名的高性能碼字:一個是二元Golay碼,在這個碼字中Golay將信息比特每12個分為一組,編碼生成11個冗余校驗比特。
相應的譯碼算法可以糾正3個錯誤。
另外一個是三元Golay碼,它的操作對象是三元而非二元數字。
三元Golay碼將每6個三元符號分為一組,編碼生成5個冗余校驗三元符號。
這樣由11個三元符號組成的三元Golay碼碼字可以糾正2個錯誤。
漢明碼和Golay碼的基本原理相同。
它們都是將q元符號按每k個分為一組.然后通過編碼得到n-k個q元符號作為冗余校驗符號,最后由校驗符號和信息符號組成有n個q元符號的碼字符號。
得到的碼字可以糾正t個錯誤,編碼碼率為為k/n。
這種類型的碼字稱為分組碼,一般記為(q,n,k,t)碼,二元分組碼可以簡記為(n,k,t)碼或者(n,k)碼。
漢明碼和Golay碼都是線性的,任何兩個碼字經過模q的加操作之后,得到的碼字仍舊是碼集合中的一個碼字。
在Golay碼提出之后最主要的一類分組碼就是Reed-Muller碼。
它是Muller在1954年提出的,此后Reed在Muller提出的分組碼的基礎上得到了一種新的分組碼,稱為Reed-Muller碼,簡記為RM碼。
在1969年到1977年之間,RM碼在火星探測方面得到了極為廣泛的應用。
即使在今天,RM碼也具有很大的研究價值,其快速的譯碼算法非常適合于光纖通信系統(tǒng)。