2020-01-01から1年間の記事一覧

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

原始多項式をX^4+X+1として GF(2^4)拡大体の元を列挙すると 0・・・・00001・・・・0001α・・・・0010α^2・・0100α^3・・1000α^4・・0011α^5・・0110α^6・・1100α^7・・1011α^8・・0101α^9・・1…

BCH符号をつくってみよう

GF(2^4)の原始多項式はX^4+X+1 GF(2)に原始根αを導入してGF(2^4)拡大体をつくる。 G(X)=X^4+X+1とおくとG(X)=0の根は原始根αなのでG(α)=0 α^4+α+1=0 α^4=α+1 これでBCH符号をつくってみよう。 α^4=α+1を使って最大次の次数が3次になる…

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

まず、リードソロモン符号の生成多項式例えば(x-α)(x-α^2)(x-α^3)(x-α^4)であるが、1個前の記事で、わかるひとはわかるように符号は、生成多項式でわりきれるように、生成多項式でわったときに、そのままでは余りがでる多項式に余りを…

CRC符号(BCH符号の作り方はCRC符号と同じ)

例えばCRC4っていうのがある生成多項式がx^4+x+1となっている。これで誤りを検出する符号をつくるにはどうするかということを説明してみよう。 0+0は0、0+1は1、1+0は1、1+1は0、 0x0は0、0x1は0、1x0は0、1x1は1 引き算は…

訂正できる最大の誤りの個数と必要なシンドロームの数の関係

最大3個の誤りを訂正できるBCH符号、もしくは、最大3ブロックの誤りを訂正できるリードソロモン符号で、3個(3ブロック)の誤りがあるのではないかと疑ってまず3次式による誤り位置多項式を $ \beta_{3} x^{3} + \beta_{2} x^{2} + \beta_{1} x + 1=0 $ とする…

GF(2)でf(x^2)=f(x)^2が成り立つわけ

なんでかわかんなかった係数が0か1のつまりGF(2)の場合の多項式についてf(x^2)=f(x)^2が成り立つわけがわかった。 GF(2)のガロア体の多項式の一般形で表すと数学的帰納法で証明できる (a+b)^2=a^2+2ab+b^2の公式を順番に適用していけばよい。 GF(2)のガロ…

群、環、体の理論で、加算と乗算については議論されるけど、減算、除算についてはあまり議論されない理由

よく群、環、体の理論で、加法について閉じているとか乗法について閉じているというけど 減算、除算について閉じているといわないのはなぜかというと 加法について閉じていて、かつ単位元が存在し、かつ逆元が存在すると減算が定義できる。そして減算につい…

有限体でのガロア拡大(その3)

X^8+X^4+X^3+X^2+1は、原始多項式である。地デジやブルーレイや光通信やQRコードのリードソロモン符号ででてくる。なぜ、これが多用されているかというと、コンピュータはデータをバイト(8ビット)の整数倍で処理するので都合がいいからである。X^8+X^4+…

有限体でのガロア拡大(その2)

昔の記事でf(x)=x^8-xとおくと、GF(2^3)上でのf(x)=0の根が、GF(2^3)のすべての元になる理由がわからなかったのですっきりわかったら書くという宿題の答えが半分でた。x^8-x=x(x-1)(x-α)(x-α^2)(x-α^3)(x-α^4)(x-α^5)(x-α^6)となる理由は まず、掛け算、足…

有限体でのガロア拡大(その1)

GF(2)からGF(2^3)のガロア拡大の理屈を工学部出身者向けに直観的に説明してみます。 まず、X^8-X=0の根がGF(2^3)の元であることを天下りで決めます。 なぜX^8-X=0の根がGF(2^3)の元であるかは zuruyasumineko2002.hatenablog.com で書いてます。 まず、X^8-X…

修正離散コサイン変換(MDCT)を離散フーリエ変換(DFT)で表す。

修正離散コサイン変換の式は次のとおりです。 \begin{equation} S(r)=\sum_{k=0}^{N-1} s(k){\rm cos}(\frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) ただし r=0 ~ \frac{N}{2}-1 \end{equation} これを離散フーリエ変換で表します。 …

完備なゼータ関数と呼ばれるクシー関数(素数の並びを決める素数関数について)

リーマンのゼータ関数を $\zeta(s) $ とし、ガンマ関数を $ \Gamma(s) $ とする。 ここでクシー関数 $ \xi(s) $ を次のように定義する。 \begin{equation} \xi(s)=\zeta(s)\pi^{-s/2}\Gamma(s/2) \tag{1} \end{equation} 上式で、 $ \zeta(s) $ は、リーマン…