BCH碼是循環(huán)碼的一個重要子類,它具有糾多個錯誤的能力,BCH碼有嚴(yán)密的代數(shù)理論,是目前研究最透徹的一類碼。它的生成多項式與最小碼距之間有密切的關(guān)系,人們可以根據(jù)所要求的糾錯能力t很容易構(gòu)造出BCH碼,它們的譯碼器也容易實現(xiàn),是線性分組碼中應(yīng)用最普遍的一類碼。
本原循環(huán)碼是一類重要的碼。漢明碼、BCH碼和某些大數(shù)邏輯可譯碼都是本原碼。本原碼的特點是:
1、碼長為2^m - 1,m為整數(shù)。
2、它的生成多項式由若干m階或以m的因子為最高階的多項式相乘構(gòu)成。
要判斷循環(huán)碼是否存在,只需判斷階生成多項式是否能由的因式構(gòu)成。
代數(shù)理論告訴我們,每個m階既約多項式一定能除盡。例如,m=5,共有6個5階既約多項式:
這6個多項式都能除盡。且必定是的因式。
若循環(huán)碼的生成多項式具有如下形式:
,這里t為糾錯個數(shù),為最小多項式,LCM表示取最小公倍式,則由此生成的循環(huán)碼稱之為BCH碼。該碼是以三個發(fā)現(xiàn)者博斯(Bose)、查德胡里(Chaudhuri)和霍昆格姆(Hocquenghem)名字的開頭字母命名的。其最小碼距dmin≥2t+1,能糾t個錯誤。BCH的碼長為n=或的因子。碼長為n=的BCH碼稱為本原BCH碼。碼長為因子的BCH碼稱為非本原BCH碼。對于糾t個錯誤的本原BCH碼,其生成多項式為。糾正單個錯誤的本原BCH碼就是循環(huán)漢明碼。
下面介紹幾種常見的BCH碼。
1、戈雷碼(Golay)
(23,12)碼是一個特殊的非本原BCH碼,稱為戈雷碼,它的最小碼距7,能糾正3個錯誤,其生成多項式為。它也是目前為止發(fā)現(xiàn)的唯一能糾正多個錯誤的完備碼。
2、擴展形式
實際應(yīng)用中,為了得到偶數(shù)碼長,并增加檢錯能力,可以在BCH碼的生成多項式中乘D+1,從而得到(n+1,k+1)擴展BCH碼。擴展BCH碼相當(dāng)于將原有BCH碼再加上一位的偶校驗,它不再有循環(huán)性。
3、縮短形式
幾乎所以的循環(huán)碼都存在它另一種縮短形式。實際應(yīng)用中,可能需要不同的碼長不是或它的因子,我們可以從碼中挑出前s位為0的碼組構(gòu)成新的碼,這種碼的監(jiān)督位數(shù)不變,因此糾錯能力保持不變,但是沒有了循環(huán)性。
BCH碼的譯碼方法可以有時域譯碼和頻域譯碼兩類。頻移譯碼是把每個碼組看成一個數(shù)字信號,把接受到的信號進(jìn)行離散傅氏變換(DFT),然后利用數(shù)字信號處理技術(shù)在“頻域”內(nèi)譯碼,最后進(jìn)行傅氏反變換得到譯碼后的碼組。時域譯碼則是在時域直接利用碼的代數(shù)結(jié)構(gòu)進(jìn)行譯碼。BCH的時域譯碼方法有很多,而且糾多個錯誤的BCH碼譯碼算法十分復(fù)雜。常見的時域BCH譯碼方法有彼得森譯碼、迭代譯碼等。BCH的彼得森譯碼基本過程為:1、用的各因式作為除式,對接收到的碼多項式求余,得到t個余式,稱為“部分校驗式”。2、用t個部分校驗式構(gòu)造一個特定的譯碼多項式,它以錯誤位置數(shù)為根。3、求譯碼多項式的根,得到錯誤位置。4、糾正錯誤。具體內(nèi)容可參閱參考資料[2]的第357-359頁。
事實上,BCH碼是一種特殊的循環(huán)碼,因此它的編碼器不但可以象其它循環(huán)碼那樣用除法器來實現(xiàn),而且原則上所有適合循環(huán)碼譯碼的方法也可以用于BCH碼的譯碼。
RS碼是Reed-Solomon碼(理德-所羅門碼)的簡稱,它是一類非二進(jìn)制BCH碼,在RS碼中,輸入信號分成k