二元体 (演算は を法とする)上で、検査行列
で定まる符号長 のハミング符号 を考える。 の第 列は、 を 2 進法で表したときの各桁を上から の位・ の位・ の位の順に並べたものである。
ある符号語を送信したところ、ちょうど か所のビットだけが誤って
が受信された。誤りが起きた位置(左から数えて第何成分か)を求めよ。
の 0 でないベクトルをすべて列に並べた検査行列から、符号長 ・次元 ・最小距離 3 のハミング符号を作れる。受信語のシンドローム から誤りの位置を求めて 1 個の誤りを訂正できる。また、完全符号であることを使える
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ハミング符号は、1 個の誤りを必ず訂正できる線形符号の代表例です。 の 0 でないベクトルをすべて列に並べた検査行列 から作り、符号長は 、次元は 、最小距離は になります。受信語 のシンドローム を計算すると、誤りがあればその位置がわかり、その成分を反転すれば訂正できます。さらに、ハミング符号は空間 を半径 1 の球で隙間も重なりもなく埋めつくす「完全符号」です。
以下、計算はすべて (2 で割った余り、つまり )で行います。 は 行 列の行列で、列は の 0 でないベクトル 個を 1 回ずつ並べたものです。列の中に単位ベクトル 個がすべて含まれるので となり、次元は です。最小距離を調べます。 では、1 列だけで一次従属になるのはその列が のとき、2 列で一次従属になるのは 2 列が等しいとき()に限ります。 の列はどれも 0 でなく互いに異なるので、どの 2 列も一次独立です。一方、たとえば はどれも列にあり、和が なので一次従属な 3 列が存在します( のとき)。よって最小距離は で、 個の誤りを訂正できます。
訂正の仕組みは次の通りです。送った符号語を 、誤りのパターンを とすると受信語は で、 より となります。つまりシンドロームは送った符号語によらず、誤りだけで決まります。誤りがなければ 、第 成分だけに誤りがあれば は第 成分だけが 1 なので、シンドロームは の第 列そのものです。列はすべて異なるので、シンドロームと一致する列を探せば誤りの位置 が 1 つに決まります。特に第 列を「 の 2 進表示」にしておくと、シンドロームを 2 進数として読むだけで位置がわかります。
完全符号であることは数え上げでわかります。符号語は 個、各符号語から距離 1 以下の語は自分自身と 1 成分だけ変えた 個で計 個です。 よりこれらの球は互いに重ならず、合計 個で 全体と一致します。したがってどんな受信語もちょうど 1 つの符号語から距離 1 以下にあり、0 でないシンドロームは必ずどれかの列に一致します(2 個以上の誤りが起きた場合は、別の符号語へ誤って訂正されます)。
検査行列 を確認する: 行 列で、列は の 0 でないベクトルを 1 回ずつ並べたもの。符号長 、次元 、最小距離 。
受信語 のシンドローム を で計算する(各行について、その行の 1 がある位置の を足して 2 で割った余りをとる)。
なら誤りなしと判定し、 をそのまま符号語とする。
なら、 と一致する の列を探し、その列番号 を誤りの位置とする(第 列が の 2 進表示なら、 を 2 進数として読めば )。
の第 成分を反転()して訂正し、 を確かめる。
のハミング符号を、第 列が の 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 番目。
答え:
シンドロームを普通の整数のまま扱ってしまう誤り。例では第 2 行が となるが、これを のまま扱うのではなく、 では とする。正しくは各成分を 2 で割った余りにする。
シンドロームを 2 進数として読むとき、ビットの順序を逆にしてしまう誤り。 を下から読んで とするのは誤り。正しくは の列の作り方(例では上から の位)に合わせて 。迷ったら の列と直接照合する。
次元を と取り違える誤り。 のとき とするのは誤りで、正しくは (情報記号 4 個、検査記号 3 個)。
2 個の誤りも訂正(または検出して訂正を控えること)ができると思ってしまう誤り。完全符号なので 2 個の誤りでもシンドロームは 0 でないどれかの列に一致し、例えば位置 1 と 2 の誤りではシンドロームが第 1 列 第 2 列 第 3 列 となって位置 3 を誤って反転する。正しくは、確実に訂正できるのは 1 個以下の誤りに限られる。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
二元体 (演算は を法とする)上で、検査行列
で定まる符号長 のハミング符号 を考える。 の第 列は、 を 2 進法で表したときの各桁を上から の位・ の位・ の位の順に並べたものである。
ある符号語を送信したところ、ちょうど か所のビットだけが誤って
が受信された。誤りが起きた位置(左から数えて第何成分か)を求めよ。
二元体 上で、 行列
を検査行列とする符号長 のハミング符号 を考える。 の第 列 は、上から順に を 2 進数で表したときの の位の数字を並べたものである。
ある符号語 を送信したところ、通信路で高々 か所の成分が反転し、受信語
を受け取った。シンドローム を用いて誤りを訂正し、送信された符号語 を の形で求めよ。
二元体 上で、検査行列
で定まる符号長 のハミング符号 を考える。 の第 列 は、上から読むと を 2 進法で表した 3 桁の数になっている。
ある符号語を送信したところ、ちょうど 1 か所のビットが反転して
を受信した。シンドローム を計算して、誤りが生じた位置(左から何番目の成分か)を求めよ。
二元体 上で、生成多項式
で定まる符号長 の巡回符号 を考える。すなわち、 は の次数 以下の多項式のうち で割り切れるものの係数ベクトル全体である。
の符号語を つ選び、各ビットが互いに独立に確率 で反転する二元対称通信路で送る。受信側は、受信語とのハミング距離が最小となる符号語に復号する。復号結果が送信した符号語に一致する確率を求めよ。
二元体 上で、生成多項式
で定まる符号長 の巡回符号 を考える。すなわち、符号語 を多項式 と同一視し、 とする。なお、 は 上の原始多項式である(既約であり、その根 は 個の元 がすべて異なる、 の でない元すべてとなる)。
この符号を誤り検出のためだけに用いる。送信した符号語 に誤りパターン が加わって が受信されたとき、 ならば「誤りなし」と判定し、 ならば「誤りあり」と判定する。 で となるとき、誤りは検出されない。
ハミング重み( である成分の個数)が 以上 以下の誤りパターン のうち、検出されないものの個数を求めよ。
二元体 上で、生成多項式 で定まる符号長 の巡回符号 を考える。すなわち、 は の次数 以下の多項式のうち で割り切れるもの全体(係数の列を長さ のベクトルとみなす)である。なお、 は 上の原始多項式であり、 を割り切る。
の符号語を、ビット反転確率が の 2 元対称通信路で送る。各ビットの反転は互いに独立に起こるものとする。受信語は、シンドロームを計算し、そのシンドロームをもつベクトルのうちハミング重みが最小のもの(コセットリーダー)を誤りとみなして訂正する方法で復号する。
復号した符号語が送信した符号語と一致する確率を の式で求めよ。
3 元体 (演算は を法とする)上で考える。 の でないベクトル(列ベクトル)のうち、上から見て最初に現れる でない成分が であるものは全部で 個ある。これら 個のベクトルをすべて、ある順序で列として並べた 行列を とする。
を生成行列とする符号長 の線形符号を
とし、その双対符号を
とする( は成分ごとの積の和を を法として計算したもの)。ハミング重みは でない成分の個数、線形符号の最小距離は でない符号語のハミング重みの最小値とする。
の次元 、 の最小距離 、 の最小距離 を求め、組 の形で答えよ。なお、答えは の列の並べ方によらない。
二元体 上で、生成多項式
で定まる符号長 の巡回符号 を考える。すなわち、 は の次数 以下の多項式のうち で割り切れるもの全体であり、多項式 を語 と同一視する。また、 を における の根とする( の位数は である)。
符号語 を送信し、誤りパターン (次数 以下)が加わって を受信したとする。復号器は 、 を計算し、次の規則で動作する。
ハミング重み( でない係数の個数)が 以上 以下の誤りパターン のうち、復号器が送信した符号語 と異なる語を出力してしまうものの個数を求めよ。