メインコンテンツ

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

comm.ConstellationDiagram

R2026a

IQ 平面における入力信号の表示と解析

説明

comm.ConstellationDiagram System object™ は、実数および複素数値の浮動小数点信号および固定小数点信号を IQ 平面に表示します。具体的には、IQ 平面は、変調信号の同相成分と直交成分を xy プロットの実軸と虚軸に表示します。この System object を使用して、変調された単一搬送波信号の定性解析と定量解析を実行します。

Constellation diagram displaying QPSK, 16-QAM, and 8-DPSK signals and signal quality measurements

コンスタレーション ダイアグラム スコープ ウィンドウで、次のことができます。

  • 複数の信号を単一のコンスタレーション ダイアグラムに入力してプロットします。入力信号ごとに基準コンスタレーションを定義するには、ReferenceConstellation プロパティを使用します。

  • 凡例で信号を選択することによって、個々のチャネルの表示と非表示を切り替えることができます。凡例を表示するには、ShowLegend プロパティを使用します。マルチチャネル信号の場合は、行列の列に個々の信号が定義された行列として入力を指定します。

  • 個々の信号について計算されたエラー ベクトル振幅 (EVM) と変調誤差比 (MER) の測定値を表示できます。測定値を表示および設定するには、[Measurements] タブで [EVM/MER] を選択します。複数の信号が入力される場合、[Channel] セクションで測定に使用する信号を選択できます。

入力信号のコンスタレーション ダイアグラムを表示するには、次のようにします。

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

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

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

作成

説明

constdiag = comm.ConstellationDiagram は、実数および複素数値の浮動小数点信号および固定小数点信号を IQ 平面に表示するコンスタレーション ダイアグラム System object を返します。

例

constdiag = comm.ConstellationDiagram(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば comm.ConstellationDiagram(SamplesPerSymbol=10) は、プロットするシンボルごとに 10 個のサンプルを指定します。

例

プロパティ

すべて展開する

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

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

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

コンスタレーション ダイアグラム ウィンドウのタイトル。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

データ型: char | string

信号の軌跡をプロットするオプション。論理値 0 (false) または 1 (true) として指定します。このプロパティを true に設定すると、プロットする信号のコンスタレーション点間の軌跡が表示されます。信号の軌跡を表示するには、[Plot] タブで [Trajectory] を選択します。

調整可能: Yes

データ型: logical

基準コンスタレーションを表示するオプション。logical 値 1 (true) または 0 (false) として指定します。

調整可能: Yes

データ型: logical

EVM と MER の測定値を計算して表示するオプション。logical 値 0 (false) または 1 (true) として指定します。

調整可能: Yes

データ型: logical

入力信号の数。範囲 [1, 20] の整数として指定します。各入力信号は、マルチチャネル信号でも単一チャネル信号でも、スコープ内で個別のチャネルになります。

チャネルの総数は 20 以下でなければなりません。マルチチャネル入力信号を指定する場合、入力信号の最大数は、定義する入力チャネルの総数によって制限されます。

オブジェクトを呼び出す際は、指定する入力の数と、このプロパティの値が等しくなければなりません。

ヒント

複数の入力信号の ReferenceConstellation 値を定義するには、最初に NumInputPorts 値を設定しなければなりません。

データ型: double

シンボルの構成

各シンボルを表示するために使用されるサンプル数。正の整数として指定します。プロットが行われる前に、信号はこのプロパティの値でダウンサンプリングされます。

調整可能: Yes

データ型: double

点をプロットする前にスキップするサンプル数。SamplesPerSymbol プロパティの値より小さい非負の整数として指定します。この値は、SamplesPerSymbol が 1 より大きい場合にスキップするサンプル数を指定します。

調整可能: Yes

データ型: double

表示するシンボルのソース。次のいずれかの値を指定します。

  • 'Input frame length' — 表示するシンボル数は、入力フレーム長を SamplesPerSymbol プロパティの値で除算したものと等しくなります。

  • 'Property' — SymbolsToDisplay プロパティは、表示するシンボルの最大数を指定します。

調整可能: Yes

データ型: char | string

表示するシンボルの最大数。正の整数として指定します。このプロパティを使用して、長い信号の入力時にコンスタレーション ダイアグラムで表示するシンボルの最大数を制限します。オブジェクトは最新の受信シンボルをプロットします。

調整可能: Yes

依存関係

このプロパティを有効にするには、SymbolsToDisplaySource を 'Property' に設定します。

データ型: double

表示の構成

退色効果を追加するオプション。論理値 0 (false) または 1 (true) として指定します。このプロパティを true に設定すると、画面上に最初にプロットされた点からの時間間隔が開くにつれて点の色が薄くなります。このアニメーションはオシロスコープ表示に似ています。

調整可能: Yes

データ型: logical

x 軸と y 軸の範囲。2 要素の行ベクトルとして指定します。最初の要素が軸の最小値であり、2 番目の要素が軸の最大値です。

  • スコープ ウィンドウが正方形である場合、X 軸と Y 軸の両方の範囲が AxesLimits と同じになります。

  • スコープ ウィンドウが矩形である場合、小さい方の軸の範囲が AxesLimits と同じになります。大きい方の座標軸は、1:1 のアスペクト比を維持するために自動的に調整されます。

調整可能: Yes

データ型: double

x 軸ラベル。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

データ型: char | string

y 軸ラベル。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

データ型: char | string

プロットのタイトル。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

データ型: char | string

凡例を表示するオプション。論理値 0 (false) または 1 (true) として指定します。凡例にリストされる名前は ChannelNames プロパティで指定されている信号名です。入力信号を指定してオブジェクトを呼び出すまで、凡例は表示されません。

スコープの凡例で信号名をクリックすることで、そのスコープ内の信号の表示と非表示を切り替えることができます。

調整可能: Yes

データ型: logical

入力チャネルの名前。文字列または文字ベクトルの cell 配列として指定します。名前が指定されない場合、オブジェクトはチャネルに Channel 1、Channel 2 などのラベルを付けます。

これらの名前は凡例、[Measurements] タブ、[Measurements Setting] ペインに表示されます。

例: {'8-QAM','8-PSK'} は、2 つの入力チャネルの名前をそれぞれ 8-QAM、8-PSK に指定します。

調整可能: Yes

データ型: cell

コンスタレーション ダイアグラムでグリッドを表示するオプション。logical 値 1 (true) または 0 (false) として指定します。

調整可能: Yes

データ型: logical

コンスタレーション ダイアグラムの軸に目盛りラベルを表示するオプション。logical 0 (false) または logical 1 (true) として指定します。

調整可能: Yes

データ型: logical

スコープ ウィンドウの位置とサイズ (ピクセル)。[left bottom width height] 形式の 4 要素の行ベクトルとして指定します。ベクトルの最初の 2 つの要素はウィンドウの左下隅の位置を指定し、残りの 2 つの要素はウィンドウのサイズを指定します。位置の既定値は画面の解像度により異なります。

調整可能: Yes

データ型: double

基準コンスタレーション

入力信号の基準コンスタレーション。各入力信号の理想的なコンスタレーション点を定義する行ベクトルまたはベクトルの cell 配列として指定します。入力信号は単一チャネルまたはマルチチャネルです。入力信号ごとに 1 つの基準コンスタレーションを定義できます。

  • 行ベクトルを指定すると、これらの値がすべての入力信号に適用されます。

  • cell 配列を指定する場合、入力信号のそれぞれに個別の基準コンスタレーションを定義できます。

EVM および MER の測定値では、指定された基準コンスタレーションを使用して、変調された入力信号の信号品質が計算されます。信号品質測定値の詳細については、EVM および MER の測定を参照してください。

調整可能: Yes

依存関係

複数の入力信号の ReferenceConstellation 値を定義するには、最初に NumInputPorts 値を設定しなければなりません。

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

基準コンスタレーションの表示色。各入力信号の RGB 成分の色を示す 3 要素の行ベクトル、または RGB 成分の色を含む cell 配列として指定します。

調整可能: Yes

データ型: double

基準コンスタレーション表示用のマーカー。次の表に記載されているいずれかの値を指定します。

マーカー説明生成されるマーカー
"o"円

Sample of circle marker

"+"プラス記号

Sample of plus sign marker

"*"アスタリスク

Sample of asterisk marker

"."点

Sample of point marker

"x"十字

Sample of cross marker

"_"水平線

Sample of horizontal line marker

"|"垂直線

Sample of vertical line marker

"square"正方形

Sample of square marker

"diamond"菱形

Sample of diamond marker

"^"上向き三角形

Sample of upward-pointing triangle marker

"v"下向き三角形

Sample of downward-pointing triangle marker

">"右向き三角形

Sample of right-pointing triangle marker

"<"左向き三角形

Sample of left-pointing triangle marker

"pentagram"星形五角形

Sample of pentagram marker

"hexagram"星形六角形

Sample of hexagram marker

"none"マーカーなし該当なし

調整可能: Yes

測定の設定

EVM と MER の測定時間ウィンドウの長さ。'Current display'、'All displays'、または範囲 [2, SymbolsToDisplay] の整数として指定します。

詳細については、EVM および MER の測定を参照してください。

調整可能: Yes

データ型: char | string | double

EVM 正規化方式。'Average constellation power' または 'Peak constellation power' として指定します。詳細については、EVM および MER の測定を参照してください。

調整可能: Yes

使用法

説明

constdiag(signal1, ..., signalN) は、最大で N 個の信号を 1 つのコンスタレーション ダイアグラムに表示します。ここで、N は NumInputPorts プロパティの値です。

例

入力引数

すべて展開する

信号。Nsym 行 1 列の列ベクトルまたは Nsym 行 Nchannel 列の行列を構成する個別の引数として指定します。Nsym は信号の数、Nchannel は入力信号チャネルの数です。信号はデータ型と次元が異なる場合があります。

NumInputPorts 入力引数を指定する必要があります。ここで、N は N プロパティの値です。コンスタレーション ダイアグラムには、最大 20 個の信号チャネルを個別に可視化することも、集合として可視化することもできます。たとえば、入力ごとに 2 チャネル信号を作成する場合は、最大 10 個の入力引数を定義できます。

このオブジェクトは可変サイズの入力を受け入れます。オブジェクトがロックされた後は、シミュレーション中に信号のフレーム サイズ (行数) を変更できますが、チャネル数 (列数) は一定のままでなければなりません。詳細については、Variable-Size Signals in Codeを参照してください。

例: sig1_1、sig1_2、および sig2 が単一チャネルの列ベクトル信号の場合、[sig1_1,sig1_2],sig2 は 2 つの信号を指定します。最初の [sig1_1,sig1_2] は (2 つの列ベクトルを 1 つの行列に連結して作成される) 2 チャネル信号を指定します。2 番目の信号 sig2 は単一チャネルを指定します。

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

オブジェクト関数

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

release(obj)

すべて展開する

showスコープ ウィンドウの表示
hideスコープ ウィンドウを非表示にする
isVisibleスコープ ウィンドウの可視性の決定
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

例

すべて折りたたむ

ランダム データ シンボルを QPSK 変調して、信号に振幅の不均衡を適用します。ノイズの多いチャネルを通して信号を渡します。結果のコンスタレーションを表示します。

コンスタレーション ダイアグラム System object を作成します。このオブジェクトの既定の基準コンスタレーションは QPSK であるため、追加のプロパティを設定する必要はありません。

constDiagram = comm.ConstellationDiagram;

ランダム データ シンボルを生成してから、QPSK 変調を適用します。

data = randi([0 3],1000,1);
modData = pskmod(data,4,pi/4);

振幅の不均衡を変調信号に適用します。

txSig = iqimbal(modData,5);

送信信号を AWGN チャネル経由で渡してから、コンスタレーション ダイアグラムを表示します。データ点は理想的な位置から移動しています。

rxSig = awgn(txSig,20);
constDiagram(rxSig)

16-QAM 変調を適用し、AWGN チャネルを使用してデータを送信してから、信号コンスタレーションを表示します。

16-QAM 基準コンスタレーションを作成します。

M = 16;
refC = qammod(0:M-1,M);

コンスタレーション基準点と座標軸の範囲を指定して、コンスタレーション ダイアグラム System object を作成します。

constDiagram = comm.ConstellationDiagram(ReferenceConstellation=refC, ...
    AxesLimits=[-4 4]);

ランダムな 16 値データ シンボルを生成します。

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

16-QAM 変調を適用します。

sym = qammod(data,M);

AWGN チャネルを通して、変調された信号を渡します。

rcv = awgn(sym,15);

コンスタレーション ダイアグラムを表示します。

constDiagram(rcv)

多入力およびマルチチャネルの変調信号のコンスタレーションを表示します。最初の入力で 2 つの 16-QAM 信号を使用し、2 番目の入力で 1 つの 8-PSK 信号を使用して、マルチチャネル信号をプロットします。

16-QAM および 8-PSK の基準コンスタレーションを作成します。

M = 16;
refQAM = qammod(0:M-1,M);
S = 8;
refPSK = pskmod(0:S-1,S,pi/8);

コンスタレーション ダイアグラム System object を作成し、2 つの入力信号の基準コンスタレーションを指定します。このオブジェクトは、個々のマルチチャネル信号入力のすべてのチャネルに単一の基準コンスタレーションを適用しますが、個々の入力信号では別個の基準コンスタレーションを指定できます。

constDiag = comm.ConstellationDiagram(2, ...
    ReferenceConstellation={refQAM,refPSK}, ...
    ShowLegend=true, ...
    AxesLimits=[-6 6],...
    ChannelNames={'16-QAM, SNR 10 dB','16-QAM, SNR 20 dB','8-PSK'});

ランダム データ シンボルを生成し、シンボルを変調して、2 つの異なる SNR をもつ AWGN を追加して 2 つの受信信号を得ます。SNR の値として 10 dB と 20 dB を使用します。

d = randi([0 M-1],1000,1);
dQAM = qammod(d,M);
rcv1_1 = awgn(dQAM,10);
rcv1_2 = awgn(dQAM,20);
d = randi([0 S-1],1000,1);
dPSK = pskmod(d,S,pi/8);
rcv2 = awgn(dPSK,20);

最初の入力では、2 つの受信 16-QAM 信号を連結して、マルチチャネル信号を作成します。2 番目の入力では単一チャネルの 8-PSK 信号を使用します。

多入力およびマルチチャネル信号のコンスタレーション ダイアグラムを表示します。

constDiag([rcv1_1,rcv1_2],rcv2);

詳細

すべて展開する

ヒント

  • 単純な信号コンスタレーションのスナップショットを取得するには、関数 scatterplot を使用します。

  • 信号品質を計算する場合、信号軌跡を表示する場合、複数の信号のコンスタレーションを取得する場合、または呼び出し間の状態を維持する場合は、comm.ConstellationDiagram System object を使用します。

拡張機能

すべて展開する

バージョン履歴

R2013a で導入

すべて展開する