第2章「符号化と伝送」-04

ネットワークスペシャリスト
nekonisi
nekonisi
2021/12/02の勉強

前回

第2章「符号化と伝送」-03
nekonisi2021/11/28の勉強前回誤り制御データの伝送を行う際に、ノイズ等で破損する場合がある。データの再送を促したり、その場でデータを回復するための処理として、誤り制御がある。誤り...

前回に引き続き誤り制御に関しての学習内容をまとめていく。

CRC

CRC: Cyclic Redundancy Check(巡回冗長検査)
送信するデータに生成多項式を適用して、誤り検出用の冗長データを添付する方式。
方法としては参照リンク参照。ムズかったので、簡単に流れだけ記載する。

符号の求め方

  1. nビットの「符号」を求めるために、左端及び右端のビットが 1 である ( n + 1) ビットのビットパターン (以下,マスクという) を定める。
  2. ビット列の左端から調べ,最初に値が 1 であるビットの位置に対して、排他的論理和を求めていく
  3. すべてが0になったときの、右端のnビットを「符号」とする。

データのチェック

  1. 送信データの右端に「符号」を追加する
  2. 「符号の求め方」の2と同じ手順で、計算をしていく
  3. 右端のビット列が0になれば誤りなし、0にならなければ誤りあり と判断する。
    参照: 基本情報でわかる CRC 「具体例を見て体験すれば仕組みがわかる
nekonisi
nekonisi
あと30回くらい説明よめばわかる気がする。

ハミング符号

情報ビットに対して検査ビットを付加することで、2ビットまでの誤り検出と1ビットまでの自動訂正機能を持つ、誤り制御方式。

自動訂正の仕組みを説明する際に必要なXOR演算の特徴について触れておく。

XORの特性について

XOR演算は、復元が可能である。

value1, 2の値演算の結果がある。

value11011
value20110
XOR1101
AND0010

value2が失われた場合

value11011
value2
XOR1101
AND0010

ANDの結果から、value2を復元することが不可能であるが、
XORの結果からは復元が可能である。

符号化

下記のデータを送信する場合について考えていく

1001
  1. 各ビットに3桁のアドレス情報を付与する。
1011
100011010001
  1. 「1」となっているビットのアドレスについて、XOR演算を行う
100
001
010
XOR111

この、111が「符号」となるので、データ送信時には符号を付与した

1011111

を送信する。

エラー検知方法

データが送信された場合のエラー検知方法を考えていく

1011111

アドレス情報を付与すると次のようになる

1011111
100011010001

1となっている部分について、XOR演算を行う

001
010
100
XOR111

この結果を、符号で更にXOR演算を行う

111
111
XOR000

誤りが存在する場合には、演算結果が000にならない。

誤り訂正方法

次に、誤りがあった場合の訂正方法について説明を行う
※ 青色部分が1から0になっている。

1010111

エラー検知時と同様にXOR演算を行う

1010111
100011010001

1のアドレスと、符号でXOR演算を行う

100
010
111
XOR001

ここで、XOR演算の結果が「000」ではなく「001」となっている。
この結果を見れば、「送信データに誤りがあること」と「誤りのあるデータのアドレスが001」であることがわかる。

nekonisi
nekonisi

わかるけどわからない。

参考:ハミング符号の大枠を掴もう 誤り検出・訂正基礎講座 第2回

 

以上で「符号化と伝送」については終了。
次回から3章の勉強をしていく。 うーん。なんとなくは理解した気がする。

コメント

タイトルとURLをコピーしました