アダマール符号

From Wikipedia, the free encyclopedia

アダマール符号 (32, 6, 16) の行列。NASAのマリナー9号リード・マラー符号 (1, 5) で使われた。

アダマール符号(アダマールふごう、: Hadamard code)は、信号の誤り検出訂正に使われる符号体系。名称はジャック・アダマールに由来する。[2n, n + 1, 2n  1] 符号の一種である。n が大きいと転送レートは低くなるが、多くの誤りを訂正可能である。

この符号はアダマール行列に基づいている。H を次数 2nアダマール行列としたとき、符号語は HH の行で与えられ、1 を 0 に置き換えて使う。これにより、長さ 2n の符号語が 2n + 1 個得られる。アダマール行列の行は互いに直交なので、最小ハミング距離は 2n - 1 となる。このようにして [2n, n + 1, 2n  1] 符号が構築される。

また、2n  1 個のベクトル全てが奇数個の1を含むようなパリティ検査行列を生成することでも、アダマール符号を構築できるし、再帰符号化処理でも構築可能である。

復号

最小ハミング距離は 2n  1 なので、最大 t = 2n  2  1 個の誤りを訂正できる。以下にそのアルゴリズムを示す。

符号語を受信すると、まず全ての0を 1 に置き換えて、1/1 ベクトル v に変換する。そして (v HT) を計算する。最大絶対値のエントリと対応する行が符号語となる。正の場合は符号語は H にあり、負なら H にある。

証明を以下に示す。誤りがない場合、(v HT) という積は、1つのエントリだけ +/2n となり、他は0になる。v に誤りが含まれる場合、絶対値で考えると0だったエントリの一部が大きくなり、最大だったエントリが若干小さくなる。1つの誤りでこの値は2ずつ変化する。従って、元々0だった値は最大で 0 + 2t = 2n  1  2 となる。一方最大エントリは 2n  2t = 2n  2n  1 + 2 = 2n  1 + 2 となる。従って、最大限誤りがあっても、正しい行の絶対値は他の行の絶対値よりも大きい。

歴史

最適性

脚注

Related Articles

Wikiwand AI