Main Content

Turbo Encoder

並列連結符号化スキームを使用したバイナリ データの符号化

  • Turbo Encoder block

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

説明

Turbo Encoder ブロックは、並列連結符号化スキームを使用してバイナリ入力信号を符号化します。この符号化スキームは、2 つの同一の畳み込み符号化器と 1 つの内部インターリーバーを備えています。それぞれの構成符号化器は、テール ビットで個別に終了します。構成符号化器の詳細については、並列連接畳み込み符号化スキームを参照してください。

このアイコンには、利用可能なすべての端子を使用したブロックが表示されています。

Turbo Encoder block with optional ports (IntrInd and OutInd) enabled

端子

入力

すべて展開する

入力メッセージ。長さ L のバイナリ列ベクトルとして指定します。L は符号化されていない入力メッセージの長さです。

データ型: double | int8 | fi(data,0,1)

インターリーバー インデックス。整数の列ベクトルとして指定します。ベクトルの長さは L でなければなりません。L はバイナリ入力メッセージの長さです。ベクトルの各要素は、範囲 [1 L] の整数で一意でなければなりません。インターリーバー インデックスは、符号化器で入力ビットを並べ替えるために使用されるマッピングを定義します。

依存関係

この端子を有効にするには、[Source of interleaver indices] プロパティを Input port に設定します。

データ型: double

完全に符号化されたデータで使用されるビット順序およびパンクチャ用の出力インデックス。整数の列ベクトルとして指定します。ベクトルの要素の値は、すべてのストリームのテール ビットを含む、符号化方式に応じて完全に符号化されたデータを基準とする必要があります。

調整可能: Yes

依存関係

この端子を有効にするには、[Source of output indices] プロパティを Input port に設定します。

データ型: double

出力

すべて展開する

並列連結号語。長さ M のバイナリ列ベクトルとして返されます。ここで、M は並列連結コードワードのビット数です。この出力のデータ型は、In 入力から継承されます。

データ型: double | int8 | fi(data,0,1)

パラメーター

すべて展開する

トレリスを符号化率 K/N の構成畳み込み符号に対するトレリス表現を含む MATLAB® 構造体として指定します。K は入力ビット ストリーム数、N は出力ビット ストリーム数です。

メモ

ターボ符号化器の K は 1 でなければなりません。詳細については、符号化率を参照してください。

トレリス構造体は、関数 poly2trellis を使用して作成するか、手動で作成することができます。この構造体の詳細については、畳み込み符号のトレリス表現のトピックおよび関数 istrellis を参照してください。

トレリス構造体には次のフィールドがあります。

符号化器への入力シンボルの数。2K と等しい整数として指定します。ここで、K は入力ビット ストリームの数です。

符号化器からの出力シンボルの数。2N と等しい整数として指定します。ここで、N は出力ビット ストリームの数です。

符号化器内の状態の数。2 のべき乗として指定します。

現在の状態と現在の入力のすべての組み合わせの次の状態。整数の行列として指定します。行列のサイズは numStates 行 2K 列でなければなりません。

現在の状態と現在の入力のすべての組み合わせの出力。8 進数の行列として指定します。行列のサイズは numStates 行 2K 列でなければなりません。

インターリーバー インデックスのソースを [Property] または [Input port] として指定します。

  • このパラメーターを [Property] に設定すると、ブロックは [Interleaver indices] パラメーターを使用してインターリーバー インデックスを指定します。

  • このパラメーターを [Input port] に設定すると、ブロックは IntrInd 入力端子を使用してインターリーバー インデックスを指定します。

インターリーバー インデックスを整数の列ベクトルとして指定します。ベクトルの長さは L でなければなりません。L はバイナリ入力メッセージの長さです。ベクトルの各要素は、範囲 [1 L] の整数で一意でなければなりません。インターリーバー インデックスは、符号化器で入力ビットを並べ替えるために使用されるマッピングを定義します。

依存関係

このパラメーターを有効にするには、[Source of interleaver indices] パラメーターを [Property] に設定します。

出力インデックスのソースを [Auto][Property]、または [Input port] として指定します。

  • このパラメーターを [Auto] に設定すると、ブロックは 2 番目の組織ストリームをパンクチャしてすべてのテール ビットを含む出力インデックスを計算します。

  • このパラメーターを [Property] に設定すると、ブロックは [Output indices] パラメーターに指定された出力インデックスを使用します。

  • このパラメーターを [Input port] に設定すると、ブロックは [OutInd] 入力端子を使用して出力インデックスを指定します。出力インデックスのベクトルの長さと値および符号化された出力信号は、ブロックを実行するたびに変わる可能性があります。

完全に符号化されたデータで使用されるビット順序およびパンクチャ用の出力インデックスを整数の列ベクトルとして指定します。符号化器からの出力ビット数は、このパラメーターの長さと等しくなります。最大長は、完全に符号化された長さ (L+mLen) × N × 2 を超えてはなりません。ここで、L は入力ベクトルの長さ、mLen はメモリの長さ、N は構成符号化器で符号化されたストリームの数です。

依存関係

このパラメーターを有効にするには、[Source of output indices] パラメーターを [Property] に設定します。

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

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

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

詳細については、シミュレーション モード (Simulink)を参照してください。

ブロックの特性

データ型

Boolean | double | fixed pointa | integer | single

多次元信号

なし

可変サイズの信号

あり

a ufix(1) のみ。

詳細

すべて展開する

参照

[1] Berrou, C., A. Glavieux, and P. Thitimajshima. “Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes.” Proceedings of ICC 93 - IEEE International Conference on Communications, Geneva, Switzerland, May 1993, 1064–70. https://doi.org/10.1109/icc.1993.397441.

[2] Benedetto, S., G. Montorsi, D. Divsalar, and F. Pollara. "A Soft-Input Soft-Output Maximum A Posterior (MAP) Module to Decode Parallel and Serial Concatenated Codes." Jet Propulsion Lab TDA Progress Report, 42–127, (November 1996).

[3] Schlegel, Christian, and Lance Perez. Trellis and Turbo Coding. IEEE Press Series on Digital & Mobile Communication. Piscataway, NJ ; Hoboken, NJ: IEEE Press ; Wiley-Interscience, 2004.

[4] 3GPP TS 36.212. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.

拡張機能

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

バージョン履歴

R2011b で導入