4・3 誤りの検出方式:パリティ符号、定比率符号、ARQ、FEC
送信した符号が伝送路の雑音などにより反転して、1→0、又は0→1と誤って判読されることがある。受信された符号に誤りを生じたことを検出できるが、どの符号が誤ったのかの判別はできない場合と、誤りの符号の位置までを検出できて訂正が可能な方法がある。
次に誤りが検出できる符号について考える。
代表的な誤り検出符号がパリティ符号である。長さ3ビット符号で構成した通報を考えると
100、 101、 110、 111、 ・・・
各々の符号に含まれる1の数の和が偶数となるように4ビット目にパリティ符号を付け足す。パリティ符号を()で示す。この結果の4ビット通報の中の符号1数の和は偶数となる。
100(1)、101(0)、110(0)、111(1)、・・・
通信伝送中に1ビットの誤りが発生したとする。
例えば、2番目の通報の中で1→0に誤ると1の数の和は1となるので奇数に変化する。
正しい符号; |
1010: |
1の数の和は2で偶数であるのでパリティ検査は正になる。 |
|
↓ |
|
誤った符号; |
1000: |
1の数の和が1となり奇数に変わり符号の誤り発生検出ができる。 |
各通報の右端に1の数の和が偶数となるようにパリティ符号を付けておき1の数の和が奇数に変わった通報に誤りビットがあると検出できる。奇数ビットの誤りは検出できるが偶数ビットの誤りが発生したときはパリティ検出ができないがパリティ検出は簡単なため通信のほかにパソコンなどのデジタル機器にも広く使われている。
通報ごとの全ビット長さとその中に含まれる1の数の比率を一定とする符号を定比率符号または定マーク符号という。国際通信の3/7符号は各通報が7ビットで構成され、各通報中の1の数が3ビットとなるように符号化している。3/7符号の例は
1文字中に含まれる1ビットの数/1文字の全ビット数 = 3/7
となり各文字は
1010100、0101010、1100100、−−−
のように符号化される。通報に誤りが発生すると定比率3/7が変化するので誤りの通報を検出できる。国内通信用の10ビット定マーク符号がある。
一方向誤り訂正、Forward Error Correction(FEC)通信は同じ文章を繰り返して送り、比べることから誤りを発見する方式で、ARQのように前に戻ることをしないので一方向通信方式と呼ばれている。一定時間間隔で同じ文字を繰り返して送信して、受信側で同じ時間間隔で同じ文字を検出したとき誤りがないとする。誤りが発生する伝搬状況が時間により異なることを利用するタイムダイバーシティ方式である。
A、B、C、D、E、の4文字をFECで送信する例を示すと
この例ではBとCが3文字遅れて同じ文字が送られる。GMDSSでは5文字遅れて同じ文字が反復送信される。
自動再送要求、Automatic Repeat Request 又は Automatic Request of Repetition(ARQ)通信方式は国際通信用に開発された誤り訂正方式である。受信側で誤りを検出したとき、送信側に誤り受信を伝えて、戻って送り直して貰う方法により訂正する通信方式である。受信側で誤りは検出したが訂正符号が不明の場合に行われる。GMDSSでは定マーク符号及びFEC符号と組合せてARQが用いられる。定マーク符号又はFEC符号により受信側に誤りが発生したことを検出すると自動的に送信側に再送信要求、ARQを送り直してもらう通信方式である。
受信側で誤りを自動的に訂正できる符号がハミングにより発見されてから種々な符号が発見されて通信やコンピュータ等に利用できるようになった。誤り訂正符号はブロック符号と畳み込み符号の方式に大別できる。それぞれの方式において多種類の訂正符号が考案されている。
次に誤り訂正の原理を説明する。
一般に2進符号を記号Xの多項式で表示する。6ビット符号、110101をXの多項式で表示する場合を例として考える。符号を変数Xの多項式、I(X)で表示する。符号の右端から左に進むに従ってXの右肩のベキ数を1、2、3、・・・と付ける。110101は
と表示される。ここでは、XとX3の桁の符号は0なのでI(X)には含まれない。一般にある情報は1又は0の2進符号で表示できるのでXの多項式I(X)で表示される。
情報ビットI(X)に誤り訂正ビットR(X)を付け加えてI(X)+R(X)として誤り訂正可能な送信信号を発生する。
図4・3 送信符号の構成
ただし、付加するR(X)は生成多項式G(X)符号で割り切れるように情報I(X)ごとに計算してR(X)を見つけてI(X)に付け加える。生成多項式G(X)も2進符号で情報内容により変化するI(X)ごとに一定のG(X)で割り切れるようなR(X)を計算してI(X)の右に付けて送信信号とする。
受信側で同じG(X)を用いて受信符号を割算する。誤りの検出は受信符号を送信側と同じG(X)で割算したとき
(1)受信信号がG(X)で割り切れるとき:正しく受信できた。
(2)受信信号がG(X)で割り切れないとき:誤りが生じた。さらに
(3)割算したときの余りの符号から誤りのビットの位置が分かるので訂正できる。
送信側で訂正ビットR(X)を作るにはI(X)をG(X)で割算して出てきた余りをR(X)とする。
数学的に割算は分数となるのでI(X)がG(X)で割り切れるときは
と表せる。ここでQ(X)は割算の商と呼ばれるXの多項式で示される。G(X)で割り切れないときは割算の余りをR(X)とすると
I(X)=Q(X)・G(X)+R(X) (4・12)
となる。この両辺にR(X)を加えると
I(X)+R(X)=Q(X)・G(X)+R(X)+R(X) (4・13)
+は排他的和、EX-ORをとるので、R(X)+R(X)=0となるので(4・13)式は
I(X)+R(X)=Q(X)・G(X) (4・14)
書き直すと
(4・15)は、分子をI(X)+R(X)とすればG(X)で割り切れることを示している。
(4・11)式と比較するとI(X)にR(X)を付け加えるとG(X)で割り切れるようになることが分かる。すなわちI(X)を生成多項式G(X)を用いて割算をして余りのR(X)を訂正ビットとして付け加えればG(X)で割り切れる送信符号を作り出すことができる。
受信符号に誤りが発生すると受信符号を送信側と同じG(X)で割算すると割り切れないで余りが発生する。誤りビットの検出については次に述べる。
|