2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

データの誤り制御

Last updated at Posted at 2022-08-12

データは1と0の波形からなっている

はっきりした1と0のデータが流れているわけではない。
信号の波形でこの範囲の値は1、0と判断されている。
これが乱れることがある。

  • 伝送距離が伸びる
  • 横から別の電気的な干渉

この波形の乱れが起きることをデータの誤りと言う。
データの誤りを防ぐ方法がある。

  • パリティチェック
  • CRC(巡回冗長検査)

しかし100%確実に防ぐ手段はありません

パリティチェック

ビット列にパリティビットと呼ばれる。
検査用のビットを付加させることでデータの誤りを検出する。
検査ようのビットを付加させる方法が2つある。

偶数パリティ

ビット列の中の1の数が偶数になるようにする。

基数パリティ

ビット列の中の1の数が基数になるようにする。

Aの文字コードを偶数パリティで付加しておくるとする。
そうすると1が奇数になってデータの誤りが検出される仕組みだ。

パリティチェックの注意点

  • 1ビットの誤りを検出するだけ
  • 偶数個ビット誤りは検出できない。
  • どのビットが誤りかもわからない。

水平垂直パリティチェック

データの誤りが1ビットの場合のみ誤りを特定できる。

特定方法は

データ列を縦に並べる。
データ列の1ビットごとに偶数の場合は偶数に合わせて1か0を付加させる。
これを水平パリティ
データ列の最後(下)に偶数の場合は偶数にして1か0を付加させる。
これを垂直パリティ
これを組み合わせて使うのが水平垂直パリティと言う。

注意点

2ビット以上の誤りは誤りは検出できるが、誤り位置の特定はできない。

CRC(巡回冗長検査)

特徴

  • データ誤り訂正は行えない
  • 連続したビットの誤り(バースト誤り)を検出する
  • 複数ビットの誤りを検出する

検出方法

ビット列を特定の式(生成多項式と呼ばれる)で割る
その割り算の結果で余りが出る。
その余を元のビット列にその余をくっつける
そのくっつけられたビット列で生成多項式を割り切ることができる
こうすることで誤りを検出する。

気づき

ビット列の割り算を基にしているのか。
でもなんで割り算にしているのか?
なんか数学の話になりそうだから先にいく。

出典 キタミ式イラストIT塾 基本情報技術者 令和03年

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?