ディジタル信号を伝送すると,どうしてもビット・エラー(符号誤り)が発生します。けれども,受信側で送られてきたディジタル信号の中にビット・エラーがあるかどうかがわかれば,対策をとることができます。このように,ビット・エラーを見つけることを「誤り検出」といいます。

ビット・エラーを見つけるには

 誤り検出の方法として有名なのが「パリティ・チェック」です。この方法を簡単に説明しましょう。まず,送りたいビット列を一定の長さで区切って,それに1ビットのパリティ・ビットを付け加え,一つのブロックを作ります。ブロックのビット全体に含まれる“1”の個数がうまく奇数になるように,パリティ・ビットを“1”または“0”に決めます。送信側はデータを,こうして作ったブロック単位で送ります。

 受信側では,ブロックの信号中の“1”の個数を調べます。送信側と同じ奇数ならビット・エラーはなく正しく送られたとわかります。もし偶数なら,どれかの1ビットがエラーを起こしていることになります(pict.1[拡大表示])。この方法を利用するには,「ビット・エラーは1ビットだけである」という前提が必要になります。

 ビット・エラーが起こったかどうかを検出するだけではなく,エラーを起こしたビットを特定できれば,受信側でそのビットを訂正できるので,さらに好都合です。このようにビット・エラーを訂正することを「誤り訂正」といいます。

 誤り訂正をするには,一つのブロックに対して,2個のパリティ・ビットを使います。このパリティ・ビットの使い方を工夫すれば,どこのビットがエラーを起こしているかを特定できます。この場合でも,ビット・エラーは1ビットだけという条件が必要です。ただし,ビット・エラーが2ビットの場合でも,誤り訂正はできませんが,誤り検出は可能です。

フレームはFCSを使ってチェックする

 データ通信では,データ信号を一定の長さに分割し,フレームの形にして伝送するのが普通です。このフレームは,データのほかに「FCS」(フレーム・チェック・シーケンス)と呼ぶビット列を含んでいます。FCSは,フレームにあるビットの誤り検出や誤り訂正に使います。

 FCSの計算はちょっと複雑です。まず,送りたいデータの“1”と“0”の組み合わせを,数式で表します。この数式を,ある決まった数式(生成多項式という)で割ります。このときの「余り」(これも数式)を“1”と“0”の組み合わせに直します。これがFCSです。

 受信側では,受け取ったデータを同じ生成多項式で割り,「余り」を求めます。これが受け取ったFCSと一致すれば,エラーはなかったということになります。逆に,一致しなければ,ビット・エラーがあったことになります(pict.2)。このように,FCSを使えば誤り検出ができます。また,さらに使い方を工夫すれば誤り訂正も可能です。

 FCSを使う方法は,単純にパリティ・チェックを加えるよりも,少ないビット数で済むため,伝送効率を高くできるという特徴があります。そこでFCSは,高品質が要求される高速データ伝送や,ビット・エラーが多く発生する携帯電話やPHSといったディジタル移動通信などに広く使われています。