概述
若循環碼的生成多項式具有如下形式: g(x)=LCM[
(x),
(x),…,
(x)] 其中LCM表示最低公倍式,t為糾錯個數,
(x)為素多項式,則由此生成的循環碼稱為BCH循環碼,其最小碼距d≥
=2t+1(d0稱為設計碼距),它能糾正t個隨機獨立差錯。
計算公式
設計距離為9的q元BCH碼的周期分布的計算公式:碼的周期分布為q的冪,當碼的周期不等於某些特殊值時,冪為碼長與周期的最大公因數。當碼的周期為特殊值時,冪為n/b-m[8/b],這裡n是碼的長度,b是由n和碼的周期決定的2到8之間的整數,m是q模n的指數。由此計算公式和Mobius反轉公式給出了無內周期碼字個數的計數結果。
基本原理
BCH碼是一種有限域中的線性分組碼,具有糾正多個隨機錯誤的能力,通常用於通信和存儲領域中的糾錯編碼。BCH碼定義如下:給定任意一個有限域GF(q)及其擴展域GF(q^m),其中q是素數或素數的冪,m為正整數。對於任意一個碼元取自擴展域GF(q^m)的循環碼(n,k),其中n=2^m-1,其生成多項式g(x)具有2t個連續的根{a^1,a^2,a^,...,a^(2t-1),a^(2t)},則由生成多項式g(x)編碼產生的循環碼稱為q進制的BCH碼,記為(n,k,t)。當碼長n=2^m-1,稱為本原BCH碼,否則稱為非本原BCH碼。
最常用的BCH碼是二進制的BCH碼。二進制BCH碼的所有碼元都是由0和1構成,便於硬體電路的實現。如無說明,本文以下討論的BCH碼都是二進制BCH碼。二進制本原BCH碼具有以下重要參數:
碼長:n=2^m-1
校驗位長度:n-k<=m*t
BCH碼的生成多項式是由GF(q^m)的2t個最小多項式最低公倍式的乘積,糾錯能力為t的BCH碼生成多項式為g(x)=LCM{m1(x),m2(x),...,m2t-1(x),m2t(x)},其中LCM表示最低公倍式,m(x)為最小多項式。
由多項式理論知道,如果有限域GF(2^m)中的元素a^i是m次即約多項式mi(x)的根,則(a^i)^2,(a^i)^4,(a^i)^8,...也是mi(x)的根,(a^i)^2,(a^i)^4,(a^i)^8,...稱為共軛根系。如果兩個根共軛,則它們具有相同的最小多項式。因此生成多項式g(x)=LCM{m1(x),m2(x),...,m2t-1(x),m2t(x)}=m1(x)*m3(x)*...*m2t-1(x)通過以上步驟就可以求出BCH碼的生成多項式。得到生成多項式就可以對信息進行編碼。
編碼原理
將未編碼的k位數據記為多項式:
m(x)=m0+m1*x^1+m2*x^2+...+mk-1*x^k-1;其中mi屬於{0,1}
將生成多項式記為:
g(x)=g0+g1*x1+g2*x^2+...+gr*x^r,其中r=m*t,校驗位記為r(x),則
r(x)=x^r*m(x) mod g(x)
編碼後的BCH碼字多項式可記為:
C(x)=x^r*m(x)+x^r*m(x) mod g(x)
BCH編碼實現的關鍵是通過除法電路得到校驗位多項式。編碼的過程可總結為:
將m(x)左移r位,得到x^r*m(x);
用生成多項式g(x)除以x^r*m(x),得到校驗位多項式r(x);
得到碼元多項式C(x)=x^r*m(x)+x^r*m(x) mod g(x)。
解碼規則
若秩為n-κ並且滿足GH=0,僅當A=(v1,v2,…,vn)∈n滿足H=0時,才為κ中的碼字。稱H為(n,κ)線性分組碼κ的均等校驗矩陣,稱H為矢量的伴隨式。假設v是傳送的碼矢量,在接收端獲得一個失真的矢量r=v+E,式中E=(e1,e2,…,en)稱為錯誤型。由此rH=(v+e)H=eH