- 締切済み
ハミングコード
3桁の数字をハミングコードを用いて表す場合、何桁必要なのでしょうか? また、その理由を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
No.1 です。 なんかまるっきりの大嘘を書いていたようで、失礼いたしました。
- tadys
- ベストアンサー率40% (856/2135)
ハミングコードとはシンボル(データ)のハミング距離を3とすることで1ビットのエラー訂正を可能とするエラー訂正符号です。 ハミング距離とはシンボルの各桁のビットが異なる場合を1としてそれを全桁について足した数です。 例えば シンボルA(000) シンボルB(000) ハミング距離 0 シンボルA(001) シンボルB(000) ハミング距離 1 シンボルA(111) シンボルB(000) ハミング距離 3 これを表で表わすと()内がハミング距離 シンボルA 000 001 010 011 100 101 110 111 B 000 (0) (1) (1) (2) (1) (2) (2) (3) 011 (2) (1) (1) (0) (3) (2) (2) (1) 100 (1) (2) (2) (3) (0) (1) (1) (2) 101 (2) (1) (3) (2) (1) (0) (2) (1) 110 (2) (3) (1) (2) (1) (2) (0) (1) 111 (3) (2) (2) (1) (2) (1) (1) (0) "0"と言うデータを送るのに"000"と言うシンボルを選ぶと ハミング距離が3のシンボルは"111"しかありませんから "1"に対応するシンボルは"111"になります。 "001"と言うシンボルを受信した場合には"000"からの距離1、 "111"からの距離は2になるので、"000"が1ビット間違えて "001"になったと判断します。(2ビット以上の誤りがないとする) (シンボルのビット数が3の時は2ビットの誤り検出が出来ないので正しいハミングコードではない) ビット数が増えた場合については下記URLを参考に
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
3桁というのが、10進数の3桁なら、最大 10bit が必要です。 10進数3桁を表現すするには、1024 = 2^10 までが必要になるから。