Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

LDPC Decoder

バイナリ低密度パリティ チェック (LDPC) コードの復号化

  • LDPC Decoder block

ライブラリ:
Communications Toolbox / Error Detection and Correction / Block

説明

LDPC Decoder ブロックは、確率伝播アルゴリズムを使用してバイナリ LDPC 符号を復号化します。この符号は、復調からの軟判定出力 (受信ビットの対数尤度比) として、ブロックに入力されます。このブロックは、パリティ チェック行列でパターンを想定しない一般バイナリ LDPC 符号を復号化します。詳細については、確率伝播復号化を参照してください。

入力と出力は離散時間信号です。出力サンプル時間と入力サンプル時間の比は、次のようになります。

  • コードワードの情報部分のみを復号化する場合は N/K

  • コードワード全体を復号化する場合は 1

N は受信信号の長さで、(0, 231) の範囲でなければなりません。K は符号化されていないメッセージの長さで、N 未満でなければなりません。

このアイコンには、LDPC Decoder ブロックのオプションの端子を含むすべての端子が表示されています。

すべて展開する

LDPC 符号化され、QPSK 変調されたビット ストリームを AWGN チャネル経由で送信します。受信信号を復調および復号化します。誤り統計を計算します。

snr 変数は、[Model Properties]、[Callbacks]InitFcn コールバックを使用して初期化されます。AWGN Channel ブロックの SNR dB パラメーターと QPSK Demodulator Baseband ブロックの Variance パラメーターは、snr 変数を使用して設定を初期化します。

このシミュレーションはデータの 1 つの入力フレームを処理するように構成されています。Error Rate Calculation ブロックは、送信されたバイナリ データ ストリームと LDPC Decoder ブロックによって出力された情報データ ビットを比較します。

For SNR = 1 dB, the error rate is 0.

端子

入力

すべて展開する

対数尤度比。復調からの軟判定出力を含む N 行 1 列の列ベクトルとして指定します。N は変調前の LDPC コードワードのビット数です。各要素は受信ビットの対数尤度比であり、対数尤度比が正であれば、多くの場合、その値は 0 です。先頭 K 要素は、入力メッセージの情報部分に対応します。

データ型: double

出力

すべて展開する

復号化されたデータ。列ベクトルとして返されます。[Decision type] パラメーターは、ブロックが硬判定を出力するか軟判定 (対数尤度比) を出力するかを指定します。

  • [Output format] パラメーターが Information part に設定されている場合、出力には受信コードワードの情報部分のみが含まれます。

  • [Output format] パラメーターが Whole codeword に設定されている場合、出力には対数尤度比ベクトル全体が含まれます。

データ型: double | Boolean

実行した復号化の反復回数。正の整数として返されます。

依存関係

この端子を有効にするには、[Output number of iterations executed] パラメーターを選択します。

データ型: double

入力 LDPC 符号を復号化した後の最終パリティ チェック。(N-K) 行 1 列の列ベクトルとして返されます。N は変調前の LDPC コードワードのビット数です。K は符号化されていないメッセージの長さです。

依存関係

この端子を有効にするには、[Output final parity checks] パラメーターを選択します。

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

パリティ チェック行列。スパースの (N – K) 行 N 列のバイナリ値行列として指定します。N は受信信号の長さで、(0, 231) の範囲でなければなりません。K は符号化されていないメッセージの長さで、N 未満でなければなりません。パリティ チェック行列の最後の (N – K) 列は、2 次のガロア体 gf(2) 内の可逆行列でなければなりません。

sparse(I(:,1),I(:,2),1) のように、パリティ チェック行列の要素 1 の行インデックスと列インデックスを定義する 2 列の非スパース インデックス行列 I としてパリティ チェック行列を指定することもできます。

このパラメーターは数値データ型を受け入れます。このパラメーターをスパース バイナリ行列に設定すると、このパラメーターは Boolean データ型も受け入れます。

既定値では、関数 dvbs2ldpc を使用して、DVB-S.2 規格に規定されている、ハーフ レート LDPC 符号化のスパース パリティ チェック行列を構成します。

例: dvbs2ldpc(R,'indices') は、DVB-S.2 規格のインデックス行列を構成します。ここで、R は符号化率であり、'indices' は、パリティ チェック行列の要素 1 の行インデックスと列インデックスを定義する 2 列の倍精度行列として dvbs2ldpc の出力形式を指定します。

出力値の形式。以下のいずれかの値として指定します。

  • Information part — ブロックは、受信した対数尤度比ベクトルの情報部分のみを含む K 行 1 列の列ベクトルを出力します。K は符号化されていないメッセージの長さです。

  • Whole codeword — ブロックは、対数尤度比ベクトル全体を含む N 行 1 列の列ベクトルを出力します。N は受信信号の長さです。

    N と K は、(N–K) 行 K 列のパリティ チェック行列の次元と一致しなければなりません。

復号化に使用する判定方法。以下のいずれかの値として指定します。

  • Hard decision — ブロックは、データ型 double または boolean の復号化されたデータを出力します。[Output data type] パラメーターを使用して、このデータ型を指定します。

  • Soft decision — ブロックは、データ型 double の対数尤度比を出力します。

出力値のデータ型。[double] または [boolean] として指定します。

依存関係

このパラメーターを有効にするには、[Decision type] パラメーターを [Hard decision] に設定します。

復号化の最大反復回数。正の整数を指定します。

すべてのパリティ チェックが満たされた後、復号化を終了するには、このパラメーターを選択します。一部のパリティ チェックが満たされない場合、[Number of iterations] パラメーターで指定された反復回数後に、復号化が終了します。

[Iter] 出力端子を有効にするには、このパラメーターを選択します。

[ParChk] 出力端子を有効にするには、このパラメーターを選択します。

ブロックの特性

データ型

Boolean | double

多次元信号

なし

可変サイズの信号

なし

アルゴリズム

すべて展開する

このブロックは、メッセージ伝達アルゴリズムとも呼ばれる確率伝播アルゴリズムを使用して、LDPC 復号化を実行します。

参照

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

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2007a で導入

参考

ブロック

オブジェクト

関数