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

TPC Decoder

ターボ積符号 (TPC) 復号化器

  • ライブラリ:
  • Communications Toolbox / Error Detection and Correction / ブロック

説明

TPC Decoder ブロックは、Chase-Pyndiah アルゴリズムを使用して、積符号に対応する軟入力 LLR の 2 次元ターボ積符号 (TPC) 復号化を実行します。積符号は線形ブロック符号の 2 次元の連結です。線形ブロック符号は、2 つの誤りを訂正できるパリティ チェック符号、ハミング符号、または BCH 符号の可能性があります。拡張符号と短縮符号は、各次元で独立して適用することができます。2 次元 TPC 復号化の詳細については、アルゴリズムを参照してください。

有効な符号ペアと各符号ペアの誤り訂正能力の詳細については、コンポーネント符号ペアを参照してください。

端子

入力

すべて展開する

出力

すべて展開する

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

依存関係

この端子を有効にするには、Output number of iterations executed, Output number of iterations executedOutput number of iterations executedOutput number of iterations executed を選択します。

データ型: double

パラメーター

すべて展開する

行の TPC パラメーター

積の符号行列 NR の行数。整数値の一覧は、Extended codes, Extended codesExtended codesExtended codes の設定によって異なります。

短縮メッセージ行列 SR の行数。KR 以下の整数として指定します。このパラメーターを指定する場合は、フルレングスの NR および KR の値を入力して (NR,KR) 符号ペアを指定します。この符号ペアは、(NR–KR+SR,SR) 符号ペアに短縮されます。ここで、

依存関係

このパラメーターを有効にするには、Specify shortened message length, Specify shortened message lengthSpecify shortened message lengthSpecify shortened message length を選択します。

データ型: double

列の TPC パラメーター

積の符号行列 NC の列数。整数値の一覧は、Extended codes, Extended codesExtended codesExtended codes の設定によって異なります。

短縮メッセージ行列 SC の列数。整数として指定します。このパラメーターを指定する場合は、フルレングスの NC および KC の値を入力して (NC,KC) 符号ペアを指定します。この符号ペアは、(NC–KC+SC, SC) 符号ペアに短縮されます。ここで、

依存関係

このパラメーターを有効にするには、Specify shortened message length, Specify shortened message lengthSpecify shortened message lengthSpecify shortened message length を選択します。

データ型: double

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

データ型: double

Maximum number of iterations, Maximum number of iterationsMaximum number of iterationsMaximum number of iterations の前にコンポーネント符号の計算されたシンドロームまたはパリティ チェックがゼロと評価された場合に復号化を終了するには、[Stop iterating when code converges] を選択します。

Iter 出力端子を追加して、実行された TPC 復号化の実際の反復回数を出力するには、このパラメーターを選択します。

実行するシミュレーションのタイプ。[コード生成] または [インタープリター型実行] として指定します。

  • コード生成 –– 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は [インタープリター型実行] よりも速くなります。

  • インタープリター型実行 –– MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、[コード生成] 方式よりも必要な起動時間が短縮されますが、以降のシミュレーションの速度が遅くなります。このモードで、ブロックのソース コードをデバッグできます。

ブロックの特性

データ型

boolean | double | single

多次元信号

no

可変サイズの信号

no

詳細

すべて展開する

アルゴリズム

ターボ積符号 (TPC) は、前方誤り訂正 (FEC) コードとして使用される連結コードの形式です。組織線形ブロック符号などの 2 つ以上のコンポーネント ブロック コードは、TPC を構築するために使用されます。TPC 復号化器は、反復軟入力、軟出力復号化を実行する Chase 復号化と Pyndiah アルゴリズムを使用して積符号のほぼ最適な復号化を実現します。詳細については、[1]および[2]を参照してください。この復号化器は、2 つの線形ブロック符号を使用して、[2]で説明されている反復軟入力、軟出力 2 次元積符号の復号化を実装します。復号化器は、入力信号として、デジタル復調から得られた軟ビット対数尤度比 (LLR) を予期しています。

フルレングスのメッセージの TPC 復号化

TPC 符号化されたフルレングスの入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して復号化されます。行方向の復号化では (NC, KC) 符号ペアを使用し、列方向の復号化では (NR, KR) 符号ペアを使用します。入力ベクトル長は、NR × NC でなければなりません。2 次元 TPC 復号化を実行するために、メッセージとパリティ ビットで構成される入力 LLR の列ベクトルは、NR 行 NC 列の行列に調整されます。

TPC 復号化器は、反復軟入力、軟出力復号化を実行する Chase 復号化と Pyndiah アルゴリズムを使用して積符号のほぼ最適な復号化を実現します。Chase 復号化では、各列または各行で可能な一連の符号語を作成します。Pyndiah アルゴリズムでは、次の復号化ステップで必要な軟情報を計算します。

反復軟入力、軟出力復号化

反復軟入力、軟出力復号化は、ブロック線図に示すように、反復ごとに 2 つの復号化ステップを実行します。

復号化の軟入力は、R(m) = R + α(m)W(m) です。

  • 反復のループ カウンター i は、i = 1 から指定された反復数までインクリメントします。

  • m = 2i – 1 は、復号化ステップのインデックスです。

  • R は、受信 LLR 行列です。

  • R(m) は、m 番目の復号化ステップの軟入力です。

  • W(m) は、m 番目の復号化ステップの入力外部情報です。

  • α(m) = [0,0.2,0.3,0.5,0.7,0.9,1,1, ...] で、α は復号化ステップのインデックスに基づいて適用される重み付けの係数です。高次の復号化ステップでは、α = 1 です。

  • β(m) = [0.2,0.4,0.6,0.8,1,1, ...] で、β は復号化ステップのインデックスに基づいて適用される信頼性の係数です。高次の復号化ステップでは、β = 1 です。

  • D は復号化されたメッセージ ビットを含みます。–1 を 0 に、+1 を 1 にマッピングしてからメッセージ ブロックを列ベクトルに形状変更することで、出力メッセージ ビットが D から求められます。

出力メッセージ ビットは、指定された反復回数が反復された後に求められるか、早期終了が有効になっている場合は符号の収束後に求められます。

TPC 復号化の早期終了

早期終了が有効になっている場合は、行方向および列方向の各復号化ステップで、軟入力の硬判定に対して符号の収束チェックが実行されます。早期終了は、行方向復号化または列方向復号化が収束した後にトリガーされる可能性があります。

すべての行またはすべての列で次の場合に、符号が収束します。

  • シンドロームが、符号 (ハミング符号、拡張ハミング符号、BCH 符号、または拡張 BCH 符号) でゼロと評価される。

  • パリティ チェックが、パリティ チェック コードでゼロと評価される。

報告される反復回数は、現在進行中の反復の値として評価されます。たとえば、3 回目の反復での行方向復号化の後に (2.5 回目の復号化ステップの後に) 符号の収束チェックが満たされた場合、返される反復回数は 3 になります。

短縮形のメッセージの TPC 復号化

TPC 符号化された短縮形の入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して復号化されます。行方向の復号化では (NC – KC + SC, SC) 符号ペアを使用し、列方向の復号化では (NR – KR + SR, SR) 符号ペアを使用します。入力ベクトル長は、(NR – KR + SR) × (NC– KC + SC) でなければなりません。短縮形のメッセージの 2 次元 TPC 復号化を実行するために、短縮形のメッセージとパリティ ビットで構成される入力 LLR の列ベクトルは、(NR – KR + SR) 行 (NC – KC + SC) 列の行列に調整されます。

TPC 復号化器は、受信した短縮形のメッセージ LLR をフルレングスのコードと同様に処理しますが、次が異なります。

  • 短縮形の受信符号語内のビット位置は、-1 に設定されます。

  • Chase アルゴリズムは、最も信頼性の低いビットを選択している間、短縮形のビット位置を考慮しません。

参照

[1] Chase, D. "Class of Algorithms for Decoding Block Codes with Channel Measurement Information." IEEE Transactions on Information Theory, Volume 18, Number 1, January 1972, pp. 170–182.

[2] Pyndiah, R. M. "Near-Optimum Decoding of Product Codes: Block Turbo Codes." IEEE Transactions on Communications. Vol. 46, Number 8, August 1998, pp. 1003–1010.

拡張機能

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

参考

ブロック

関数

R2018b で導入