誤り訂正符号の生成多項式

まず、リードソロモン符号の生成多項式
例えば
(x-α)(x-α^2)(x-α^3)(x-α^4)
であるが、
1個前の記事で、わかるひとはわかるように
符号は、生成多項式でわりきれるように、生成多項式でわったときに、そのままでは余りがでる多項式に余りを足して符号とする。このとき生成多項式の最大次の項のべきの数をkとするとx^kを送りたいデータの多項式にかけてやって、x^(k-1)、x^(k-2)、・・・、x^0の係数を0にする。
割り算するとあまりがでる。そのあまりを被除数多項式にたしてやれば、生成多項式で割り切れる。
あまりは、検査ビットと呼ばれる。

さて本題にはいり、
(x-α)(x-α^2)(x-α^3)(x-α^4)
でわりきれるなら
符号多項式は、
(x-α)(x-α^2)(x-α^3)(x-α^4)*多項式(商)
とあらわせる。

この多項式をf(x)とすれば
f(α)=0
f(α^2)=0
f(α^3)=0
f(α^4)=0
となる。
生成多項式でわりきれるか、実際にわってやらなくても
上の4つの式をみたすことが、生成多項式でわりきれる必要十分となる。
シンドローム計算とは、上の四つの式を計算することである。

BCH符号では

生成多項式をもとめるとこからやらなくちゃいけない。

原始多項式の根になっている原始元αを導入してガロア拡大体をつくる。
1、α、α^2、α^3・・・を代入して0になるような生成多項式を考える。
このとき、生成多項式を展開すると、各項の係数が1か0になるものをつくらなければならない。0と1で符号をつくるにはαがでてきてはならないからである。GF(2)の多項式をf(x)とするとf(x)^2=f(x^2)が成り立つ。

GF(2)を拡大したガロア拡大体でもf(x)^2=f(x^2)が成り立つ。

f(x)^2=f(x^2)=0とおくと

多項式が根αをもつならα^2、α^4、α^8・・・も根である


1を代入して0になるには
x-1
これって普通の偶奇パリティに一致する
αを代入して0になるには

x-αだが
展開した生成多項式の係数が0か1になるとき、その生成多項式はα、α^2、α^4、α^8、α^16・・・が根にならなくてはならないので
(x-α)(x-α^2)(x-α^4)(x-α^8)(x-α^16)・・・
となるがGF(2^4)のガロア拡大体を考えるときα^15=1=α^0になるので
x-α^16=x-αとなる。
これは、すでにでてきているので、必要はない
よって
(x-α)(x-α^2)(x-α^4)(x-α^8)
を展開して、係数が0か1になればいい
計算するとx^4+x+1となる。
これをf(x)とおくとf(α)=0となる。
シンドロームf(α)f(α^2)がこの生成多項式を使うと誤りがない時0になるので
1個の誤りを訂正できる。

2個の誤りを訂正するにはf(α)f(α^2)f(α^3)f(α^4)がシンドローム
にならなくてはならないので

(x-α^3)(x-α^6)(x-α^12)(x-α^24)(xーα^48)(x-α^96)・・・
GF(2^4)でのおきて、α^15=1を使うと
(x-α^3)(x-α^6)(x-α^12)(x-α^9)
となる
これを、展開すると、x^4+x^3+x^2+x+1になり、係数が0か1になる。
2個の誤りを訂正するには、生成多項式

(x^4+x+1)*(x^4+x^3+x^2+x+1)

=x^8+x^7+x^6+x^4+1

になる。

最大訂正可能誤り数の2倍の個数のαのべきの数が連続したシンドロームが誤りを訂正するには必要である。
最大誤り数2だったら、4つのシンドロームである。
この4つのシンドロームを計算するには、生成多項式が、α、α^2、α^3、α^4という根をもてばいいわけである。