Main Content

comm.GeneralQAMTCMModulator

畳み込み符号化器を使用したバイナリ データの符号化および一般的な QAM コンスタレーションへの結果のマッピング

説明

comm.GeneralQAMTCMModulator System object™ は、畳み込み符号を使用してバイナリ入力信号を符号化し、その結果を一般的な直交振幅変調 (QAM) 信号コンスタレーションにマッピングすることにより、トレリス符号化変調 (TCM) を実装します。TCM の詳細については、アルゴリズムのセクションを参照してください。

畳み込み符号を使用してバイナリ データを符号化し、その結果を一般的な QAM コンスタレーションにマッピングするには、次のようにします。

  1. comm.GeneralQAMTCMModulator オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

gqamtcmMod = comm.GeneralQAMTCMModulator は、一般的な QAM TCM 変調器 System object gqamtcmMod を作成します。このオブジェクトは、畳み込み符号化器を使用してバイナリ入力信号を符号化し、その結果を一般的な QAM コンスタレーションにマッピングします。

gqamtcmMod = comm.GeneralQAMTCMModulator(trellis) はさらに、TrellisStructure プロパティを trellis に設定します。

gqamtcmMod = comm.GeneralQAMTCMModulator(___,Name=Value) は、前述の任意の構文を使用して一般的な QAM TCM 変調器 System object を作成し、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、comm.GeneralQAMTCMModulator(TerminationMethod="Continuous") は、符号化フレームの終了方法を "Continuous" に設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

畳み込み符号のトレリス構造体。畳み込み符号のトレリス表現を含む MATLAB® 構造体として指定します。トレリス構造体が有効かどうかを確認するには、関数 istrellis を使用します。

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

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

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

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

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

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

データ型: struct

符号化フレームの終了方法。次のオプションのいずれかとして指定します。

  • "Continuous" — オブジェクトは入力ベクトルの最後に符号化器の状態を保持して、次の入力ベクトルで使用できるようにします。

  • "Truncated" — オブジェクトは各入力ベクトルを個別に扱います。各入力ベクトルの開始時に符号化器はすべて 0 の状態にリセットされます。

  • "Terminated" — オブジェクトは各入力ベクトルを個別に扱います。ただし、オブジェクトは、個々の入力ベクトルごとに追加のビットを使用することで、符号化器をベクトルの終了時にすべて 0 の状態にリセットします。符号化率 K/N の符号に対して、畳み込み符号化器は、N×(L+S)K で指定された長さのベクトルを出力します。ここで、S = constraintLength – 1 (または、拘束長が複数ある場合は S = sum(constraintLength(i) – 1)) です。L は入力の長さを示します。

変調器リセット入力。logical の 0 (false) または 1 (true) として指定します。追加の入力を使用してオブジェクトを呼び出すには、このプロパティを true に設定します。リセット入力値が非ゼロの場合、符号化器の内部状態は初期条件にリセットされます。

依存関係

このプロパティを有効にするには、TerminationMethod プロパティを "Continuous" に設定します。

信号コンスタレーション。畳み込み符号化器の結果をマッピングするために使用される信号コンスタレーション内の点をリストした複素数ベクトルとして指定します。コンスタレーションは分割設定の順序で指定しなければなりません。コンスタレーション ベクトルの長さは、一般的な QAM TCM 変調器オブジェクトの畳み込み符号化器に対し想定される入力シンボル数に等しくなければなりません。この値は、符号化率 K/N の畳み込み符号では 2N に相当します。既定値は、8-PSK 信号コンスタレーション点を分割設定の順序とすることに対応します。

データ型: single | double
複素数のサポート: あり

出力のデータ型。"double" または "single" として指定します。

使用法

説明

Y = gqamtcmMod(X) は、一般的な QAM TCM を入力データ X に適用し、トレリス符号化された一般的な直交振幅変調データ Y を返します。

Y = gqamtcmMod(X,R) は、非ゼロのリセット信号 R を入力するときに、一般的な QAM TCM 変調器オブジェクトの符号化器をすべて 0 の状態にリセットします。この構文は、ResetInputPort プロパティの値を true に設定した場合に適用されます。

入力引数

すべて展開する

入力バイナリ データ。列ベクトルとして指定します。X のデータ型は、数値、logical、または語長 1 の符号なし固定小数点 (fi オブジェクト) でなければなりません。符号化率 K/N の符号の場合、入力ベクトル X の長さは、正の整数 Q に対して K×Q (L に等しい) でなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi

リセット信号。logical 0 (false)、logical 1 (true)、または数値スカラーとして指定します。

依存関係

この引数を使用するには、ResetInputPort プロパティを true に設定します。

データ型: double | logical

出力引数

すべて展開する

出力データ。列ベクトルとして返されます。Y の長さは Q です。出力データのデータ型は、OutputDataType プロパティによって異なります。

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

任意の 4 点コンスタレーションの QAM TCM 変調を使ってデータを変調します。変調データの散布図を表示します。

バイナリ データを作成します。

data = randi([0 1],1000,1);

生成多項式 [171 133] と任意の 4 点コンスタレーションをもつトレリス構造 { ejπ/4, ejπ/2, ej3π/4, ej3π/2 } を使用して、QAM TCM 変調を実行します。

trellis = poly2trellis(7,[171 133]);
gqamtcmMod = comm.GeneralQAMTCMModulator(trellis, ...
    Constellation=exp(pi*1i*[1 2 3 6]/4));

データを変調してプロットします。

modData = gqamtcmMod(data);
scatterplot(modData);

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

アルゴリズム

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

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

Set Partitioning for 8-PSK

参照

[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. 4th ed. New York: McGraw Hill, 2001.

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

拡張機能

バージョン履歴

R2012a で導入