2016-09-30 18 views
1

私はハミングコードを理解しようとしており、ハミング7,4の入力を正しくエンコードしてデコードするプログラムを書いています。 15,11でこれをしようとすると、エンコードしようとすると正しい出力が得られません。15、11 Hammingコードジェネレーターマトリックス

私はバイトを入力し、3つの先行ゼロを追加し、次にそれを下のジェネレータ行列で乗算しました。行列のmod2を取った後、私はまだ正しい答えを得ていないし、何かが間違っているのか、行列が正しくないのか分からない。

int [][] byte = {{0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1}}; 

int [][] matrixG = { { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
        { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
        { 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, 
        { 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, 
        { 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, 
        { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0}, 
        { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0}, 
        { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1} }; 

ハミングコードは非常に新しい概念ですので、私は非常に明白な何かを見逃しているかもしれません!私はあなたが私に与えることができるすべての助けに本当に感謝します!

答えて

0

あなたのGマトリックスが間違っています。

int [][] matrixG = { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, 
        { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, 
        { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, 
        { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, 
        { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, 
        { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1}, 
        { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1}, 
        { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, 
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1} }; 

ここからわかるように、Gマトリックスは元のデータビットをそのまま維持し、文字列の最後に追加のパリティビットを追加します。