情報理論ハンズオンセンター

情報理論の基礎(情報量・エントロピー・符号化など)を視覚的・体験的に学ぶ

ハミング符号

ハミング符号は、データ伝送における誤りを検出・訂正するための代表的な線形ブロック符号です。 このページでは、特に(7,4)ハミング符号に焦点を当て、4ビットのデータに3ビットのパリティビットを付加して7ビットの符号語を生成し、1ビットの誤りを訂正する仕組みを視覚的に学びます。 データビットの入力から符号化、エラーの注入、そして誤り検出・訂正、最後に復号という一連のプロセスをステップバイステップで体験できます。 「ビット処理の可視化」タブでは各ステップでのビットの変化を、「行列・数学的背景」タブでは符号化・復号に使われる数学的な原理(生成行列、検査行列、シンドロームなど)を確認できます。

データ入力

{/* JS will populate this */}

操作

ヘルプ

表示の見方:

  • 白い四角: ビット値 1
  • 黒い四角: ビット値 0
  • 赤枠: エラー注入ビット
  • 緑枠: 修正されたビット
  • 青枠: 元データ/復号データビット

ビット処理の可視化

データビットを選択して「符号化」ボタンを押してください。


処理の詳細説明

行列・数学的背景

ハミング(7,4)符号について:

  • データビット4個から7ビットの符号語を生成
  • 1ビットエラーの検出と修正が可能
  • パリティビット3個(p1, p2, p3)とデータビット4個(d1, d2, d3, d4)で構成
  • ビット配置: p1 p2 d1 p3 d2 d3 d4

生成行列 G (4×7): c = d G (mod 2)

G = [[1, 1, 1, 0, 0, 0, 0],
     [1, 0, 0, 1, 1, 0, 0],
     [0, 1, 0, 1, 0, 1, 0],
     [1, 1, 0, 1, 0, 0, 1]]

検査行列 H (3×7): s = H rT (mod 2)

H = [[1, 0, 1, 0, 1, 0, 1],
     [0, 1, 1, 0, 0, 1, 1],
     [0, 0, 0, 1, 1, 1, 1]]

パリティビット計算:

p1 (bit 0) = d1⊕d2⊕d4 (bits 2,4,6)
p2 (bit 1) = d1⊕d3⊕d4 (bits 2,5,6)
p3 (bit 3) = d2⊕d3⊕d4 (bits 4,5,6)
(⊕はXOR)

シンドロームとエラー位置:

シンドローム s = [s3, s2, s1] (MSBファースト)

s3s2s1 | 10進数 | エラービット | Name
-------------------------------------------
0 0 0  |   0   | エラーなし     | -
0 0 1  |   1   | Bit 1         | p1
0 1 0  |   2   | Bit 2         | p2
0 1 1  |   3   | Bit 3         | d1
1 0 0  |   4   | Bit 4         | p3
1 0 1  |   5   | Bit 5       | d2
1 1 0  |   6   | Bit 6      | d3
1 1 1  |   7   | Bit 7      | d4