誤りを回復するための情報をデータに付け加える

 FECのキモとなるのが誤り訂正符号化です。誤り訂正符号化とは,受信側で受け取ったデータのビット誤りを検出するだけでなく,誤りの位置を特定して訂正できるように,送信データを加工(符号化)することです。具体的には,送信データに誤り訂正用の情報を追加したり,特殊な変換を施して送るといった処理を行います。

 つまり,あらかじめ誤りを回復するための情報を元のデータに付け加えておくわけです。そのため,誤り訂正符号化で処理したデータは,元のデータより量が増え,通信の効率は悪くなります。しかし,途中でエラーが発生したデータでも,データの再送をせず,受信側だけでエラーを訂正できるので,受信者が正しいデータを受け取れるまでの時間は短くなります。

 誤り訂正符号の作り方には,大きく分けて二つの方法があります。一つは,データをある長さのブロックに分けて,そのブロック単位に符号化する方法です。これをブロック符号と呼びます。ハミング符号やReed-Solomon(リード・ソロモン)符号,ターボ符号といった方式があります。

 もう一つは,連続的にデータを変換して誤り訂正符号をデータに組み込んでいく方法で,木符号きふごうと呼ばれます。畳み込み符号が代表例です。

同じビットを連続して送り,多数決で決める

 誤り訂正符号として一番簡単なのは,同じビットを何度も送る方法です。例えば,一つのビットを伝えるために,5回連続して同じビットを送ることにします。送信側は「1」を送るために「11111」を送るわけです(pict.2[拡大表示])。

 受信側では連続する五つのビットを見て,多い方のビットを正しい情報として受け取ります。受け取ったデータが「10011」だったとすると,「1」が三つで「0」が二つと「1」の方が多いから,正しい情報は「1」だと判断できるのです。受信側で多数決を行い,元の情報を推定して誤り訂正を行う方式といえます。

 一つのビットを五つ連続して送る方法だと,そのうちの二つが誤って届いても元のデータに復元できます。しかし,「1」を送ろうとしたのに受信側に届いたのが「10100」だった場合のように,三つ以上誤って届くとデータを復元できません。

 連続して送るビットの数を増やせば増やすほど,エラーが多く発生しても元のデータに戻せるようになり,誤り訂正の精度は上がります。しかし,その分伝送効率は落ちてしまいます。精度と通信効率はトレードオフの関係にあります。

次へ 上 中 下 次へ