最大3bitの誤りを訂正できるBCH(15,5)の符号化、ピーターソン法での復号の実例

原始多項式をX^4+X+1として

GF(2^4)拡大体の元を列挙すると

0・・・・0000
1・・・・0001
α・・・・0010
α^2・・0100
α^3・・1000
α^4・・0011
α^5・・0110
α^6・・1100
α^7・・1011
α^8・・0101
α^9・・1010
α^10・0111
α^11・1110
α^12・1111
α^13・1101
α^14・1001

最大3bitの誤りを訂正できるBCH符号の生成多項式は、その生成多項式にα、α^2、α^3、α^4、α^5、α^6をそれぞれ代入して0にならなくてはならない。

つまり(X-α)(X-α^2)(X-α^3)(X-α^4)(X-α^5)(X-α^6)を因数にもたないといけない。

しかしこれを展開すると係数にαのべき乗がでてきてしまいGF(2)では扱えない。

そこで係数が0か1になるようにしなければならない。

(X-α)(X-α^2)(X-α^4)(X-α^8)=X^4+X+1

(X-α^3)(X-α^6)(X-α^12)(X-α^9)=X^4+X^3+X^2+X+1

(X-α^5)(X-α^10)=X^2+X+1

のように左辺を展開して右辺にするとαのべきが消えて係数が0か1となる。

この3つの式を掛け算したものを生成多項式とする。

(X-α)(X-α^2)(X-α^3)(X-α^4)(X-α^5)(X-α^6)を因数としてもつ係数が0か1の多項式

(X^4+X+1)(X^4+X^3+X^2+X+1)(X^2+X+1)

=X^10+X^8+X^5+X^4+X^2+X+1

となる。

GF(2^4)拡大体におけるBCH符号の符号長は15bit

最大3bitの誤りが訂正できる生成多項式の最大次数の項のべき数は10なのでこれで割った余りの最大次数の項の

べき数は9以下になり、この符号の検査ビットは10bitということになる。

よって、符号長15bit-検査ビット10bit=情報長5bit

となり,BCH(15,5)符号ということが確定する。

BCH(15,5)符号は最大3bitの誤りが発生しても訂正できる。

では実際に符号化してみよう。

情報長は5bitであるから例として10000を符号化することにする。

多項式であらわすと

1*X^4+0*X^3+0*X^2+0*X+0=X^4

これに生成多項式の最大次数の項のべき数10で

X^10をかける。

X^14となる。

これを符号化するには、生成多項式で割ってやってあまりをX^14にたしてやればいい

X^14÷(X^10+X^8+X^5+X^4+X^2+X+1)=X^4+X^2+1・・・余りX^9+X^7+X^4+X^3+X+1

よって符号は

X^14+X^9+X^7+X^4+X^3+X+1

これを符号多項式と呼ぶと符号多項式F(X)は

F(X)=X^14+X^9+X^7+X^4+X^3+X+1

100001010011011

となる。

これは、誤りがない送り元の符号であり、生成多項式で割り切れるので

F(X)=(X-α)(X-α^2)(X-α^3)(X-α^4)(X-α^5)(X-α^6)*G(X)

とかける。

当然シンドロームF(α)=F(α^2)=F(α^3)=F(α^4)=F(α^5)=F(α^6)=0

となる。

これが通信路でE(X)=X^8+X^7+X^6が加算されて3bit化けたとすると

これは、符号の下位から9bit目の0が1に化け8bit目の1が0に化け7bit目の0が1に化けたことを意味する

100001010011011が通信路のノイズで

100001101011011になったということである

H(X)=F(X)+E(X)=(X^14+X^9+X^7+X^4+X^3+X+1)+(X^8+X^7+X^6)

=X^14+X^9+X^8+X^6+X^4+X^3+X+1

H(X)をピータソン法で復号してみよう

まずシンドローム を計算する。$ S_{1} $ = H(α)、$ S_{2} $ = H(α^2)、$ S_{3} $ = H(α^3)、$ S_{4} $ = H(α^4)、$ S_{5} $ = H(α^5)、$ S_{6} $ = H(α^6)とする。

これらが全部0であるかを確認する。全部0だったら誤りはない。

ひとつでも0でないものがあれば、誤りがある。

計算すると$ S_{1} $ = α、$ S_{2} $ = α^2、$ S_{3} $ = α^11、$ S_{4} $ = α^4、$ S_{5} $ = 0、$ S_{6} $ = α^7

となる。

よって誤りが発生していることがわかる。

発生している誤りの総bit数はわからない。

まず誤りが3bit発生しているんではないかと疑いをかけて、それを確認する。

\begin{equation} \begin{bmatrix}
S_{3} & S_{2} & S_{1} \\
S_{4} & S_{3} & S_{2} \\
S_{5} & S_{4} & S_{3} \\
\end{bmatrix}   \begin{bmatrix} \beta _{1} \\
\beta _{2} \\
\beta _{3} \\
\end{bmatrix}  = \begin{bmatrix} S _{4} \\
S _{5} \\
S _{6} \\
\end{bmatrix}  \end{equation}

が唯一の$  \beta _{1} $ 、 $ \beta _{2} $ 、 $ \beta _{3} $ の組をもつ

とき3bitの誤りが発生している。

つまり、3x3正方行列の行列式が0でない場合は、3bitの誤りが発生している。

0の場合は、2個以下の誤りが発生していることになる。

行列式を計算するとαとなるので、3bitの誤りが発生していることがわかる。

行列式が0でないので、逆行列が存在しそれを左側から両辺にかけてやると

$  \beta _{1} $ 、 $ \beta _{2} $ 、 $ \beta _{3} $がもとまる。

計算すると

$  \beta _{1} $ = α 、$  \beta _{2} $ = α^8 、$  \beta _{3} $ = α^6

となる。

 誤り位置多項式は、$ \beta_{3} x^{3} + \beta_{2} x^{2} + \beta_{1} x + 1 $

なので、代入してやると

I(X)=α^6*X^3+α^8*X^2+α*X+1

I(X)にX=α^(-14),X=α^(-13),・・・,X=α^(-2),X=α^(-1),X=α^(0)

を順に代入してやると、0になるときが3回ある。

そのときのX=α^(-n)のnの値が誤り発生ビットである。

X=α^(-8)とX=α^(-7),X=α^(-6)を代入したとき0になるので

E(X)=X^8+X^7+X^6となって

H(X)+E(X)を計算して訂正は終了となる。

2個以下の場合は2x2行列で表される式で同様に行う。

2x2行列の行列式が0になったら、1個の誤りが発生している。

訂正された符号のシンドロームを計算して、検算を行うこともできる。

次に2個の誤りがある場合の訂正作業をやってみよう。

E(X)=X^8+X^7が加算されて誤りが2個発生している場合

H(X)=X^14+X^9+X^8+X^4+X^3+X+1

 シンドロームを計算すると$ S_{1} $ = α^11、$ S_{2} $ = α^7、$ S_{3} $ = α^5、$ S_{4} $ = α^14、$ S_{5} $ = 1、$ S_{6} $ = α^10

誤りが3個あると予想して

  \begin{bmatrix}
S_{3} & S_{2} & S_{1} \\
S_{4} & S_{3} & S_{2} \\
S_{5} & S_{4} & S_{3} \\
\end{bmatrix} 

行列式を計算すると0になる

よって予想ははずれて、2個以下になる。

\begin{equation} \begin{bmatrix}
 S_{2} & S_{1} \\
 S_{3} & S_{2} \\
\end{bmatrix}   \begin{bmatrix} \beta _{1} \\
\beta _{2} \\
\end{bmatrix}  = \begin{bmatrix} S _{3} \\
S _{4} \\
\end{bmatrix}  \end{equation}

誤り位置多項式

 $ \beta_{2} x^{2} + \beta_{1} x + 1 $

 を考え、まず2x2行列の行列式の値を求める

すると、α^7になる。

0ではないので、誤りは2個に確定。

 $ \beta_{1} $ 、 $ \beta_{2} $ を求めると

 $ \beta _{1} $ = α^11 、$  \beta _{2} $ = 1

α^(-14),・・・,α^(-1),α^0をそれぞれ誤り位置多項式に代入すると

α^(-8)とα^(-7)を代入したときだけ0になる。

よってE(X)=X^8+X^7で訂正が完了する。

次に1個の誤りがある場合

E(X)=X^7が加算されて

H(X)=X^14+X^9+X^4+X^3+X+1

としてシンドロームを計算すると

$ S_{1} $ = α^7、$ S_{2} $ = α^14、$ S_{3} $ = α^6、$ S_{4} $ = α^13、$ S_{5} $ = α^5、$ S_{6} $ = α^12

となる。

同様に3x3行列の行列式を計算すると0

よって誤り個数は2個以下が確定する。

次に2x2行列の行列式を計算すると0

よって誤りは1個に確定する

\begin{equation}
 S_{1}  \beta _{1} = S _{2}
 \end{equation}

$ \beta_{1} $ を求めると

α^7

誤り位置多項式

 $ \beta_{1} x + 1 $

の $ x $ に

α^(-14),・・・,α^(-1),α^0をそれぞれ代入すると

α^(-7)を代入したときだけ0になる。

よってE(X)=X^7で訂正が完了する。