パリティチェック

問題

図のように16ビットのデータを4×4の正方形状に並べ,行と列にパリティビットを付加することによって何ビットまでの誤りを訂正できるか。ここで,図の網掛け部分はパリティビットを表す。

  • 1
  • 2
  • 3
  • 4

答え

1

解説

パリティビット

パリティビット (: parity bit) は、コンピュータ通信において、与えられた二進数に対して全体の奇偶性を保つために与えられる一桁の二進数(つまり 0 か 1)である。パリティビットは最も単純な誤り検出符号である。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

問題で言えば、送信側が最初の一行目の(1, 0, 0, 0)という情報を送る時に、(1)というパリティビットを加えて送信します。

受信側では、正しく情報がと届けば(1, 0, 0, 0)とパリティビット(1)を受け取ります。 (1, 0, 0, 0) を検証するとパリティビット(1)が得られるので、OKです。

もしどこかで通信が乱れて、受信側で(1, 1, 0, 0) とパリティビット(1) を受け取った場合、 (1, 1, 0, 0) を検証すると パリティビット(0)なので、情報が誤っていることが分かります。 ただし、どのビットが誤っているかは分かりません。また。もし2ビット以上情報が変わった場合も、誤りがあるかどうかを正しく検証することができません。

パリティビットを行方向だけでなく、列方向にも加えることで、誤っている行と誤っている列が交差した部分で、誤りを検出することができるようになります。

以下のサイトでは、水平方向と垂直方向のパリティビットをPythonで算出するコード例が載っています。

Longitudinal/vertical redundancy checks (LRC/VRC)