前方誤り訂正
送信側がデータに誤り訂正用の冗長な情報を加えて送り、受信側が訂正能力の範囲内で再送を要求せずに誤りを直す方式。受信側が再送を要求する方式(ARQ)と対比される。
イマシルちゃんの解説
通信中の雑音などでデータに誤りが入ると、送り直してもらうまで待たなければならないことがあるよ。
その待ち時間を減らす方法の一つが、前方誤り訂正という通信の誤りを直す方式なんだ。
FECとも呼ぶよ。
送信側で誤り訂正符号を使い、元のデータから計算した余分な情報を加えて送るの。
受信側はその情報を手掛かりに誤りを直し、元のデータを取り戻すんだ。
送り直しを待ちにくい音声や映像の通信などで役立つよ。
ただし誤りが多すぎると直しきれないので、どんな誤りでも回復するわけではないんだ。
この解説はわかりやすかったですか?
より深い解説
定義
前方誤り訂正(FEC:Forward Error Correction)は、送信するデータに、誤り訂正符号(リード・ソロモン符号、LDPC符号など)による冗長なビットを付けておき、受信側が、そのビットを使って、伝送中に起きた誤りを検出し、訂正する方式である。
ARQとの比較
| 前方誤り訂正(FEC) | 自動再送要求(ARQ) | |
|---|---|---|
| 誤りへの対応 | 受信側が自分で訂正する | 受信側が誤りを検出し、送信側に再送を要求する |
| 必要な情報 | 訂正できるだけの冗長なビット | 誤りを検出できるだけの情報(CRCなど) |
| 帰りの通信路 | 不要 | 必要 |
| 遅延 | 小さい(再送を待たない) | 再送の分だけ大きくなる |
| 帯域の効率 | 冗長なビットの分だけ、常に下がる | 誤りが少なければ、ほとんど下がらない |
| 誤りが多すぎるとき | 訂正しきれない | 再送で確実に届けられる |
使われる場面
| 場面 | 理由 |
|---|---|
| 衛星通信、宇宙探査機 | 往復の遅延が非常に大きく、再送を待てない |
| 放送(デジタルテレビ) | 受信者から送信者への帰りの通信路がない |
| 音声や映像のリアルタイム通信 | 再送を待つと間に合わない |
| 高速のイーサネット(100Gbit/s など)、光通信 | 高速な伝送で起きる誤りを、遅延なく訂正する |
| 無線LAN、携帯電話 | FECで訂正し、それでも残った誤りはARQで再送する(ハイブリッドARQ) |
誤り検出と誤り訂正
| 方式 | できること | 例 |
|---|---|---|
| パリティ | 1ビットの誤りの検出 | パリティビット |
| CRC | 誤りの検出 | イーサネットのFCS |
| ハミング符号 | 1ビットの誤りの訂正、2ビットの誤りの検出 | ECCメモリ |
| リード・ソロモン符号 | まとまった誤り(バースト誤り)の訂正 | CD、QRコード、デジタル放送 |
ハミング符号の検出能力を読む際の注意
基本のハミング符号は最小ハミング距離が3で、1ビットの誤り訂正に使える。2ビットの誤りを検出するだけなら可能だが、1ビットの訂正を行う復号では、2ビット誤りを1ビット誤りと取り違え得る。
1ビット訂正と2ビット誤り検出を区別して行うSECDEDでは、全体のパリティを加えた拡張ハミング符号などを使う。上の比較表の能力を読む際も、符号と復号方法の条件を確かめる。