バーレカンプ–ウェルチアルゴリズム, または ウェルチ–バーレカンプアルゴリズムは,エルウィン・バーレカンプと Lloyd R. Welch から命名された復号アルゴリズムで,メッセージ
を多項式
の係数として使用するか,ラグランジュ補間に用いるかの何れかによって
を入力とする
次未満の多項式
を生成し,次に
に
を代入して符号語
を生成するという,元来のリード・ソロモン符号における誤り訂正において効果的である。
復号アルゴリズムの目的は,分かっている入力
と,誤りを含む可能性のある受信した符号語
を用いて,もともとの符号化多項式
を復元することである。また,
に対応する符号語に誤りがあると
となるような多項式
も算出する (後述)。
タネとなる方程式
誤りが
個含まれるとすると,
以上
以下のすべての自然数
について以下の方程式
-
が成り立つ,という
元連立方程式が主人公である。ここで
は,
である (つまり誤りがある) ような
通りの場合に
となり (つまり
は
の根になる),それ以外の
通りの場合 (すなわち誤りがなく,
であるような場合) に
となる
次多項式とし,その
次の係数を
とする (すなわち,
)。この
元連立方程式を直接解くことはできないが,関数
を
-
と定義し,
がモニックである (つまり
) という制約を付加すると,結果的に連立方程式が
次方程式によって解けるようになる。
-
-
-
ここで
である。また,制約により
であるから,方程式は以下のようにできる。
-
これは線型代数によって,計算量
で解決できる連立方程式である。
このアルゴリズムは,誤りの最大数を
と仮定し,これに基づいて処理を開始する。もし冗長性が原因で方程式が解けない (すなわち同じ式が重複している) のであれば
を
減らし,以後方程式が解けるようになる,または
が
に達する (これは誤りが
つも含まれないというたいへんめでたい状況を意味する) までこの処理を繰り返す。もし
が
で割り切れるのであれば,
であり,
となる
について符号語
を計算し,元の符号語を修復する。また,
を
で割って
でない余りが生じるのであれば,それは修復不能な誤りが検出されたということである。
ガロア体 GF
に定義されるリード・ソロモン符号 RS
を考える。添字
に対応する入力値を
とし,送信したいメッセージが
であるとする。ラグランジュ補間により,符号化多項式は
であり,
から
を代入して符号語
を得る。ところが残念ながら
と
で誤りが起こってしまい,符号語
を受信したとする。
から始めて上の
次方程式を解く。
-
-
-
右辺の行列の下 (第
行) から始まって上に行き,また制約
を考慮して
となって割り切れる。
∴
となるのは
及び
である。これらを
に代入して,符号語を
に訂正する。
関連項目
外部リンク
- MIT Lecture Notes on Essential Coding Theory – Dr. Madhu Sudan
- University at Buffalo Lecture Notes on Coding Theory – Dr. Atri Rudra
- Algebraic Codes on Lines, Planes and Curves, An Engineering Approach – Richard E. Blahut
- Welch Berlekamp Decoding of Reed–Solomon Codes – L. R. Welch
- US 4,633,470, Welch, Lloyd R. & Elwyn R. Berlekamp, "Error Correction for Algebraic Block Codes", published September 27, 1983, issued December 30, 1986 – The patent by Lloyd R. Welch and Elewyn R. Berlekamp