技能一覧 › 大学数学 情報理論・符号理論

ハミング符号とシンドローム復号

の 0 でないベクトルをすべて列に並べた検査行列から、符号長 ・次元 ・最小距離 3 のハミング符号を作れる。受信語のシンドローム から誤りの位置を求めて 1 個の誤りを訂正できる。また、完全符号であることを使える

前提

この技能までの道筋(51 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 三角形の角の大きさ (算数 平面図形)
  2. 対頂角と平行線の同位角・錯角 (中学数学 平面図形)
  3. 三角形の外角と角の組み合わせ (中学数学 平面図形)
  4. 小数の四則計算 (算数 計算と数のきまり)
  5. 分数のたし算・ひき算 (算数 計算と数のきまり)
  6. 分数のかけ算・わり算 (算数 計算と数のきまり)
  7. 小数と分数のまじった計算 (算数 計算と数のきまり)
  8. 逆算(□ を求める) (算数 計算と数のきまり)
  9. 正負の数の加法・減法 (中学数学 数と式)
  10. 四則の混じった計算の順序 (算数 計算と数のきまり)
  11. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  12. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  13. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  14. 1 次方程式の解き方 (中学数学 方程式)
  15. 二等辺三角形の角 (中学数学 平面図形)
  16. 平行四辺形と特別な四角形の性質 (中学数学 平面図形)
  17. 三角形・四角形の面積 (算数 平面図形)
  18. 約数の見つけ方 (算数 整数の性質)
  19. 素因数分解と約数の個数 (算数 整数の性質)
  20. 平方根の意味と根号の簡単化 (中学数学 数と式)
  21. 三平方の定理 (中学数学 相似と三平方の定理)
  22. 乗法公式による展開 (中学数学 数と式)
  23. 折り返した図形の角と長さ (中学数学 平面図形)
  24. 三平方の定理と平面図形 (中学数学 相似と三平方の定理)
  25. ベクトルの演算と成分 (数学C ベクトル)
  26. 行列の和・積と 2 次の逆行列 (大学数学 線形代数)
  27. 掃き出し法と連立 1 次方程式 (大学数学 線形代数)
  28. 行列の階数と解の存在 (大学数学 線形代数)
  29. ベクトル空間・一次独立・基底・次元 (大学数学 線形代数)
  30. 因数分解 (中学数学 数と式)
  31. 文字式で表した整数の性質 (中学数学 数と式)
  32. 余りによる整数の分類 (数学A 整数の性質)
  33. 樹形図で数え上げる (算数 場合の数)
  34. 積の法則と和の法則 (算数 場合の数)
  35. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  36. 合同式 (数学A 整数の性質)
  37. 線形符号と生成行列 (大学数学 情報理論・符号理論)
  38. 円の周の長さと面積 (算数 平面図形)
  39. おうぎ形の弧の長さと面積 (算数 平面図形)
  40. 弧の長さからおうぎ形の中心角と面積を求める (中学数学 平面図形)
  41. 特別な直角三角形の辺の比 (中学数学 相似と三平方の定理)
  42. 弧度法と単位円による三角関数 (数学II 三角関数)
  43. 加法定理と 2 倍角・半角・積和の公式 (数学II 三角関数)
  44. 線形変換と行列 (大学数学 線形代数)
  45. 核と像と次元定理 (大学数学 線形代数)
  46. 検査行列と最小距離 (大学数学 情報理論・符号理論)
  47. 順列・円順列・重複順列 (数学A 場合の数と確率)
  48. 組合せ (数学A 場合の数と確率)
  49. 確率の定義と和事象・余事象 (数学A 場合の数と確率)
  50. 独立な試行と反復試行 (数学A 場合の数と確率)
  51. 誤り訂正能力と復号の成功確率 (大学数学 情報理論・符号理論)

説明

ハミング符号は、1 個の誤りを必ず訂正できる線形符号の代表例です。 の 0 でないベクトルをすべて列に並べた検査行列 から作り、符号長は 、次元は 、最小距離は になります。受信語 のシンドローム を計算すると、誤りがあればその位置がわかり、その成分を反転すれば訂正できます。さらに、ハミング符号は空間 を半径 1 の球で隙間も重なりもなく埋めつくす「完全符号」です。

なぜそうしてよいのか

以下、計算はすべて (2 で割った余り、つまり )で行います。 は 行 列の行列で、列は の 0 でないベクトル 個を 1 回ずつ並べたものです。列の中に単位ベクトル 個がすべて含まれるので となり、次元は です。最小距離を調べます。 では、1 列だけで一次従属になるのはその列が のとき、2 列で一次従属になるのは 2 列が等しいとき()に限ります。 の列はどれも 0 でなく互いに異なるので、どの 2 列も一次独立です。一方、たとえば はどれも列にあり、和が なので一次従属な 3 列が存在します( のとき)。よって最小距離は で、 個の誤りを訂正できます。

訂正の仕組みは次の通りです。送った符号語を 、誤りのパターンを とすると受信語は で、 より となります。つまりシンドロームは送った符号語によらず、誤りだけで決まります。誤りがなければ 、第 成分だけに誤りがあれば は第 成分だけが 1 なので、シンドロームは の第 列そのものです。列はすべて異なるので、シンドロームと一致する列を探せば誤りの位置 が 1 つに決まります。特に第 列を「 の 2 進表示」にしておくと、シンドロームを 2 進数として読むだけで位置がわかります。

完全符号であることは数え上げでわかります。符号語は 個、各符号語から距離 1 以下の語は自分自身と 1 成分だけ変えた 個で計 個です。 よりこれらの球は互いに重ならず、合計 個で 全体と一致します。したがってどんな受信語もちょうど 1 つの符号語から距離 1 以下にあり、0 でないシンドロームは必ずどれかの列に一致します(2 個以上の誤りが起きた場合は、別の符号語へ誤って訂正されます)。

手順

  1. 検査行列 を確認する: 行 列で、列は の 0 でないベクトルを 1 回ずつ並べたもの。符号長 、次元 、最小距離 。

  2. 受信語 のシンドローム を で計算する(各行について、その行の 1 がある位置の を足して 2 で割った余りをとる)。

  3. なら誤りなしと判定し、 をそのまま符号語とする。

  4. なら、 と一致する の列を探し、その列番号 を誤りの位置とする(第 列が の 2 進表示なら、 を 2 進数として読めば )。

  5. の第 成分を反転()して訂正し、 を確かめる。

例題

のハミング符号を、第 列が の 2 進表示(上から の位)である検査行列 で定める。ある符号語を送ったところ、高々 1 個の誤りが起きて受信語 を得た。誤りが起きた位置(何番目の成分か)を求めよ。

例題の解答

手順 1: は の 0 でない 7 個のベクトルを列に並べたもので、、、最小距離 3 のハミング符号である。よって 1 個の誤りは訂正できる。

手順 2:シンドローム を計算する。
第 1 行(位置 4,5,6,7):。
第 2 行(位置 2,3,6,7):。
第 3 行(位置 1,3,5,7):。
よって 。

手順 3: なので誤りがある。

手順 4: は の第 6 列と一致する。2 進数として読んでも 。よって誤りの位置は 6 番目。

手順 5:第 6 成分を反転すると 。確認:第 1 行 、第 2 行 、第 3 行 で となり、符号語である。

答え:6 番目。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題