ハミング符号計算機
四つのデータビットからハミング (7,4) 符号を生成し、伝送中の単一ビット誤りを検出・訂正します。
ハミング (7,4) 符号
偶数パリティで四つのデータビットを符号化します。任意で受信した七ビットの符号も検査できます。
ハミング符号計算機について
ハミング符号は数学者リチャード・ハミングが提案した誤り訂正符号の一種です。データ語の適切な位置にパリティビットを追加し、受信側が一つの変化したビットを特定して修復できるようにします。ここで使うハミング (7,4) は四ビットのデータを七ビットの符号語に変換します。デジタル通信、コンピューターのメモリ、記憶装置、組み込み電子機器で使われる誤り制御の原理を簡潔に示します。
七つの位置には一から七の番号を付けます。パリティビットは二の累乗に当たる一、二、四番目に置き、元のデータは三、五、六、七番目に置きます。各パリティビットは異なる、互いに重複する位置の組を検査します。この計算機は偶数パリティを使い、パリティビットを含めた各組の一の数を偶数にします。
データビット d1、d2、d3、d4 に対し、p1 は d1、d2、d4、p2 は d1、d3、d4、p4 は d2、d3、d4 を検査します。配置順は p1, p2, d1, p4, d2, d3, d4 です。そのため 1011 を符号化すると 0110011 になります。各組の一を数えることで確認できます。
七ビットの符号を受信すると、三つのパリティ検査を再実行します。不一致の検査結果が三ビットのシンドロームとなり、その数値が誤り位置を示します。シンドロームが一なら先頭、五なら五番目、ゼロなら単一ビット誤りなしです。特定されたビットを反転すると元の有効な符号語を復元できます。任意の受信符号欄では、この過程と訂正後の列を確認できます。
標準のハミング (7,4) は一ビット誤りの訂正を保証しますが、すべての二ビット誤りを確実に区別できるわけではありません。拡張ハミング符号は全体パリティを加え、単一誤り訂正と二重誤り検出を可能にします。この計算機は古典的な七ビット版と偶数パリティに限定しています。位置を明確にするため、空白、接頭辞、区切り文字を入れず、ゼロと一だけを入力してください。
ハミング符号の例
| データまたは受信符号 | 結果 | 説明 |
|---|---|---|
| データ 1011 | 0110011 | パリティビットは 0、1、0 です。 |
| データ 1101 | 1010101 | パリティビットは 1、0、0 です。 |
| 受信符号 0010101 | 位置 1 に誤り | 先頭ビットを反転すると 1010101 に戻ります。 |
ハミング符号計算機の使い方
- 空白や区切りなしで、二進数のデータをちょうど四ビット入力します。
- 必要なら受信した七ビットの符号語を入力し、伝送誤りを検査します。
- 「ハミング符号を計算」で偶数パリティの符号語を生成します。
- 受信符号を入力した場合はシンドロームと訂正結果を確認します。
ハミング符号のよくある質問
ハミング (7,4) は何を意味しますか?
符号語は合計七ビットで、元のデータ四ビットを含みます。残る三ビットは誤り訂正用のパリティ情報です。
どのパリティ方式を使いますか?
三つの組すべてで偶数パリティを使います。有効な組では一のビット数が偶数になります。
シンドロームはどう誤りを特定しますか?
不一致の各検査がシンドロームの二進数の桁に対応します。その合計値が、一から数えた単一誤りビットの位置です。
ハミング (7,4) で二つの誤りを訂正できますか?
いいえ。一符号語につき一ビットの変化を訂正する設計です。二ビット変化すると誤った位置を示すことがあり、安全に訂正できるとは扱えません。
ハミング符号はどこで使われますか?
符号理論の教育や、メモリ、通信、記憶装置の設計で使われます。実際のシステムでは信頼性要件に応じて拡張符号やより強力な符号も使います。