ハミング符号
さて、原理について数学的なことはまだ理解していないけれど、まぁちょっぴり書きますね。
反復符号
反復符号を考えよう。一桁の情報は桁の符号語に符号化される。要するに個並べるというだけのことだ。
決定則*1は最尤度復号。反復符号の場合、のうちで一番多いものを元の情報とする。このときは個の誤りを訂正できる。そのくらい間違ってても大丈夫、ということ。
誤り訂正と伝送レート
さて、とある符号が個の誤りを訂正できるとき、その符号を重誤り訂正符号と呼ぶ。以下では一重訂正符号について考えることにする。例えば反復符号は一重誤り訂正符号である。また、1桁の情報を3桁に符号化していることから、その伝送レートはとなる。
ハミング符号
さて、しかし最尤度復号は復号が面倒だし、それに反復符号はいまいち伝送レートが低い。そこで考えられたのがハミング符号だ。
ハミング符号は四桁の情報を七桁の符号語に符号化する。細かい原理の説明はおいておいて(ぇ)、符号化の手順を書こう。
二元体
二つの要素からなる集合について、以下のように加算と乗算を定義する。
1+1=0から、-1=1となることは自明である。この集合は加算、減算、乗算、ゼロでない除算について閉じており、交換法則やら結合法則を満たすので、体と呼ばれ、特にこれを二元体と呼ぶ*2。
符号化
まず、とする。次に、の検査和
がすべて0となるようにを決定する。これで完成。例えばだった場合、で、
からとなり、結局である。
復号
さて、符号語がとして受信されたとしよう。このときとのハミング距離は1以内ならば、ハミング符号は誤りを訂正することができる。
まず、符号化のときと同じようにの検査和を計算し、それぞれの値をとする。のとき、桁目に誤りが発生していることがわかる。
先の例と同じく、として、伝送の過程で六桁目に誤りが発生し、として受信されたとする。このとき検査和はであるから、桁目に誤りが発生しているとわかるので、訂正することができる。すごいぞハミング符号。
あといろいろ
さて、ところで、4桁の情報を7桁に符号化しているのだから、ハミング符号の伝送レートはである。同じ一重誤り訂正符号でも、反復符号より効率がよい。
を構成するのと同様の手法で、を構成することができ、伝送レートはである。このように任意に高い伝送レートを持つ符号を構成することができる、とシャノンあたりが証明したそうな。
いまいち説明できませんね。いつかまたきちんと書くつもりです。線形符号がどうとか。