ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

二重誤り訂正符号 (7)

2012-06-20 18:09:39 | 暮らし

記事一覧, sys.pdf, sys-s.pdf,

7.ユークリッド復号法

BCH符号のユークリッド復号法に関する解説をWeb上でも閲覧できます.ここでは文献[3]を参照しながら三重誤りを訂正するときの「例1」を簡単に紹介します.なお,文献[3]の記法は上記のものと少し異なりますが,そのまま引用します.「例1」は x4 + x + 1 の根αで作られた符号語長15の三重誤り訂正符号で,誤り多項式がe(z) = z + z4 + z6 の場合の処理を示しています.三重誤り訂正の場合のシンドローム多項式は

        S(z) = s1 + s2 z + …… + s6 zx5    ( si = S(αi), 1 ≦ i ≦ 6 )

で,誤り位置を調べる多項式は

        σ(z) = (1 - αi1 z)(1 - αi2 z)(1 - αi3 z)

です.ユークリッド復号法では基本方程式

        σ(z) S(z) + φ(z) z6 = η(z)

を構成する多項式の次数に着目して,ユークリッドの互除法で次数を削減していきます.例1に数値が詳しく示されていますが,計算内容は漸化式

       

 を用いて

         

と連分数展開し,

       

と近似したものになっています.γ は γσ(0) = 1 とするための定数です.φ(z) や η(z) が表に出てこないのでよく分かりませんでした.e(z) = z という単一誤りのときのシンドローム多項式はS(z) = α + α2 z + …… + α6 z5 であり

       

となって r1(z) で次数が 0 になります.σ(z) = α-99 - α8 z) z2 としたいのですが,そうではなくてσ(z) = α-99 - α8 z) とするのかも知れません.

ユークリッド復号法は[3]で詳しく解説されていますが,上記のような連分数展開による表現の方が覚えやすく,実際,Web上でも「BCH  連分数」や「BCH  continued fraction 」の検索で多数の資料が見つかります.参考までに IEEE Xplore Digital Library に示されている論文のアブストラクトを次に示します.

I. S. Reed and T. K. Truong,  
"Simple proof of the continued fraction algorithm for decoding Reed-Solomon codes"
Proceedings of the Institution of Electrical Engineers, December 1978
Abstract:
It was shown recently that BCH and RS codes can be implemented by Berlekamp's
algorithm using continued fraction approximations. A simple transparent proof
of Berlekamp's algorithm that uses such a development is given in this paper.

この記事は式が多いので B2012-06.odt を作成してから *.txt にコピーしてブログの記事にしました.ときどき式が抜けていたのはこのためです.B2012-06.odt の方がミスが少なく,これを *.pdf に変換して
  http://pulsar.blog.ocn.ne.jp/topics/B2012-06.pdf
に upload しています.


二重誤り訂正符号 (6)

2012-06-20 00:13:57 | 暮らし

記事一覧, sys.pdf, sys-s.pdf,

6.GF(2m)上の多項式

  これまでは多項式の係数は 0,1 のいずれか(GF(2)上の元)としてきましたが,さらに議論を進めるには変数のとりうる値だけでなく係数も GF(2m) 上で考えねばなりません.実数体上の規約多項式 x2 + 4 は複素数体上では (x + 2i)(x - 2i) に因数分解できることは高校で学んだはずです.これと同様に 0, 1 を係数とするGF(2)上の規約多項式も GF(2m) 上ではさらに因数分解できます.例えば,M2(x) = x4 + x3 + x2 + x + 1 の根が α3, α6, α9, α12であるということは

        M2(x) = (x - α3)(x - α6)(x - α9)(x - α12)

を意味します.実際に M2(x) の係数を計算すると

        

となり,M2(x) = x4 + x3 + x2 + x + 1 であることが確認できます.連立方程式が,  αi + αj = α9, α3i + α3j = α2 のように簡単であれば x = αi とおいて

       x3 + (x + α9)3 = α9x2 + α3x + α12 = α2

を整理した x2 + α11x + α13 = 0 から,x の値は容易に求められます.しかし,より多くの伝送誤りを訂正できるようにしようとすると複雑な処理が必要になります.


二重誤り訂正符号 (5)

2012-06-19 00:13:24 | 暮らし

記事一覧, sys.pdf, sys-s.pdf,

5.シンドロームの計算

生成多項式が G(x) = M1(x) M2(x)で, M1(α) = 0,M23) = 0 とします.受信した符号語の多項式が W(x) のときのシンドロームは

        (W(α), W(α3))

で定義され,

        W(x) = Q1(x) M1(x) + R1(x),R1(x) = W(x) mod M1(x)

とおくと W(α) = R1(α) と表せます.同様に W(α3) = R23) ( R2(x) = W(x) mod M2(x) ) です.また,一般に W(α2i) = W(αi)2 が成立します.
W(α3) の計算例として

        W(x) = F(x) + E(x) = (1 + x + x4) (1 + x + x2 + x3 + x4) + x2 + x11

のときの R2(x) = W(x) mod M2(x) を求めると,x5 mod M2(x) = 1 ですから

     

となり,R23) = α3 + α6 = α2 が得られます.これは

        h2 = (α0  α3  α6 α9  α12  α0  α3  α6  α9  α12  α0  α3  α2  α9  α12)

とおいたときのシンドローム (1  0  1  0  1  0  1  1  1  0  0  1  0  0  0) h2T と一致しているはずです.


二重誤り訂正符号 (4)

2012-06-18 00:22:42 | 暮らし

記事一覧, sys.pdf, sys-s.pdf,

4.二重誤りの訂正

4次の原始多項式 x4 + x + 1 の一つの根をαとします.αとα3を根とする多項式を生成多項式とするBCH符号とはどのような符号でしょうか.この生成多項式は

        G(x) = M1(x) M1(x),   M1(x) = x4 + x + 1,   M2(x) = x4 + x3 + x2 + x + 1

です(最小多項式の説明は省略します).生成多項式をαとα9 = α3 + α を根とする多項式と考えてはいけないのでしょうか.とりあえず M2(x) の根を β とおいてパリティ検査行列
         
による伝送誤り e = (0  0  1  0  0  0  0  0  0  0  0  1  0  0  0) の訂正を考えて見ましょう.伝送誤りの多項式は E(x) = x2 + x11 で, シンドロームは

     
です.β = α3 のときは E(β) = α6 + α3 = α2 なので

        αi + αj = α9,  α3i + α3j = α2

となる,i, j を求めることになります.β = α9 のときは

        E(β) = α3 + α9 = α,  αi + αj = α9,  α9i + α9j = α

です. このときも,(α9i + α9j)2 = α18i + α18j = α3i + α3j = α2 ですから β = α3 のときと同じ式が成立しています.なお,単一誤りは E(α)3 = E(α3) で検出でき,E(α) = αi となる i は容易に求められます.

 


二重誤り訂正符号 (3)

2012-06-17 14:34:05 | 暮らし

記事一覧, sys.pdf, sys-s.pdf,

3.剰余の表現

最初に示した G(x) = x3 + x + 1 で生成される符号語の多項式

    F(x) = (0  1  0  1) (x0 ・・・ x6)T = 1 + x + x4 + x6

が G(x) で割り切れることは実際の計算

            
で確認できますが,転送誤りの位置のように G(x) で割り切れない多項式に上記のような昇べきの順の多項式で除算を行うと x の高次の式で表された剰余もどきの式が現れます.最初の例の

      (0  0  1  0  0  0  0) HT = (0  0  1)

の場合の剰余もどきの式は x4 + x5 + x6 で,剰余は x4 + x5 + x6 mod G(x) = x2 です.

      (0  0  1  0  0  0  0) (α0 ・・・ α6)T = α2

は昇べきの順で考えた誤り多項式 E(x) = x2 によるシンドロームで α2 を E(α) で表わすことができます.なお,通常は使いませんが (0  0  1  0  0  0  0) を降べきの順で考えた誤り多項式E(x) = x4 とみなしたときのシンドローム

      (0  0  1  0  0  0  0) (α6 ・・・ α0)T = α4

も E(α) で表現できます.誤りの位置 (0  0  1  0  0  0  0) は変更できないませんが,これをどう表現し,どう処理するかは自由です.