BCH碼取自 Bose、Ray-Chaudhuri 與 Hocquenghem 的縮寫,是自1959年發(fā)展起來的一種能糾正多位錯誤的循環(huán)碼,是編碼理論尤其是糾錯碼中研究得比較多的一種編碼方法。用術語來說,BCH 碼是用于校正多個隨機錯誤模式的多級、循環(huán)、錯誤校正、變長數字編碼。BCH 碼也可以用于質數級或者質數的冪級的多級相移鍵控。11 級的 BCH 碼已經用于表示 10 進制數外加一個符號位。
BCH碼是一類重要的糾錯碼,它把信源待發(fā)的信息序列按固定的κ位一組劃分成消息組,再將每一消息組獨立變換成長為n(n>κ)的二進制數字組,稱為碼字。如果消息組的數目為M(顯然M≤2),由此所獲得的M個碼字的全體便稱為碼長為n、信息數目為M的分組碼,記為n,M。把消息組變換成碼字的過程稱為編碼,其逆過程稱為譯碼。
1、戈雷碼(Golay)
(23,12)碼是一個特殊的非本原BCH碼,稱為戈雷碼,它的最小碼距7,能糾正3個錯誤,其生成多項式為。它也是目前為止發(fā)現的唯一能糾正多個錯誤的完備碼。
2、擴展形式
實際應用中,為了得到偶數碼長,并增加檢錯能力,可以在BCH碼的生成多項式中乘D+1,從而得到(n+1,k+1)擴展BCH碼。擴展BCH碼相當于將原有BCH碼再加上一位的偶校驗,它不再有循環(huán)性。
3、縮短形式
幾乎所以的循環(huán)碼都存在它另一種縮短形式。實際應用中,可能需要不同的碼長不是或它的因子,我們可以從碼中挑出前s位為0的碼組構成新的碼,這種碼的監(jiān)督位數不變,因此糾錯能力保持不變,但是沒有了循環(huán)性。
BCH 碼使用有限域上的域論與多項式。為了檢測錯誤可以構建一個檢測多項式,這樣接收端就可以檢測是否有錯誤發(fā)生。
要構建一個能夠檢測、校正兩個錯誤的 BCH 碼,我們要使用有限域 GF(16) 或者 Z2[x]/<x4 + x + 1>。如果 α 是 m1(x) = x4 + x + 1 的一個根,那么 m1 就是 α 的極小多項式,這是因為
m1(x) = (x - α)(x - α2)(x - α4)(x - α8)=x4 + x + 1。
如果要構建一個能夠糾正一個錯誤的 BCH 碼,那么就使用 m1(x),這個代碼就是所有滿足