ldpc符号と - read.pudn.comread.pudn.com/downloads90/sourcecode/mpi/344255/de_日本人... · low...
TRANSCRIPT
LDPC符号とBelief propagationに基づく復号法
岡山県立大学 情報工学部
和田山正
本講演の概要
• 低密度パリティ検査符号とその復号法– LDPC符号の定義– sum-product復号法の概要
• 密度発展法とイレギュラーLDPC符号– 密度発展法の考え方– イレギュラーLDPC符号
• StructuredイレギュラーLDPC符号– irregular repeat accumulate符号
Part I 低密度パリティ検査符号とその復号法Low density parity check code (LDPC符号)
LDPC符号の特徴
• 優れた復号特性– Shannon限界に迫る性能(イレギュラー)
• 例えば、Shannon限界から0.3dBという実験結果(Irregular LDPC 符号、符号長100万)
– 密度発展法による詳細な解析・設計が可能– ブロック誤り率特性がよい(レギュラー)
• 最小距離が符号長に比例(確率的)
• 線形時間復号 • 並列実装に適している
LDPC符号:実用化への検討
• 符号長・符号化率によってはターボ符号よりも誤り率特性が良い
• LDPC符号のメリット– 復号性能– スループット– (基本特許)パテントフリー
• 実用化を向けた検討・実装も始まっている– ストレージ– WLAN– 4G– 衛星放送
疎なグラフで定義される符号+反復復号法を支える2本柱
• ランダムに作った長い符号は良い符号– Shannonの通信路符号化定理– 今まで“Shannonの通信路符号化定理は構成的でない”といわれ続けてきた→復号に指数時間かかる
• Belief propagation=Sum-product復号法– グラフ上でメッセージをやり取りする分散アルゴリズム– 可観測変数の観測値に基づき、隠れ変数の事後確率分布を計算するアルゴリズム
LDPC符号の歴史(I)
• Gallagerによる発明– LDPC符号の定義– 符号アンサンブルに基づく最尤復号特性解析
– Sum-productアルゴリズム• しかし、LDPC符号は長い間忘れられていた
1962 IRE Trans.on Inf.
計算機資源が高価だった
BCH符号, Reed-Solomon符号、畳み込み符号、連接符号の登場
LDPC符号の歴史(II)
• Tanner: グラフ上で定義される符号(1981) • Berrou et al. : Turbo符号(ICC,1993)
– Turbo 復号法 (iterative decoding)• MacKay : LDPC符号の再発見
– 広範囲にわたるシミュレーション– Proof of “LDPC codes are very good.”
(IT Trans. 1999)• Richardson,Urbanke:イレギュラーLDPC符号と
iterative threshold (1998)
LDPC符号とは?
• 線形符号である• 疎な2部グラフにより定義される • 2つのクラス
– レギュラーLDPC符号:正則2部グラフ– イレギュラーLDPC符号:非正則2部グラフ
2部グラフ
ノード
エッジ(辺、枝)
ノードに接続するエッジの本数をそのノードの次数と呼ぶ
次数3
変数ノード
チェックノード
2部グラフにより定義される2元線形符号
• 変数ノードは符号語の各シンボルに対応• チェックノードはシンボル間のパリティ検査条件に対応
m1=1 m2=1 m3=0 m4=0 m5=1 m6=0
m1+m2+m2=0 m3+m4=0 m4+m5+m6=0
2部グラフとパリティ検査行列
1 1 1 0 0 0
0 0 1 1 0 0
0 0 0 1 1 1
H =
チェックノード
変数ノード2部グラフの接続行列→符号の検査行列
検査行列の
列が変数ノード
行がチェックノード
に対応
})(:){( 021221 =∈= tn
nn cccHFcccC KK
レギュラーLDPC符号
• 正則2部グラフ(次数が各グループ内で等しい)に対応
• 各列、各行の重み(wc,wr)が一定
• 符号長をNとするとき、 wc << N
j = 3
k = 6 1… 1 … 1 …1… 1… 1 1
1……H = r
R = 1/2
ソケットモデルによるレギュラー2部グラフの構成
ランダムにソケット間を接続する
(wc,wr)=(3,4)
ソケット
タナーグラフ内のショートループ
・sum-product復号法がうまく動くためには、タナーグラフが短いループを持たないことが望ましい
レギュラーLDPC符号のビット誤り率特性
(3,6)レギュラーLDPC符号
比較:(255,223)Reed-Solomon符号と拘束長10、符号化率1/2の畳み込み符号の連接符号でビット誤り率10-5を
達成するためには2.1dBのSN比が必要
符号化・復号の流れ
)( kmmm L21
通信路)()(
n
k
cccGmmm
L
L
21
21
=
符号化器変調器
復調器sum-product復号法)ˆˆˆ( kmmm L21
メッセージ
推定結果 反復復号法
通信路モデル
ChannelP(y|x)
Cx∈
Encoder observationp(x|y)
y
)( ni xxxxx KK21=
)()()|()|(
yPxPxyPyxP
ixCx
i ∑=∈
==
0
0
)()()|()|(
yPxPxyPyxP
ixCx
i ∑=∈
==
1
1
復号ルール
加法的白色ガウス通信路
• バイナリバイポーラ変換(0 →+1, 1 → -1)
• yi : 受信シンボル• xi: 送信シンボル• ni:平均0、分散σ2の白色ガウス雑音
iii nxy +=
sum-product復号法=メッセージ伝達アルゴリズム
事前値外部値
6λ
mnβmnα
5λ4λ3λ2λ1λ対数尤度比
Belief propagation として知られているアルゴリズムと等価
・sum-product復号法
・turbo復号法
準備
• H = {Hmn} LDPC符号の検査行列• A(m):Hの第m行目の1が立ってる列番号• B(n): Hの第n行目の1が立ってる行番号
1 2 3 4 5 6
X Y Z
},{)(},,,{)( YXBXA == 3321
sum-product復号法(I)
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛= ∑∏
∈∈ nmAnmn
nmAnmnmn ff
\)(''
\)('' |)(|)sign( ββα
11
−+
=)exp()exp(ln)(
xxxf
n
mmnα
)(mA
nmnBm
nmmn λαβ += ∑∈ \)('
'
n
m
nm 'αmnβ
)(nB
nλ
mnβ
)|()|(ln
10
==
=nn
nnn xyP
xyPλ
22σ
λ nn
y= (AWGN)
チェックノード処理
変数ノード処理
sum-product復号法(II)
[ビット推定値の計算]
∑∈
+=)('
'nBm
nmnnQ αλ
⎩⎨⎧
−==
=11
10
n
nn Q
Qc
sign,sign,ˆ
Qnは、対数事後確率比
復号法の実例
(4.39, 1.69, 1.71, 1.71, 2.08, 2.70)真値に収束
3回目
(3.95, 0.27, 1.71, 1.71, 1.53, 2.23)2回目
(4.05, 0.58, 0.24, 1.06, 1.60, 2.29)対数事後確率比:1回目
(4.39, 1.69, 1.71, 1.71, 2.08, 2.70)対数事後確率比(真値)
(1.62, 0.26, -0.032, -0.128, 0.746, 1.00)AWGN通信路(σ2=0.79)
受信値
通信路
復号のデモンストレーション
sum-product復号法はMAP復号か?
• タナーグラフにループが含まれない場合、正確なMAP判定を与える。
• ループが含まれる場合は、sum-product復号法=近似MAP復号アルゴリズム– 必ずしも正しい事後確率が計算できるわけではない
– グラフが疎な場合には、比較的良い近似計算が可能
ターボ復号法
BCJRアルゴリズム符号1
BCJRアルゴリズム符号2
インタリーバインタリーバ
外部値
(extrinsic)
事前値
(prior)外部値
(extrinsic)
事前値
(prior)
LDPCC&sum-product復号法
BCJRアルゴリズムチェックノード1
BCJRアルゴリズムチェックノード2
インタリーバ
BCJRアルゴリズムチェックノードM
外部値
事前値計算変数ノード1
事前値計算変数ノードN
多数のシングルパリティチェック符号の組み合わせ
事前値
BCJRアルゴリズムとチェックノード処理の等価性
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛= ∑∏
∈∈ nmAnmn
nmAnmnmn ff
\)(''
\)('' |)(|)sign( ββα
チェックノード処理
11
−+
=)exp()exp(ln)(
xxxf
前向き
計算
後ろ向き
計算
シングルパリティチェック符号のトレリス
Belief propagation の原理
),,,,,( NN yyxxP KK 11
通信システムの結合確率分布
観測値から隠れ変数の確率分布を計算
結合分布の分解→メッセージパッシングに基づく効率のよい計算
∑ ===以外の変数1
1111x
NNN yyyyxxPyxP )',,',,,()'|( KK
ベイジアンネットワーク
A
B D
C E
)(AP)|( ABP )|( ADP
)|( DCP
)|( DEP
)|()|()|()|()(),,,,(
DEPDCPADPABPAPEDCBAP
=
結合分布
確率変数間の依存関係を非巡回有向グラフで表現
マージナライゼーション
)'()',()'|(
cCPcCAPcCAP
==
==
A
B D
C Ec’=
∑ ===EDB
EDcCBAPcCAP,,
),,',,()',(
分配則の利用
∑==
EDBDEPDCPADPABPAP
cCAP
,,)|()|()|()|()(
)',(
})|()|'()|({)|()()',(
∑ ∑∑ ==
=
B EDDEPDcCPADPABPAP
cCAP
A
B D
C Ec’=
より少ない算術計算数で計算可能
• sum-productアルゴリズムの1ラウンドの計算量はタナーグラフ内の辺の数に比例
• タナーグラフの辺の数• LDPC符号:辺の数はO(n)
– 例えばj=3,k=6の場合、辺の数=3n• 最大繰返し数を定めればO(n)
sum-product復号法の復号計算量
sum-product復号法の特徴
• 繰返し回数の上限を定めれば、符号長に対して線形時間で復号処理が可能(シリアル実装)
• 並列処理に向いており、非常に並列度の高い実装が可能(パラレル実装)
• ビット当たりの計算量では、ターボ符号よりも少ない計算量で復号できる
• 繰返しループをアンロールすれば、パイプライン処理に向いている
対数領域sum-product復号法のブロック図
レジスタ
加算器
f関数
乗算器
閾値素子
Part II 密度発展法とイレギュラーLDPC符号
ウォーターフォール領域での性能解析
SN比
ビット誤り率
密度発展法
・どのSN比で急峻に落ちるのか?(スレッショルド)
・反復回数とビット誤り率の関係
メッセージの確率密度関数の変化を捉える
sum-product復号器の構成
変数ノード処理
チェックノード処理
外部値
事前値
外部値
事前値
通信路 LLR
通信路LLRは確率変数なので、外部値も確率変数となる。
22σ
λ nn
y=
n
m
nm 'α
nλ
n
mmnα
mnβmnβ
チェックノード処理変数ノード処理
密度発展法によるメッセージ確率密度関数の計算
nmnBm
nmmn λαβ += ∑∈ \)('
'
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛= ∑∏
∈∈ nmAnmn
nmAnmnmn ff
\)(''
\)('' |)(|)sign( ββα
(3,6)-レギュラーアンサンブル
AWGN通信路
8.0=σ
βの確率密度関数
αの確率密度関数
反復閾値
(3,6)-レギュラーアンサンブル
AWGN通信路
88089.0=thσ
反復回数→∞とするときにビット誤り率が0に収束する通信路パラメータ(標準偏差)の上限値(supremum)
βの確率密度関数
(message)
(3,6)-レギュラーアンサンブル
AWGN通信路
8.0=σ
9.0=σ88089.0=thσ
反復閾値の前後で分布の発展の様相は大きく異なる
イレギュラーLPDC符号
• 各列、各行の重みが一定でないLDPC符号をイレギュラーLDPC符号と呼ぶ。
• 変数ノード次数分布、チェックノード次数分布を最適化することによりレギュラーLDPC符号よりも優れた復号ビット誤り率特性が得られる
• Richardson & Urbanke– 密度発展法– 反復閾値に基づく最適化
ソケットモデルによるイレギュラー2部グラフの構成
ランダムにソケット間を接続する
次数2
次数3
次数4
イレギュラー符号の次数プロファイル
枝の総本数
接続する枝数のメッセージノードに次数ii =λ
枝の総本数
続する枝数のチェックノードに接次数ii =ρ
反復閾値の比較
0.42dB
0.91dB
シャノン限界とのギャップ
σ=0.93171
σ=0.88089
反復閾値
λ2=0.355773λ3=0.299914λ6=0.264094λ6=0.080219ρ6=1.0
λ3=1.0ρ6=1.0
次数プロファイル
1/2レギュラ
ー符号
1/2
符号化率
イレギュラー符号
密度発展法に基づく次数分布の最適化
• 目的関数:反復閾値• 比較的良い次数分布からスタートして山登り法を利用– 次数分布に微少な変化を与え、望ましい変化が起こった方向に進む
– ボトルネックとなっている部分に着目• 他の非線形最適化手法の適用例も
– differential evolution
符号長が有限の場合
密度発展法により復号器の振る舞いを完全に把握することは困難→適用範囲に注意が必要
Part III StructuredイレギュラーLDPC符号
Structured Irregular LDPC符号• 構造を持つイレギュラーLDPC符号
– 符号化の容易化– エラーフロアの改善– グラフ内枝数 v.s. 反復閾値トレードオフ向上– 反復収束特性の改善
• 符号の例– Irregular Repeat Accumulate(IRA)符号
(Jin,Khandekar,McEliece)– Concatenated Tree(CT)符号(Ping, Wu)– Detailedly represented type LDPC符号(Kasai et al.)– Multi edge-type LDPC符号(Richardson,Urbanke)
IRA符号の構成
枝置換
Parity nodes
Check nodes(mod2 sum=0)
Information nodes
通信路に送出通信路に送出
IRA符号の特徴
• 符号化が線形時間で可能– 組織符号
• 次数分布を最適化すれば、イレギュラーLDPC符号と遜色のないBER性能を発揮
• 次数2のノード数を制限することによりエラーフロアの改善
• 密度発展法による解析
1
0
1
information bits
mod 2 addition step
1
0
1
1
1
0
accumulate step
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
IRA符号の符号化プロセス例
長さ4のループ
• 2つの次数2の変数ノードを含む長さ4のループは、エラーフロアの原因となる
1
1
1
1
(.....00001000000000010.....) 重み2の符号語
検査行列
列重み2 列重み2
パリティノードにおけるジグザグ構造
• 次数2のノードについてはBPに悪影響を及ぼす長さ4のループを含まない
• 重み2の符号語を生み出さない(エラーフロアの改善)
• accumulationによる検査ビットの容易な生成
Check nodes(mod2 sum=0)
Parity nodes
multi-edge type LDPC符号• Richardsonによる• 少ない総枝本数で高い反復閾値を実現• エッジがいくつかのエッジタイプで分類• ノードタイプごとに接続するエッジタイプが決まっている
accumulator Permutation box
edge type 1edge type 2RA符号
本講演のまとめ• 本講演では、LDPC符号とその復号法について
– その特徴– 原理– 最近の研究動向
を述べた
• 今後の研究課題– 符号長が数百から数千のオーダで優れた符号を自由に作れるようになりたい
– BPを超える復号法はあるか?– 記憶のある通信路(バースト通信路、PR通信路、ISI通信路など)への拡張
– etc...