ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

LDPC Decoder

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

ライブラリ

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

説明

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

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

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

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

  • デコードされたビットに対する硬判定または軟判定 (対数尤度比) を出力する

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

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

入力と出力はともに離散時間信号です。出力サンプル時間と入力サンプル時間の比は、情報部分のみがデコードされた場合で、 、符号語全体であれば 1 となります。

デコード アルゴリズム

LDPC デコーダーへの入力は対数尤度比 (LLR) であり、式

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

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

パリティ チェック行列 H:

があると仮定します。 および に対して、インデックス集合は次のようになります。

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

の軟判定出力は です。 の硬判定出力は の場合に 1 で、それ以外は 0 です。

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

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

このアルゴリズムでは、無限数がアルゴリズム式で使用されないように、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] の場合)

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

参考文献

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

参考

| |

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