ハミング符号
通信中に 1 ビット化けても、受信側だけでどのビットが壊れたか特定して直せる誤り訂正のしくみを体感します。
送りたい 4 ビットのデータ(クリックで 0/1 切替)
円(または領域)をクリックすると、そのビットを反転して通信エラーを起こせます
通信路ではノイズでビットが反転します。ハミング符号 (7,4) は、4 ビットのデータに
3 ビットの検査ビット(パリティ)を足して 7 ビットで送る方式。
検査ビットは「3 つの円それぞれに入る 1 の個数が偶数」になるよう決めます。
1 ビット化けると、その円のパリティが崩れる。崩れた円の組合せが 7 つの領域で全部違うので、 どのビットが壊れたか一意に分かり、反転して直せます。円をクリックしてビットを壊してみてください。
検査ビットは「3 つの円それぞれに入る 1 の個数が偶数」になるよう決めます。
1 ビット化けると、その円のパリティが崩れる。崩れた円の組合せが 7 つの領域で全部違うので、 どのビットが壊れたか一意に分かり、反転して直せます。円をクリックしてビットを壊してみてください。
パリティ検査(受信側の計算)
送信した符号語
—
受信した符号語
—
訂正後・取り出したデータ
—
いま何が起きている?
ここが通信工学の核心
- 検査ビットを足すと、受信側は 送り直しを頼まずに誤りを訂正できる(前方誤り訂正)。
- 崩れた検査の組合せ=シンドロームが、壊れたビットの「住所」を指す。
- ハミング (7,4) が直せるのは 1 ビットまで。2 ビット以上はより強い符号(リード・ソロモン等)が必要。
- QR コード・CD・通信・メモリ(ECC)── あらゆる場所で誤り訂正符号が裏方として働いています。