送信時に訂正符号を付加し、受信側が再送なしで誤りを訂正する方式。衛星通信や放送など、再送が難しい通信で使われます。
FEC(Forward Error Correction、前方誤り訂正)とは、送信するデータにあらかじめ誤り訂正用の符号を付けて送り、受信側が再送を要求せずに自分だけで誤りを訂正する方式です。
「前方」という言葉は、送る前(前もって)に訂正情報を込めておくという意味。代表的な符号にハミング符号やリードソロモン符号があります。身近な例では、QRコードが汚れても読めるのは FEC のおかげです。
FEC が再送なしで誤りを直せるのは、データに「冗長な情報」を多めに付けて送るからです。
・送信側:データから訂正符号を計算し、データと一緒に送る
・通信路:ノイズで一部のビットが化ける
・受信側:付いてきた符号を使って、どのビットが誤ったかを計算で特定して訂正する
ARQ(自動再送要求)との違いも押さえておきましょう。ARQ は「誤りを検出 → 送り直してもらう」ので往復の遅延が発生しますが、FEC は受信側だけで完結するため遅延が小さい代わりに、付加する符号が多くデータ量が増えます。
FEC は再送が難しい・コストが高い通信で特に重宝されます。
・衛星通信・宇宙通信:往復に時間がかかり再送が現実的でないため FEC が必須
・デジタル放送・ストリーミング:一方向の配信で受信側から再送要求できない
・QRコード・CD/DVD:物理的な汚れや傷があっても読み取れるよう FEC を内蔵
・携帯電話・Wi-Fi:電波状況が悪くてもある程度自己訂正できる
FEC と ARQ は「FEC は再送不要・遅延が小さい/ARQ は再送あり・データ量は少ない」という対比で整理できます。