誤り訂正
誤り訂正とは、通信路や記録媒体で生じるビット反転・消失・バーストなどの誤りを発見・修復し、元の情報を高信頼に再生する技術である。熱雑音、干渉、位相雑音、回路劣化、機械的欠陥などの要因で誤りは不可避であり、実務では所望のビット誤り率(BER)やブロック誤り率(BLER)を満たすために符号化と復号の両面から設計する。通信では変調・多重化・チャネル推定と組み合わせ、ストレージではECCとして媒体の固有エラーを補う。性能・遅延・計算量・電力・実装規模の多目的最適化が鍵となる。
誤りモデルと設計指標
代表的な誤りモデルは、独立誤りを仮定する二元対称チャネル(BSC)、ガウス雑音の加法を仮定するAWGN、時間相関をもつバースト誤り(ギルバート–エリオット)である。設計ではBER・BLERのほか、符号化率R、復号フェイル率、レイテンシ、スループット、実装面積、消費電力、復号反復回数などを総合評価する。消失(erasures)を扱う場合は消失率と組合せて復号保証条件を求める。
方式分類:FECとARQ/Hybrid
- 前方誤り訂正(FEC):送信側で冗長ビットを付加し、受信側のみで訂正。リアルタイム性と単方向伝送に強い。
- ARQ:検出専用符号(例:CRC)でエラーを検出し再送要求。スループットは高いが遅延と制御オーバーヘッドが増える。
- Hybrid ARQ(HARQ):FECと再送を統合。増分冗長(IR)で復号尤度を合成し、実効SNRを改善する。
代表的な誤り訂正符号
- ハミング符号:最小距離3、単一誤り訂正(SEC)。小規模制御やメモリ保護に適用。
- BCH:GF上の多項式で設計する巡回符号。多誤り訂正が可能で柔軟。
- リード・ソロモン(RS):バイト単位のバースト誤りに強く、光ディスク、放送、ストレージで広範。
- 畳み込み符号:拘束長と生成多項式で規定。ビタビ復号で実用化。
- ターボ符号:並列畳み込み+インターリーバ+反復復号。低SNR域で強力。
- LDPC:疎行列に基づく線形ブロック符号。ビリーフプロパゲーションで高性能・高並列。
- Polar符号:チャネル分極化に基づく。5Gでは制御チャネルで採用。
復号法と実装要点
復号はハード判定とソフト判定に大別される。ビタビは最大尤度系列推定で畳み込み符号に広く用いられ、BCJRは事後確率に基づき軟情報を出力しターボ復号の核となる。LDPCでは反復メッセージパッシング(サム積・最小和)が標準で、チェック節点・ビット節点更新を並列化する。固定小数点化、正規化・オフセットの導入、早期停止判定、パイプライン化、行列の階梯構造(QLDPC/準巡回)はハードウェア効率を左右する。
距離・重みと誤り性能
線形ブロック符号の最小ハミング距離dminは訂正能力⌊(dmin−1)/2⌋を与える。重み分布は誤り床(error floor)の位置を決め、LDPCの短い停止集合やターボ符号の低重みパスが床を形成する。高SNR域の床低減にはインターリーバ設計や行列のサイクル抑制(4サイクル回避)が有効である。
インターリーブとバースト対策
バースト誤りに対してはブロック/畳み込みインターリーバで誤りを時間・空間的に分散し、独立誤り近似を回復して復号効果を高める。RS+インターリーブの多層化は放送で定番であり、HARQのソフト合成と併用して堅牢性を高める。
変調・検出との統合
近代通信はビット間の独立性が崩れる。ビット対対数尤度比(LLR)を算出してソフト復号に渡すビット内符号化(BICM)が主流で、QAM/OFDMとの親和性が高い。グレイ符号化、パイロットによるチャネル推定、等化(周波数領域MMSEなど)がLLR品質を左右し、誤り訂正の実効利得に直結する。
シャノン限界と符号設計
シャノンの通信路容量は、所与のSNRで達成可能な最大情報率の理論上限を与える。LDPCやターボ、PolarはAWGNで限界近傍の性能を示すが、実運用ではパイロットや制御オーバーヘッド、非理想な同期・位相雑音、PAPR制約、ハードウェア量子化などで乖離が生じる。したがってリンクバジェットとターゲットBLERから冗長度・変調多値・符号化率を協調最適化する。
実用例:無線・有線・記録
- 移動通信:5GではデータチャネルにLDPC、制御にPolar。HARQ-IRとリンクアダプテーションで適応。
- 無線LAN:LDPC/Convolutionalを規格世代に応じて採用。短フレームでは符号化率より遅延が支配的。
- 放送/衛星:RS+畳み込み/LDPCの連接と深いインターリーブでフェージングに対処。
- 光・有線:ソフト判定FEC(SD-FEC)やハード判定FEC(HD-FEC)を距離・装置規模で使い分け。
- ストレージ:NANDではLDPC+スクランブル、ECCはリテンション・プログラムディスターブの経時劣化に対応。
CRCと誤り検出の役割
CRCは多項式除算により強力な検出能力を提供し、誤り訂正符号の復号結果を健全性チェックする。HARQではCRC合否で再送の要否を瞬時に判断し、ARQ単独より遅延を抑える。多項式選択とCRC長は偽陰性率・ヘッダオーバーヘッドのトレードオフで決める。
設計手順の実務フロー
- チャネル特性の把握:SNR分布、フェージング、ドップラ、エラーバースト長。
- 目標品質の設定:BER/BLER、遅延、消費電力、実装規模。
- 符号候補の選定:LDPC/Polar/RS/ターボ/畳み込み等、復号方式と並列度を含む。
- シミュレーション:AWGN/フェージング下のEb/N0対BLER曲線、誤り床解析。
- 実装最適化:固定小数点、量子化幅、早期停止、階梯化行列、メモリアクセス最適化。
- プロトタイプ評価:RF/アナログ非理想、位相雑音、PAPR、同期誤差を取り込む。
計算量・遅延と省電力
反復復号は高スループットと低電力の両立が課題である。スケジューリング(レイヤード更新)、近似演算(ルックアップ/クリッピング)、メモリ帯域の削減、クロック/電源ゲーティングが効果的である。リアルタイム用途では復号深さ・反復上限・HARQラウンド数を制約し、必要性能を満たすようパラメータをチューニングする。
用語メモ
- 符号化率R=k/n:情報ビットkに対する符号語長n。
- 最小距離dmin:訂正可能誤り数を規定。
- LLR:ソフト情報で復号性能を左右。
- インターリーブ:誤りの時間相関を分散。
- 誤り床:高SNR域での性能頭打ち現象。
コメント(β版)