1 LDPCの概要
1.1 LDPCとは何か
LDPC(Low-Density Parity-Check; 低密度検査符号)は、誤り訂正に用いられる線形符号の一種であり、パリティ検査に対応する行列の要素が大部分ゼロとなるよう設計される。復号では、その疎な構造を利用して、受信データから信頼度(尤度)を反復的に更新しながら最尤に近い推定を行う。理論的には「良い復号性能を、現実的な計算量で達成する」方向性が重視され、実装上は通信路条件や計算資源に合わせた設計が行われる。
1.2 低密度性がもたらす利点
検査行列が疎であると、各受信記号に対して参照される検査式の数が限定される。これにより、反復復号で必要な演算が局所化し、全体として高速な推定が可能になる。さらに、疎性はTannerグラフ上の近傍を小さくし、メッセージパッシングの計算が分散的に実行できるため、並列化やパイプライン化にも適する。一方で、グラフの循環構造が性能や収束性に影響するため、疎性は無条件に有利ではなく、構造設計と組み合わせて最適化される。
1.3 用語と関連概念
LDPCは複数の概念の組合せで理解される。代表的には、検査行列、生成行列、符号語、復号アルゴリズム、そしてTannerグラフによる視覚化が挙げられる。復号側では、メッセージパッシングの考え方に基づく確率伝搬系、また計算簡略化のための近似方式がある。加えて、復号性能はBER(Bit Error Rate)やFER(Frame Error Rate)で評価され、符号長や符号化率、次数分布といった設計パラメータが結果へ直接影響する。
2 数学的基礎
2.1 符号の表現
2.1.1 検査行列(パリティ検査行列)
LDPCにおいて中心となるのが検査行列である。具体的には、パリティ検査行列 \(H\) を用いて、符号語 \(c\) は \(Hc^T=0\) を満たすように定義される。ここで \(H\) の行は検査式、列は符号ビットに対応する。疎なLDPCでは \(H\) の各行・各列に現れる非零要素数が比較的小さく設計されるため、検査式ごとの参照ビットが限定される。これが、反復復号における局所的更新の前提になる。
2.1.2 生成行列と符号語
線形符号は生成行列 \(G\) を用いて、情報ビット列 \(u\) から符号語 \(c=uG\) の形で生成できる。検査行列 \(H\) と生成行列 \(G\) は互いに整合し、任意の符号語が検査条件を満たす。実装では符号化の効率が重要であり、生成行列の形を直接用いるよりも、準巡回性などの構造を活かして符号化手順を簡素化する設計が選ばれることが多い。符号長や符号化率は \(H\) と \(G\) の次元関係から決まる。
2.2 Tannerグラフ
2.2.1 可視化による理解(変数ノードと検査ノード)
Tannerグラフは、LDPCをグラフとして表すことで直感的理解を可能にする。符号ビットに対応する変数ノードと、検査式に対応する検査ノードを二部グラフとして配置し、行列の非零要素に対応する辺で結ぶ。復号では、このグラフ上で各ノードが互いに情報を交換する。特にメッセージパッシングでは、ある変数ノードが複数の検査ノードから受ける情報と、検査ノードが複数の変数ノードから受ける情報が交互に更新される。グラフの循環(ループ)の存在は収束挙動や誤り床性能に影響するため、設計上の重要論点になる。
2.3 複雑度と疎性
複雑度は、各反復で必要な計算量と反復回数の積として捉えられることが多い。疎性が高いほど、検査ノードが参照する変数ノード数やその逆の関係が減り、更新計算の回数が減少する。ただし、疎であることが必ずしも性能最適を保証するわけではない。例えば、グラフの局所構造が不適切だと、情報の再利用が早すぎて誤った方向へ推定が進む場合がある。このため、疎性と次数分布、循環の影響を同時に考慮する必要がある。
3 復号アルゴリズム
3.1 反復復号の考え方
反復復号は、受信信号から得た信頼度に基づいて符号ビットの推定値を徐々に改善する枠組みである。初期値としてチャネルからの尤度情報を与え、Tannerグラフ上で変数と検査の間を往復しながら、矛盾の少ない組を探す。各反復で更新されるのは「あるビットがある検査式に対してどの程度整合するか」といった局所的なメッセージであり、全体として整合性が高まるように収束を目指す。理想には無限反復で最尤解に近づく性質が期待されるが、実際には有限回で停止するため、実用上は停止判定や反復数の設計が重要になる。
3.2 メッセージパッシング
3.2.1 確率伝搬(信頼度更新の流れ)
確率伝搬に基づく方式では、各辺に沿って確率分布(またはそのパラメータ)が伝播する。変数ノードは受信から得た情報と、隣接検査ノードから受け取ったメッセージを統合して、次の検査ノードへ送るメッセージを計算する。検査ノード側では、検査式が課す制約(パリティ条件)を満たすようにメッセージを組み替え、局所整合度を反映させる。実装では確率分布そのものを持つ代わりに、尤度比やログ領域の表現(いわゆる対数尤度比)を用いることが多い。これにより数値安定性と計算量の面で利点が得られるが、厳密計算と近似計算の選択が性能へ影響する。
3.3 書換え(近似)方式
3.3.1 ロジック簡略化と計算量削減
確率伝搬をそのまま実装すると、検査ノードの更新に複雑な演算が必要になりやすい。そこで、近似により計算量や回路規模を削減する書換え方式が用いられる。代表例として、ログ領域の更新における近似(例えば関数形の簡略化)により、除算や指数計算を避ける設計が考案されている。近似は通常、メッセージの一部を線形要素や比較演算で置き換える方向で行われるため、性能はわずかに劣化する可能性がある。その代わり、同じ復号性能目標に対して必要反復数や回路コストが抑えられ、結果的に総合効率が向上する場合がある。
4 設計と実装
4.1 構造の設計
4.1.1 符号化率の選択
符号化率(情報長に対する符号長の比)は、冗長度と帯域効率の関係を決める。符号化率を下げて冗長度を増やすと、検査条件が増えて訂正余裕が大きくなる傾向があるが、送信データ量は増える。反対に高い符号化率は効率を上げる一方で、同じ条件では復号が難しくなることが多い。したがって、目標とするBER/FER、許容レイテンシ、利用可能な伝送帯域、そしてチャネルの統計特性を踏まえて符号化率を決める必要がある。
4.1.2 構造(準巡回・準巡回行列など)
LDPCでは、検査行列の作り方が性能と実装性の両方に影響する。準巡回的な構造を取り入れると、行列の一部をシフトで表現でき、符号化処理の規則性が高まる。さらに、Tannerグラフ上の循環の配置を制御することで、収束の遅さや誤った収束先を抑える設計が狙える。実際には、次数分布、循環の短さ(特定長のループの有無)、そして実装上のメモリ配置や並列化可能性まで含めて構造が最適化される。
4.2 チャネル適応
4.2.1 AWGNやフェージング環境での考え方
チャネルが異なると受信信号の統計が変わり、同じLDPCでも適した復号パラメータや符号構造が変わる。加法性白色ガウス雑音(AWGN)ではノイズ特性が比較的単純であり、尤度計算や近似の前提が整理しやすい。一方でフェージング環境では受信振幅や位相が変動し、尤度の評価や推定の安定性が課題になる。対策として、チャネル推定と復号の連携、あるいはフェージング統計を反映した設計(適切なフロントエンド処理やメトリクスの調整)が考えられる。さらに、動作点(想定SNR近傍)での性能優先度を定め、しきい値が理想から外れすぎないよう調整する。
4.3 ハードウェア実装
4.3.1 反復回数・メモリ・スループットの最適化
実装では、単一反復の計算量だけでなく、反復回数、メモリ容量、データの搬送量が総合性能を決める。反復回数を増やすと訂正能力が高まる場合があるが、レイテンシと電力消費が増える。停止判定として検査式の充足確認や誤りパターンの安定性を用いる設計では、早期終了により平均計算量を下げられる。メッセージ格納には大きなメモリが必要になりやすいため、量子化や配列配置、更新順序の工夫で帯域要求を抑える。さらに、並列処理(複数ノードの同時更新)を行う際には、依存関係と配線規模のバランスが重要になる。
4.4 相性の良い用途
4.4.1 通信システムでの適用例(評価・導入の観点)
通信では、リンク予算、符号化遅延、誤り訂正能力、そして実装コストの同時最適化が求められる。LDPCは高性能域で優れた復号性能を示すことがあり、特に長めのデータフレームを扱うシステムで採用しやすい。一方で、復号器の複雑さが増えると装置コストや熱設計に影響するため、目標性能を達成するために必要な反復数と、近似方式の許容損失を評価する必要がある。導入時には、特定SNRの範囲でのBER/FER、フレーム長に対するスケーリング、そして変調方式や前処理(復調後LLR生成)の整合性を合わせて検討される。
5 性能評価
5.1 BERとFER
BERはビット単位の誤り頻度、FERはフレーム(ブロック)単位で誤りが発生した割合を表す。LDPCは反復復号により符号語全体の整合性を高めるため、実運用ではFERが重要指標になることが多い。BERとFERは単純に比例しないことがあり、誤りが部分的に残るケースと、復号が大きく外れるケースで挙動が異なるためである。評価では、十分な試行回数により統計誤差を抑え、特に低い誤り率領域での測定設計が課題になる。
5.2 鋭いしきい値とウォーターフォール的挙動
多くのLDPC系では、ある受信品質(例えばSNR)を境に誤り率が急激に低下する「しきい値」現象が観察される。これにより、低いSNRでは復号が成立せず、高いSNRでは急速に誤りが減るというウォーターフォール型の特性が得られることがある。しきい値の位置と立ち上がりの急峻さは、構造設計と近似復号の影響を受ける。実際のチャネル推定誤差や受信側のLLR品質の劣化も、しきい値の実効位置を左右するため、理想解析だけでなく実機条件での検証が重要となる。
5.3 符号長依存性
符号長は、推定性能のばらつきやしきい値の近さに関係する。一般に符号が長くなるほど解析上の漸近的性質に近づき、理想に近い挙動が現れることがあるが、同時に復号計算の規模も増える。短い符号では、グラフの循環が相対的に支配的になり、反復中の情報再利用が早く起こることがある。結果として、平均性能よりも分布のばらつきが大きくなる場合があるため、対象用途のフレーム長設計と整合するよう符号長を選ぶ必要がある。
5.4 符号化率・次数分布の影響
符号化率が変わると冗長度が変わり、要求される受信品質の目安が変化する。さらに、各変数ノードや検査ノードの次数の分布(次数分布)は、メッセージ伝播の広がり方を決めるため、復号の収束速度や最終誤り床へ影響する。設計では、所望のしきい値を近づけるために次数分布を最適化するアプローチが用いられる。加えて、量子化や近似がある場合は、理想次数分布の最適性が崩れることもあり、実装制約を踏まえた再設計が行われることがある。
6 他方式との比較
6.1 LDPCとターボ符号の対比
ターボ符号は、畳み込み符号と反復的な復号を組み合わせる方式として広く知られる。LDPCとターボ符号はどちらも反復復号を用いる点で共通するが、構造の基礎が異なる。LDPCは疎な検査行列に由来するグラフベースの推定であり、ターボ符号は連結された符号器の出力を用いる。この違いは、必要演算量、メモリ要件、そして特定のチャネル条件における性能と収束速度に反映される。結果として、装置仕様や目標性能に応じてどちらが適するかが変わる。
6.2 符号設計のトレードオフ
6.2.1 レイテンシと復号性能の関係
レイテンシは、フレーム入力から復号結果までの時間に相当し、主に反復回数と並列化度合いで決まる。復号性能は反復を増やすことで改善する場合が多いが、現実のシステムでは待ち時間が増えると利用が難しくなる。したがって、性能曲線と時間制約の両方を満たす「運用点」を選ぶ必要がある。さらに、早期終了の導入や、近似計算の採用といった工夫は、性能劣化とレイテンシ削減をトレードする。設計では、平均的な遅延と最悪遅延の扱いまで含めて評価することが求められる。
7 研究動向と発展
7.1 モデルベース設計
近年は、解析モデルに基づき符号や復号の設計を進める流れが強まっている。次数分布やしきい値の関係をモデル化し、理想的な更新則と実装可能な近似とのギャップを埋める工夫が行われる。加えて、誤りの発生確率やLLRの品質劣化をモデルに取り込むことで、実機に近い性能予測が試みられる。こうしたモデルベース設計は、試行錯誤の回数を減らし、設計サイクルを短縮する効果が期待される。
7.2 学習・最適化を用いた復号
復号更新の一部を、データ駆動で調整する研究も進んでいる。反復の各段階を「推定器の層」とみなし、学習により係数や閾値、あるいは近似の形状を最適化するアプローチがある。目的は、有限反復での性能を高めること、またチャネル条件の変動に対する頑健性を向上させることである。学習により改善が得られても、汎化性能や計算コスト、再学習の必要性などが課題となり、実用では制約の下でバランスを取る設計が重視される。
7.3 新しい構造の提案(高性能化の方向性)
LDPCの高性能化では、グラフ構造の工夫により収束性を改善する方向が継続的に研究されている。特定の構造を導入してしきい値に近い挙動を引き出す設計や、誤りが局所的に広がるのを抑えるための制約付けなどが提案される。加えて、実装効率との両立を図るため、符号化の規則性やメモリ効率が高い構造が優先されることがある。結果として、理論上の目標と回路上の制約の間で最適点を探る試みが、今も発展の中心となっている。