バーレカンプ・マッシィ法

これまで直接的な復号法、ピーターソン法、ユークリッド復号法を述べた。
バーレカンプ・マッシィ法については例題で学ぶ符号理論入門には以下の記載があるのみである

また、バーレカンプ・マッシィ法は、ユークリッド復号法と類似しているが、ユークリッド復号法よりも表現方法が分かりにくいので、ここでは触れないことにする。

以下バーレカンプ・マッシィ法について述べる。
参考 BBC WHP031


バーレカンプ・マッシィ法は、ピーターソン法やユークリッド復号法と同様に誤り数tならば2t個のシンドロームを使って誤り位置多項式を求めるアルゴリズムである。ただし参照した資料の都合上で今回は$${\alpha^0, \cdots, \alpha^{2t-1}}$$をシンドロームに用いる。


$$
S
\begin{pmatrix}
\sigma_t \\
\sigma_{t-1} \\
\vdots \\
\sigma_1
\end{pmatrix}
=
\begin{pmatrix}
S_{t} \\
S_{t+1} \\
\vdots \\
S_{2t-1}
\end{pmatrix}
$$

を解くためのより効率的な反復手法であり、tがわからない問題も克服する。これは、$${\sigma(x)=1}$$ から始まる誤り位置多項式の近似を形成することによって行われる。次に、各ステージでtの値に対応する方程式に近似係数を代入してエラー値を形成する。
次に、誤差を使用して補正多項式を改良し、それを追加して近似$${\sigma(x)}$$を改善。 近似誤り位置多項式が残りの方程式と一貫してチェックされると、プロセスは終了する。

具体的な方法

訂正多項式(correction polynomial)$${C(x)}$$
方程式の順序をトラックするためのパラメータ$${K,L}$$

  1.  $${K = 1, L = 0, \sigma(x) = 1, C(x) = x. }$$

  2. $${K \leq 2t}$$である限り次を繰りかえす

    1. 誤り値$${e}$$を計算。$${e = S_{K-1} + \sum_{i=1}^L \sigma_i S_{K-1-i}}$$

    2.  $${e}$$が非ゼロなら、近似$${\sigma(x)^*}$$を次で与える:

      1. $$
        \sigma(x)^* = \sigma(x) + e \times C(x)
        $$

    3. もし$${2L < K}$$ならば$${L = K - L}$$として、$${C(x)}$$を次で与える:

      1. $$
        C(x) = \sigma(x)/e
        $$

    4. 次のステージのために更新$${C(x) =  C(x)x, \sigma(x) =\sigma(x)^*, K = K+1 }$$




この記事が気に入ったらサポートをしてみませんか?