情報源符号「00」にパリティ検査符号を加え、入力が0, 1のどちらでも確率で変化し、消失が起こらない通信路を通すと、1回の送信で起こることは下の表のようになる。
変化の回数 | 受け取るもの | 確率 | 判定 | やること |
0 | 000 |
|
変化なし | 00を復元 (正しい) |
1 | 001, 010, 100 |
|
変化あり | 再送信を要求 |
2 | 110, 101, 011 |
|
変化なし | 11, 10, 01を復元 |
3 | 111 |
|
変化あり | 再送信を要求 |
「ブロック単位で考えて」正しい結果を復元する確率を, 再送信になる確率を, 誤った結果を復元する確率をとすると、
・・・①
・・・②
となる ( は「1回変化する確率」+「3回変化する確率」だが、求める必要はない)。最終的に「ブロックとして誤った値を復元してしまう確率」は、反復符号の場合とまったく同様に
であり、, , の和が1であることから
と書くこともできる。
誤り率は「1ビットの符号が誤ったものに復元される確率」で、この値そのものではない。
ブロックとして誤った値が復元されるケースは11, 10, 01の3通りで、先頭の1ビットだけに注目すると、誤ったものになるのは | 11, 10になったときの2通りだけである。つまり、誤り率は次のようになる。
誤り率 = 「ブロックとして誤った値を復元してしまう確率」 ×
・・・④
練習問題1
上記のケースでの誤り率を の式で記述せよ。
※ ④式に③式を入れ、さらに①、②式を使う。
練習問題2
練習問題1の結果から、 の場合の誤り率を求めよ (四捨五入して小数第4位まで)。また、それが「検査符号を使わずにそのまま送った場合の誤り率」に対して何%の値であるかを求めよ。
※ 0.01に対するパーセンテージ → 「0.01で割って100倍する」→「100倍して100倍する」→「10000倍する(桁を4つ上げる)」
3倍の反復符号では、情報源符号1ビットに対して検査符号のビット数は2ビットだった。
のパリティ検査符号では、情報源符号2ビットに対して検査符号を1ビット使う。
つまり、前者に対して検査符号の割合は1/4で済む。
が大きいときはパリティ検査符号では反復符号ほど誤り率を下げることはできないが、送る符号のビット数はそれほど膨らませずに済む。
が小さくなると、パリティ検査符号のほうが反復符号よりも誤り率を下げられるようになる。
練習問題3
のパリティ検査符号について、上記と同じ通信路を通した場合の誤り率を の式で記述せよ。
※ 情報源符号が「000」の場合の結果は以下のようなグループに分かれる。
変化の回数 | 受け取るもの | 確率 | 判定 | やること |
0 | 0000 |
|
変化なし | 000を復元 (正しい) |
1 | 0001,... (4通り) |
|
変化あり | 再送信を要求 |
2 | 0011,... (6通り) |
|
変化なし | 001,...を復元 |
3 | 0111,... (4通り) |
|
変化あり | 再送信を要求 |
4 | 1111 |
|
変化なし | 111を復元 |
:変化が全く起こらない確率
:変化が奇数回起こる確率
:変化が2回起こる確率
:変化が4回起こる確率
とすると、「最終的にブロック中に2つ誤りがある確率」は
「最終的にブロック中の符号がすべて誤りである確率」は
となる。先頭のビットに注目すると、前者では4桁中2桁が変化しているはずなので、実際にそのビットが変化する確率は⑤の1/2になる。後者のケースになった場合は確実に変化する。結局、誤り率は
で求められる。
練習問題4
練習問題3の結果から、 の場合の誤り率を求めよ (四捨五入して小数第4位まで。スマホの電卓機能などを使ってもよい)。また、それが「検査符号を使わずにそのまま送った場合の誤り率」に対して何%の値であるかを求めよ。
のパリティ検査符号では、情報源符号2ビットに対して検査符号を1ビット使う。
のパリティ検査符号では、情報源符号3ビットに対して検査符号を1ビット使う。
つまり、前者に対して検査符号を2/3しか使っていない。
その分だけ誤り率が大きくなるはず。
- 水平垂直パリティ検査符号
普通のパリティ検査符号では、ブロック中で変化がおきたかどうかを調べることができるが、ピンポイントでどこが変化したかを知ることはできない。しかし、以下のようにすれば変化が起きた場所を特定し、誤り訂正を行うことができる。
( の場合)
情報源 (送信側)でやること
- 情報源符号を3桁×3の形に並べる
「001101111...」なら
- それぞれの行の右と列の下にパリティ検査符号を追加する (右下は「その上の3つ」「その左の3つ」のどちらで作っても同じ値になる)
- 1行ずつ順に送信する
この場合なら送るのは「0011 1010 1111 0110」
あて先(受信側)では、受け取ったものを2と同様の形に並べ、縦と横について1の数をカウントし、すべて偶数になっているかどうかをチェックする。
もし通信路で図のような変化が起こったとすると、左の列と上から2番目の行で1の数が奇数個になる。
すると、変化した場所が「左から1番目、上から2番目」であることを特定でき、それが本当は1だったことがわかる。
そのため、再送信を要求しなくても情報源符号を復元できる。
もっとも、これはひとかたまり(ビット) の中で1回だけ変化が起きたときにしか使えない。
例えば上のケースで図の2箇所に変化がおきると、1行目と3行目、1列目と3列目で1の数が奇数になる。
この場合、あて先側では変化が起こった場所が左図の2箇所なのか、それとも右図の2箇所なのかを知る手段がない。
- 練習問題5
以下の水平垂直パリティ検査符号追加済みの符号 () を受け取った。この情報源符号を記述せよ。ただし、変化はいずれも最大1回しか起こっていないものとする。
- 01010 00110 10010 11101 00011
- 00101 01100 11011 01110 11110
- 11110 01010 10100 00110 00010
|