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