> hamming | (7,4) | ecc <
// ハミングコード – 信頼性の高いデータ伝送のための誤り訂正コード
誤り訂正
データ内の 1 ビット誤りを自動的に検出して訂正します。
二重誤りの検出
各ブロック内の 2 ビット誤りを検出できます(訂正はできません)。
オーバーヘッドが小さい
4 ビットのデータに対してパリティビットはわずか 3 ビット(効率 75%)。
>> 技術情報
ハミングコードの仕組み:
Hamming(7,4) コードは、4 ビットのデータごとに 3 ビットのパリティビットを追加し、7 ビット長のブロックを生成します。パリティビットは 2 のべき乗の位置(1, 2, 4)に配置されます。誤りが発生すると、シンドローム(パリティチェックの結果)が誤りビットの位置を直接示します。
Hamming(7,4) の構造:
データ: 1011 (4 ビット) 位置: P1 P2 D1 P3 D2 D3 D4 Hamming: 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
ハミングコードを使う理由:
- >メモリエラー訂正
- >衛星通信
- >データストレージシステム
- >ネットワーク伝送
- >RAID アレイ
>> よくある質問
ハミングコードとは?
ハミングコードは、リチャード・ハミングが 1950 年に考案した誤り訂正コードです。データにパリティビットを追加し、1 ビット誤りを自動的に検出・訂正できるようにします。
(7,4) はどういう意味ですか?
Hamming(7,4) とは、合計 7 ビットのうち 4 ビットがデータ、3 ビットがパリティビットであることを意味します。7 ビットブロック内の任意の 1 ビット誤りを訂正できます。他のバリエーションとして (15,11) や (31,26) などがあります。
誤り訂正はどのように動作しますか?
受信側ではパリティビットが再計算されます。一致しない場合、シンドローム(差分)がどのビットが誤っているかを直接示します。そのビットを反転することで誤りを修正します。
ハミングコードと他の ECC の違いは?
ハミングコードは、1 ビット誤りに対してシンプルで効率的です。Reed–Solomon のようなより複雑なコードは複数の誤りを訂正できますが、オーバーヘッドが大きくなります。ハミングコードは低ノイズの通信路に最適です।