JA
マイツール

ハミング符号の計算(エンコード・デコード・誤り訂正)

データビットをハミング符号((7,4)、(15,11)、任意の長さ、偶奇パリティ、SECDED)でエンコードするか、受信語のシンドロームと訂正結果を求めます。

動作
符号語
0110011
ハミング(7,4)、偶数パリティ
パリティビット数
3
符号化率
57.14%
データビット ÷ 全ビット

位置は左から1番で数えます。パリティビットは1・2・4・8…の位置にあり、パリティビットPは、番号にそのビットが立っているすべての位置を検査します。

パリティ検査
パリティビット位置検査する位置その位置のビット検査
P111, 3, 5, 70101成立
P222, 3, 6, 71111成立
P444, 5, 6, 70011成立
ビットの位置
位置2進数役割ビット
1001P10
2010P21
3011D11
4100P40
5101D20
6110D31
7111D41
マイツール →
広告

ハミング符号は、データのブロックに数個のパリティビットを加え、反転したビット1つを見つけて訂正できるようにします。誤り訂正符号の定番の例で、今もECCメモリ(SECDEDの派生形)で使われています。この計算ツールは、データビットを符号語にエンコードしたり、受信した語を検査したりします。シンドロームを計算し、どのビットが誤っているかを示し、訂正してデータを取り出します。各パリティビットがどの位置を検査するかを示す表も表示します。

使い方

  1. エンコードか検査かを選びます。
  2. データビット(エンコード)または受信した語(検査)を入力します。
  3. 符号のサイズを選ぶか長さに合わせ、偶数・奇数パリティを選びます。
  4. 2ビット誤りまで検出したい場合は、SECDED用の全体パリティビットを追加します。

計算式

位置2ᵗのパリティビット = t番目のビットが立っているすべての位置のXOR · シンドローム = 1のビットの位置すべてのXOR = 誤りの位置

パリティビットがr個あると、符号語はn = 2ʳ − 1個の位置を持ち、n − r個のデータビットを運びます。(7,4)、(15,11)、(31,26)がそうです。ほかの長さでは、2ʳ ≥ k + r + 1を満たす最小のrを使います。位置は左から1番で数え、データビットは2のべき乗でない位置を順に埋めます。奇数パリティではすべての検査が反転します。SECDEDは、語全体のパリティを持つビットを1つ加えます。シンドロームが0でなく全体パリティが合わなければ訂正可能な1ビット誤り、シンドロームが0でなく全体パリティが合っていれば誤りは2つです。

計算例

1011をハミング(7,4)でエンコードすると、データは3・5・6・7番の位置に入り、P1 = 1⊕0⊕1 = 0、P2 = 1⊕1⊕1 = 1、P4 = 0⊕1⊕1 = 0なので、0110011になります。5番のビットが反転して(0110111)、1のビットが2・3・5・6・7番の位置にあると、2⊕3⊕5⊕6⊕7 = 5となり、5番のビットを訂正してデータ1011を復元します。

よくある質問

ハミング符号で2つの誤りを訂正できますか?

いいえ。基本の符号が訂正できるのは1つの誤りで、誤りが2つあるとシンドロームは間違った位置を指します。拡張(SECDED)符号はビットを1つ加えて、少なくとも2つの誤りは検出できるようにします。

パリティビットが1・2・4・8番の位置にあるのはなぜですか?

それらの位置は2進数で1が1つだけなので、各パリティビットが位置番号の異なる2進の桁を検査します。不成立の検査を足し合わせると、誤りの位置が2進数で現れます。

偶数パリティと奇数パリティのどちらを使いますか?

どちらも同じように動作し、奇数パリティはすべての検査を反転するだけです。教科書では通常、偶数パリティを使います。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). ハミング符号の計算(エンコード・デコード・誤り訂正). https://kakao.mobile/ja/tools/hamming-code-calculator/

MLA

“ハミング符号の計算(エンコード・デコード・誤り訂正).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/hamming-code-calculator/.

広告