ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

LDPC Decoder

パリティ チェック行列で指定されるバイナリ低密度パリティ チェック コードの復号化

ライブラリ

Error Correction and Detection の Block サブライブラリ

説明

このブロックは、低密度パリティ チェック (LDPC) 符号 (スパース パリティ チェック行列およびシャノン限界に近いパフォーマンスを達成できる長いブロック長をもつ線形の誤り制御符号) のデコーディング用にメッセージ伝播アルゴリズムを実装しています。

LDPC Decoder ブロックは次のように設計されています。

  • パリティ チェック行列でパターンを想定しない一般バイナリ LDPC 符号を復号化する

  • ユーザー指定回数または全パリティ チェックが満たされるまで反復する

  • 復号化されたビットに対する硬判定または軟判定 (対数尤度比) を出力する

((n – k) と n はそれぞれパリティ チェック行列の行と列の数です。

このブロックは、double 型の入力信号として、実数値の n×1 列ベクトルを受け入れます。各要素は受信ビットの対数尤度比です (多くの場合、対数尤度比が正であれば 0) 。先頭 k 要素は、符号語の情報部分に対応します。

入力と出力はともに離散時間信号です。出力サンプル時間と入力サンプル時間の比は、情報部分のみが復号化された場合は n/k、符号語全体が復号化された場合は 1 となります。

復号化アルゴリズム

LDPC 復号器への入力は対数尤度比 (LLR) L(ci) であり、次の式で定義されます。

L(ci)=log(Pr(ci=0|channel output for ci)Pr(ci=1|channel output for ci))

ここで、ci は、送信符号語 c の i 番目のビットです。アルゴリズムには、L(rji)L(qij)L(Qi) の 3 つの主要な変数があります。L(qij)L(qij)=L(ci) として初期化されます。それぞれの反復に対して、以下の式を使用して L(rji)L(qij)L(Qi) を更新します。

L(rji)=2atanh(iVj\itanh(12L(qij)))

L(qij)=L(ci)+jCi\jL(rji)

L(Qi)=L(ci)+jCiL(rji)

ここで、インデックス集合、Ci\j および Vj\i は以下の例に示すように選択されます。

次のようなパリティチェック行列 H があるとします。

H=(11110000001000111000010010011000100101010001001011)

i=5j=3 に関して、インデックス集合は次のようになります。

それぞれの反復の最後で、L(Qi) は送信ビット ci"事後" 対数尤度比の更新された推計値を提供します。

ci の軟判定出力は L(Qi) です。ci の硬判定出力は L(Qi)<0 の場合に 1 で、それ以外は 0 です。

プロパティ DoParityCheck'no' に設定されている場合、アルゴリズムは [Number of iterations] パラメーターで指定されている回数だけ反復します。

プロパティ DoParityCheck'yes' に設定されている場合、アルゴリズムは各反復の終わりにパリティ チェック式 (HcT=0) を検証して、式が満たされた場合に停止します。

このアルゴリズムでは、無限数がアルゴリズム式で使用されないように、atanh(1) は 19.07 に、atanh(-1) は -19.07 に設定されます。これらの数字は、MATLAB が tanh(19.07) に 1 を、tanh(-19.07) に -1 を出力することから、有限値で演算を行うために選択されます。

ダイアログ ボックス

Parity-check matrix

このパラメーターは、実数の次元 n -k 行 n 列 (ここで n >k > 0) をもつスパース行列を受け入れます。非ゼロのすべての要素は 1 でなければなりません。n の値の上限は、231-1 です。

Output format

出力は、実数値の列ベクトルの信号です。オプションは [Information part][Whole codeword] です。

  • このパラメーターを Information part に設定した場合、出力は k 要素を含みます。

  • このパラメーターを whole codeword に設定した場合、出力は n 要素を含みます。

Decision type

オプションは [Hard decision][Soft decision] です。

  • このパラメーターを Hard decision とした場合、出力は復号化されたビット (double または boolean 型) です。

  • このパラメーターを Soft decision とした場合、出力は対数尤度比 (double 型) です。

Output data type

このパラメーターは [Decision type][Hard decision] に設定した場合のみ表示されます。

オプションは [boolean][double] です。

Number of iterations

任意の正の整数に指定できます。

Stop iterating when all parity checks are satisfied

これを有効にすると、ブロックは個々の反復後にパリティ チェックが満たされたかを検証し、すべてが満たされていた場合に停止します。

Output number of iterations executed

これを選択した場合は、ブロックに出力端子が 1 つ作成されます。

Output final parity checks

これを選択した場合は、ブロックに出力端子が 1 つ作成されます。

サポートされているデータ型

端子サポートされているデータ型
In
  • 倍精度浮動小数点

Out
  • 倍精度浮動小数点

  • Boolean ([Decision type][Hard decision] の場合)

このブロックを使用する例を確認するには、コマンド ラインで「commdvbs2」と入力します。

参考文献

[1] Gallager, Robert G., Low-Density Parity-Check Codes, Cambridge, MA, MIT Press, 1963.

この情報は役に立ちましたか?