Main Content

General TCM Encoder

バイナリ データの畳み込み符号化と任意のコンスタレーションを用いたマップ

ライブラリ

Modulation の Digital Baseband サブライブラリ内の TCM

  • General TCM Encoder block

説明

General TCM Encoder ブロックは、バイナリ入力信号を畳み込み符号化して、その結果を任意の信号コンスタレーションにマッピングすることにより、トレリス符号変調 (TCM) を実装します。[Signal constellation] パラメーターは、信号コンスタレーション点を分割設定の順にリストします。このパラメーターは、畳み込み符号化器で可能な出力シンボルの数 M をその長さとする複素ベクトルです (すなわち、log2M は符号化率 k/n の畳み込み符号の n に等しい)。

入力信号と出力信号

畳み込み符号化器が符号化率 k/n の符号を示す場合、General TCM Encoder ブロックの入力は、長さ L*k のバイナリ列ベクトルでなくてはなりません (L は正の整数値)。

このブロックは、バイナリ値の入力信号を受け入れます。出力信号は、長さ L の複素列ベクトルです。各ブロック端子でサポートされるデータ型については、サポートされているデータ型を参照してください。

符号化器の指定

畳み込み符号化器の定義には、[Trellis structure] パラメーターを使用します。このパラメーターは MATLAB® 構造体であり、この形式は畳み込み符号のトレリス表現に記載されています。このパラメーター フィールドは次の 2 つの方法で使用できます。

  • 拘束長と生成多項式および、可能な場合はフィードバック接続多項式の使用を符号化器に指定する場合は、[Trellis structure] フィールドで poly2trellis コマンドを使用します。たとえば、符号化器を拘束長 7 で使用し、符号生成多項式を 171 と 133 (8 進数)、フィードバック接続多項式を 171 (8 進数) とするには、[Trellis structure] パラメーターを次のように設定します。

    poly2trellis(7,[171 133],171)

  • トレリス構造体を構成する MATLAB ワークスペースの変数がある場合は、その名前を [Trellis structure] パラメーターに入力します。この方式は、Simulink® ソフトウェアが各シミュレーション開始時におけるダイアグラムの更新に要する時間が、前の項目の使用方法に比べて短いため、高速です。

符号化器レジスタは、すべて 0 の状態で開始されます。符号化器は、シミュレーションの途中でレジスタをすべて 0 の状態にリセットするように設定することができます。そのためには、Operation mode[Reset on nonzero input via port] に設定します。これによりブロックは、Rst というラベルの付いた 2 番目の入力端子を開きます。Rst 端子の信号はスカラー信号です。これが非ゼロの場合、符号化器は 1 番目の入力端子でデータを処理する前にリセットします。

信号コンスタレーション

トレリス符号変調方式は、コンスタレーションを剰余と呼ばれるサブセットに分割して、各剰余のポイント ペア間の最短距離を最大化します。

メモ

[Signal constellation] パラメーターを指定する場合は、コンスタレーション ベクトルが事前に分割設定の順番となっていなければなりません。そうでない場合、ブロックは予期しない結果や準最適結果を返す可能性があります。

たとえば次の図では、8-PSK 信号コンスタレーション点を分割設定の順番とする方法の 1 つを示しています。ツリーの最上部の図は、8-PSK 信号コンスタレーション全体を示し、最下部にある 8 つの図にはそれぞれ 1 つのコンスタレーション点が含まれています。ツリーの各レベルは 2 進シーケンス中の異なるビットに対応し (b3,b2,b1)、各レベルにある個々のブランチはこれらビットの特定の値に対応します。ツリーの最下部にあるシーケンスを用いてコンスタレーション点をリスト化することにより、目的のベクトルが得られます。

exp(2*pi*j*[0 4 2 6 1 5 3 7]/8)

このベクトルは、このブロックの [Signal constellation] パラメーターとして有効な値となっています。

Set Partitioning for 8-PSK

信号コンスタレーションを分割設定の順番とするその他の例については、[1] または、M-PSK TCM Encoder ブロックおよび Rectangular QAM TCM Encoder ブロックのリファレンス ページを参照してください。

符号化ゲイン

マルチフェーズのトレリス符号 [3] に AWGN を併用することで、符号化されていない場合に対して 3 から 6 デシベルの符号化ゲインが達成可能です。

パラメーター

Trellis structure

畳み込み符号化器のトレリス表現を含む MATLAB 構造体です。

Operation mode

[Continuous] モード (既定の設定) の場合、各フレームの最後でブロックは、次のフレームで使用するために、符号化器の状態を保存します。

[Truncated (reset every frame)] モードでは、ブロックは各フレームを個別に取り扱います。つまり、符号化器の状態は、各フレームの開始時にすべて 0 の状態にリセットされます。

[Terminate trellis by appending bits] モードでは、ブロックは各フレームを個別に取り扱います。個々の入力フレームごとに追加のビットを使用することで、符号化器の状態を各フレームの終了時にすべて 0 の状態にリセットします。出力の長さは、x を入力ビットの数、y=n(x+s)/k として、s=constraint length1 で与えられます (複数の拘束長の場合は s =sum(ConstraintLength(i)-1))。ブロックはこのモードを、列ベクトルの入力信号でサポートします。

[Reset on nonzero input via port] モードでは、ブロックに Rst とラベル付けされた追加の入力端子が表示されます。この Rst の入力が非ゼロ値となると、符号化器はすべてゼロの状態にリセットします。

Signal constellation

信号コンスタレーション点を分割設定の順番でリスト化する複素ベクトルです。

Output data type

ブロックの出力データ型には、single または double を指定できます。既定の設定では、ブロックはこれを double に設定します。

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

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

入力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

  • ufix(1)

出力

  • 倍精度浮動小数点

  • 単精度浮動小数点

ペア ブロック

General TCM Decoder

参考文献

[1] Biglieri, E., D. Divsalar, P. J. McLane, and M. K. Simon, Introduction to Trellis-Coded Modulation with Applications, New York, Macmillan, 1991.

[2] Proakis, John G., Digital Communications, Fourth edition, New York, McGraw-Hill, 2001.

[3] Ungerboeck, G., “Channel Coding with Multilevel/Phase Signals”, IEEE Trans. on Information Theory, Vol IT28, Jan. 1982, pp. 55–67.

拡張機能

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

バージョン履歴

R2006a より前に導入