誤り制御について 4400075 田原慎一朗 誤り制御とは? • データ転送の際,データが正しく相手に届くと は限らない。 • 正しく送信されたか,チェックする必要がある。 • このチェック機能を誤り制御という。 誤り制御の種類 • パリティチェック,ハミングコード,CRCなど, いくつか方法が見つけられている。 • 自動修正できるものや,連続した誤りを見る けられるものもある。 • ここでは,最も簡単で,よく使われているパリ ティチェックの例をあげてみる。 1.パリティチェック • 伝送するビット列に,ある規則に従ったパリ ティビットを加えることにより,データを受け とった人が,そのデータにエラーがないかを 調べることができる。 • 限界はあるが,簡単であるので多用される。 • 2つの種類と3つの方式がある。 2つの種類 • 偶数パリティ・・・伝送するデータのビット列に ある”1”の数が偶数になるように調整する。 • 奇数パリティ・・・伝送するデータのビット列に ある”1”の数が奇数になるように調整する。 偶数パリティの場合 • “1000101”という列を送りたい。 伝送したいビット列 → “1”が3つある ↓ 10001011 パリティビット “1”の数を偶数にしたい ↓ “1”をもう一つ足せばいい 偶数パリティの場合 • “1010101”という列を送りたい。 伝送したいビット列 → “1”が4つある ↓ 1010101 0 パリティビット “1”の数は偶数でOK! ↓ “1”を足す必要はない 奇数パリティの場合 • “1000110”という列を送りたい。 伝送したいビット列 → “1”が3つある ↓ 1000110 0 パリティビット “1”の数は奇数でOK! ↓ “1”を足す必要はない 奇数パリティの場合 • “1010101”という列を送りたい。 伝送したいビット列 → “1”が4つある ↓ 1010101 1 パリティビット “1”の数を奇数にしたい ↓ “1”を足せばいい 3つの方式 • 垂直パリティ・・・各符号(文字)に一つのパリ ティをつける。 • 水平パリティ・・・複数の符号をまとめたブロッ クに1つのパリティをつける。ベーシック手順 で用いられる。 • 水平垂直パリティ・・・上の2つを足したもの 水平パリティの場合 • 文字列 ”STAR” を ASCII コード で変換し, 水平・奇数パリティビットをつける。 コード化 S T A R 水平パリティ ビット 11 0 1 0 0 1 1 01 0 1 0 1 0 0 11 0 0 0 0 0 1 01 0 1 0 0 1 0 →”1”が5つ →”1”が3つ →”1”が5つ →”1”が3つ 奇数にする 垂直パリティの場合 • 文字列 ”STAR” を ASCII コード で変換し, 垂直方向に奇数パリティビットをつける。 コード化 S T A R 1010011 1010100 1000001 1010010 垂直パリティビット 1101011 1の数 5131133 奇数に する 水平垂直パリティ • 文字列 ”STAR” を ASCII コード で変換し, 水平垂直にパリティビットをつけて送る。 コード化 S T A R 11 0 1 0 0 1 1 01 0 1 0 1 0 0 11 0 0 0 0 0 1 01 0 1 0 0 1 0 11 1 0 1 0 1 1 水平パリティ 5 1 3 1 1 3 3 ビット 1の数 →”1”が5つ →”1”が3つ →”1”が3つ →”1”が3つ ←垂直パリティビット
© Copyright 2024 ExpyDoc