このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
comm.ConstellationDiagram
IQ 平面における入力信号の表示と解析
説明
comm.ConstellationDiagram
System object™ は、実数および複素数値の浮動小数点信号および固定小数点信号を IQ 平面に表示します。具体的には、IQ 平面は、変調信号の同相成分と直交成分を xy プロットの実軸と虚軸に表示します。この System object を使用して、変調された単一搬送波信号の定性解析と定量解析を実行します。
コンスタレーション ダイアグラム スコープ ウィンドウで、次のことができます。
複数の信号を単一のコンスタレーション ダイアグラムに入力してプロットします。入力信号ごとに基準コンスタレーションを定義するには、
ReferenceConstellation
プロパティを使用します。凡例で信号を選択することによって、個々のチャネルの表示と非表示を切り替えることができます。凡例を表示するには、
ShowLegend
プロパティを使用します。マルチチャネル信号の場合は、行列の列に個々の信号が定義された行列として入力を指定します。個々の信号について計算されたエラー ベクトル振幅 (EVM) と変調誤差比 (MER) の測定値を表示できます。測定値を表示および設定するには、[Measurements] タブで [EVM/MER] を選択します。複数の信号が入力される場合、[Channel] セクションで測定に使用する信号を選択できます。
入力信号のコンスタレーション ダイアグラムを表示するには、次のようにします。
comm.ConstellationDiagram
オブジェクトを作成し、そのプロパティを設定します。関数と同様に、引数を指定してオブジェクトを呼び出します。
System object の機能の詳細については、System object とはを参照してください。
作成
プロパティ
特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release
を使用します。
プロパティが "調整可能" の場合、その値をいつでも変更できます。
プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。
Name
— コンスタレーション ダイアグラム ウィンドウのタイトル
'Constellation Diagram'
(既定値) | 文字ベクトル | string スカラー
コンスタレーション ダイアグラム ウィンドウのタイトル。文字ベクトルまたは string スカラーとして指定します。
調整可能: Yes
データ型: char
| string
ShowTrajectory
— 信号の軌跡をプロットするオプション
false
または 0
(既定値) | true
または 1
信号の軌跡をプロットするオプション。論理値 0
(false
) または 1
(true
) として指定します。このプロパティを true
に設定すると、プロットする信号のコンスタレーション点間の軌跡が表示されます。信号の軌跡を表示するには、[Plot] タブで [Trajectory] を選択します。
調整可能: Yes
データ型: logical
ShowReferenceConstellation
— 基準コンスタレーションを表示するオプション
true
または 1
(既定値) | false
または 0
基準コンスタレーションを表示するオプション。logical 値 1
(true
) または 0
(false
) として指定します。
調整可能: Yes
データ型: logical
EnableMeasurements
— EVM と MER の測定値を計算して表示するオプション
false
または 0
(既定値) | true
または 1
EVM と MER の測定値を計算して表示するオプション。logical 値 0
(false
) または 1
(true
) として指定します。
調整可能: Yes
データ型: logical
NumInputPorts
— 入力信号の数
1
(既定値) | 範囲 [1, 20] の整数
入力信号の数。範囲 [1, 20] の整数として指定します。各入力信号は、マルチチャネル信号でも単一チャネル信号でも、スコープ内で個別のチャネルになります。
チャネルの総数は 20 以下でなければなりません。マルチチャネル入力信号を指定する場合、入力信号の最大数は、定義する入力チャネルの総数によって制限されます。
オブジェクトを呼び出す際は、指定する入力の数と、このプロパティの値が等しくなければなりません。
ヒント
複数の入力信号の ReferenceConstellation
値を定義するには、最初に NumInputPorts
値を設定しなければなりません。
データ型: double
SamplesPerSymbol
— 各シンボルを表現するために使用されるサンプルの数
1
(既定値) | 正の整数
各シンボルを表示するために使用されるサンプル数。正の整数として指定します。プロットが行われる前に、信号はこのプロパティの値でダウンサンプリングされます。
調整可能: Yes
データ型: double
SampleOffset
— 点をプロットする前にスキップするサンプルの数
0
(既定値) | 非負の整数
点をプロットする前にスキップするサンプル数。SamplesPerSymbol
プロパティの値より小さい非負の整数として指定します。この値は、SamplesPerSymbol
が 1 より大きい場合にスキップするサンプル数を指定します。
調整可能: Yes
データ型: double
SymbolsToDisplaySource
— 表示するシンボルのソース
'Input frame length'
(既定値) | 'Property'
表示するシンボルのソース。次のいずれかの値を指定します。
'Input frame length'
— 表示するシンボル数は、入力フレーム長をSamplesPerSymbol
プロパティの値で除算したものと等しくなります。'Property'
—SymbolsToDisplay
プロパティは、表示するシンボルの最大数を指定します。
調整可能: Yes
データ型: char
| string
SymbolsToDisplay
— 表示するシンボルの最大数
256
(既定値) | 正の整数
表示するシンボルの最大数。正の整数として指定します。このプロパティを使用して、長い信号の入力時にコンスタレーション ダイアグラムで表示するシンボルの最大数を制限します。オブジェクトは最新の受信シンボルをプロットします。
調整可能: Yes
依存関係
このプロパティを有効にするには、SymbolsToDisplaySource
を 'Property'
に設定します。
データ型: double
ColorFading
— 退色効果を追加するオプション
false
または 0
(既定値) | true
または 1
退色効果を追加するオプション。論理値 0
(false
) または 1
(true
) として指定します。このプロパティを true
に設定すると、画面上に最初にプロットされた点からの時間間隔が開くにつれて点の色が薄くなります。このアニメーションはオシロスコープ表示に似ています。
調整可能: Yes
データ型: logical
XLimits
— x 軸の範囲
[-1.375 1.375]
(既定値) | 2 要素の行ベクトル
x 軸の範囲。[xmin xmax] 形式の 2 要素の行ベクトルとして指定します。最初の要素が x 軸の最小値であり、2 番目の要素が x 軸の最大値です。
調整可能: Yes
データ型: double
YLimits
— y 軸の範囲
[-1.375 1.375]
(既定値) | 2 要素の行ベクトル
y 軸の範囲。[ymin ymax] 形式の 2 要素の行ベクトルとして指定します。最初の要素が y 軸の最小値であり、2 番目の要素が y 軸の最大値です。
調整可能: Yes
データ型: double
XLabel
— x 軸ラベル
'In-phase Amplitude'
(既定値) | 文字ベクトル | string スカラー
x 軸ラベル。文字ベクトルまたは string スカラーとして指定します。
調整可能: Yes
データ型: char
| string
YLabel
— y 軸ラベル
'Quadrature Amplitude'
(既定値) | 文字ベクトル | string スカラー
y 軸ラベル。文字ベクトルまたは string スカラーとして指定します。
調整可能: Yes
データ型: char
| string
Title
— プロットのタイトル
''
(既定値) | 文字ベクトル | string スカラー
プロットのタイトル。文字ベクトルまたは string スカラーとして指定します。
調整可能: Yes
データ型: char
| string
ShowLegend
— 凡例を表示するオプション
false
または 0
(既定値) | true
または 1
凡例を表示するオプション。論理値 0
(false
) または 1
(true
) として指定します。凡例にリストされる名前は ChannelNames
プロパティで指定されている信号名です。入力信号を指定してオブジェクトを呼び出すまで、凡例は表示されません。
スコープの凡例で信号名をクリックすることで、そのスコープ内の信号の表示と非表示を切り替えることができます。
調整可能: Yes
データ型: logical
ChannelNames
— 入力チャネルの名前
{''}
(既定値) | string または文字ベクトルの cell 配列
入力チャネルの名前。文字列または文字ベクトルの cell 配列として指定します。名前が指定されない場合、オブジェクトはチャネルに Channel 1
、Channel 2
などのラベルを付けます。
これらの名前は凡例、[Measurements] タブ、[Measurements Setting] ペインに表示されます。
例: {'8-QAM','8-PSK'}
は、2 つの入力チャネルの名前をそれぞれ 8-QAM
、8-PSK
に指定します。
調整可能: Yes
データ型: cell
ShowGrid
— グリッドを表示するオプション
true
または 1
(既定値) | false
または 0
コンスタレーション ダイアグラムでグリッドを表示するオプション。logical 値 1
(true
) または 0
(false
) として指定します。
調整可能: Yes
データ型: logical
ShowTicks
— 目盛りラベルを表示するオプション
false
または 0
(既定値) | true
または 1
コンスタレーション ダイアグラムの軸に目盛りラベルを表示するオプション。logical 0
(false
) または logical 1
(true
) として指定します。
調整可能: Yes
データ型: logical
Position
— スコープ ウィンドウの位置とサイズ
画面中央の 600 x 600 ピクセルのウィンドウ (既定値) | 4 要素の行ベクトル
スコープ ウィンドウの位置とサイズ (ピクセル)。[left bottom width height] 形式の 4 要素の行ベクトルとして指定します。ベクトルの最初の 2 つの要素はウィンドウの左下隅の位置を指定し、残りの 2 つの要素はウィンドウのサイズを指定します。位置の既定値は画面の解像度により異なります。
調整可能: Yes
データ型: double
ReferenceConstellation
— 基準コンスタレーション
[0.7071+0.7071i -0.7071+0.7071i -0.7071-0.7071i 0.7070-0.7071i]
(既定値) | 行ベクトル | cell 配列
入力信号の基準コンスタレーション。各入力信号の理想的なコンスタレーション点を定義する行ベクトルまたはベクトルの cell 配列として指定します。入力信号は単一チャネルまたはマルチチャネルです。入力信号ごとに 1 つの基準コンスタレーションを定義できます。
行ベクトルを指定すると、これらの値がすべての入力信号に適用されます。
cell 配列を指定する場合、入力信号のそれぞれに個別の基準コンスタレーションを定義できます。
EVM および MER の測定値では、指定された基準コンスタレーションを使用して、変調された入力信号の信号品質が計算されます。信号品質測定値の詳細については、EVM および MER の測定を参照してください。
調整可能: Yes
依存関係
複数の入力信号の ReferenceConstellation
値を定義するには、最初に NumInputPorts
値を設定しなければなりません。
データ型: double
複素数のサポート: あり
ReferenceColor
— 基準コンスタレーションの表示色
[1 0 0]
(赤) (既定値) | 3 要素の行ベクトル | cell 配列
基準コンスタレーションの表示色。各入力信号の RGB 成分の色を示す 3 要素の行ベクトル、または RGB 成分の色を含む cell 配列として指定します。
調整可能: Yes
データ型: double
ReferenceMarker
— 基準コンスタレーション表示用のマーカー
'+'
(既定値) | 'o'
| '*'
| '.'
| 'x'
| ...
基準コンスタレーション表示用のマーカー。次の表に記載されているいずれかの値を指定します。
マーカー | 説明 | 生成されるマーカー |
---|---|---|
"o" | 円 |
|
"+" | プラス記号 |
|
"*" | アスタリスク |
|
"." | 点 |
|
"x" | 十字 |
|
"_" | 水平線 |
|
"|" | 垂直線 |
|
"square" | 正方形 |
|
"diamond" | 菱形 |
|
"^" | 上向き三角形 |
|
"v" | 下向き三角形 |
|
">" | 右向き三角形 |
|
"<" | 左向き三角形 |
|
"pentagram" | 星形五角形 |
|
"hexagram" | 星形六角形 |
|
"none" | マーカーなし | 該当なし |
調整可能: Yes
MeasurementInterval
— EVM と MER の測定時間ウィンドウの長さ
'Current display'
(既定値) | 'All displays'
| ...
EVM と MER の測定時間ウィンドウの長さ。'Current display'
、'All displays'
、または範囲 [2, SymbolsToDisplay
] の整数として指定します。
詳細については、EVM および MER の測定を参照してください。
調整可能: Yes
データ型: char
| string
| double
EVMNormalization
— EVM 正規化方式
'Average constellation power'
(既定値) | 'Peak constellation power'
EVM 正規化方式。'Average constellation power'
または 'Peak constellation power'
として指定します。詳細については、EVM および MER の測定を参照してください。
調整可能: Yes
使用法
説明
constdiag(
は、最大で N 個の信号を 1 つのコンスタレーション ダイアグラムに表示します。ここで、N は signal1, ..., signalN
)NumInputPorts
プロパティの値です。
入力引数
signal1, ..., signalN
— 信号 (個別の引数)
列ベクトル | 行列
信号。Nsym 行 1 列の列ベクトルまたは Nsym 行 Nchannel 列の行列を構成する個別の引数として指定します。Nsym は信号の数、Nchannel は入力信号チャネルの数です。信号はデータ型と次元が異なる場合があります。
NumInputPorts 入力引数を指定する必要があります。ここで、N は N
プロパティの値です。コンスタレーション ダイアグラムには、最大 20 個の信号チャネルを個別に可視化することも、集合として可視化することもできます。たとえば、入力ごとに 2 チャネル信号を作成する場合は、最大 10 個の入力引数を定義できます。
例: 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)
例
振幅が不均衡な QPSK コンスタレーションの表示
ランダム データ シンボルを 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 コンスタレーションの表示
16-QAM 変調を適用し、AWGN チャネルを使用してデータを送信してから、信号コンスタレーションを表示します。
16-QAM 基準コンスタレーションを作成します。
M = 16; refC = qammod(0:M-1,M);
コンスタレーション基準点と座標軸の範囲を指定して、コンスタレーション ダイアグラム System object を作成します。
constDiagram = comm.ConstellationDiagram('ReferenceConstellation',refC, ... 'XLimits',[-4 4],'YLimits',[-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, ... 'XLimits',[-6 6],'YLimits',[-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);
詳細
EVM および MER の測定
[Measurements] ペインに、EVM および MER 信号品質測定の設定と、指定された信号チャネルの計算結果が表示されます。
EVM — エラー ベクトルは、理想的なコンスタレーション点から実際の受信機での点までの IQ 平面上のベクトルです。EVM の計算には平方根平均二乗 (RMS) 値、ピーク値、平均値が含まれます。
Average constellation power または Peak constellation power メソッドで以下のアルゴリズムを使用して、EVMRMS と EVMAverage を計算し、正規化できます。
EVM 正規化方式 アルゴリズム 平均コンスタレーション電力 平均コンスタレーション電力の正規化の EVMRMS (パーセント単位):
ピーク コンスタレーション電力 ピーク コンスタレーション電力の正規化の EVMRMS (パーセント単位):
[Measurements] ペインに、選択された入力チャネルの RMS およびピーク EVM (パーセンテージ単位) と、平均およびピーク EVM (デシベル単位) が表示されます。デシベル単位の EVM は、EVM (dB) = 10 ‑ log10(EVMMS) = 20 ‑ log10(EVMRMS) によって計算されます。ここで、
Ik は、入力ベクトルの k 番目のシンボルの同相の値です。
Qk は、入力ベクトルの k 番目のシンボルの直交位相の値です。
Ik および Qk は理想 (基準) シンボルの値を表します。 および は測定された (受信した) シンボルの値を表します。
N は入力ベクトルの長さです。
Pavg は、平均コンスタレーション電力の値です。
Pmax は、ピーク コンスタレーション電力の値です。
ベクトルの最大 EVM の値は、 です。ここで、k は長さ N のベクトルで k 番目のシンボルです。
MER — MER は、伝送信号の平均電力とエラー ベクトルの平均電力の比です。[Measurements] ペインに、選択された信号チャネルの平均 MER の測定結果がデシベル単位で表示されます。
MER は、変調された信号の SNR を dB 単位で計算した測定値です。N シンボルに対する MER は次のようになります。
ここで、
Ik は、入力ベクトルの k 番目のシンボルの同相の値です。
Qk は、入力ベクトルの k 番目のシンボルの直交位相の値です。
Ik および Qk は理想 (基準) 値を表します。 および は測定された (受信した) シンボルを表します。
ヒント
単純な信号コンスタレーションのスナップショットを取得するには、関数
scatterplot
を使用します。信号品質を計算する場合、信号軌跡を表示する場合、複数の信号のコンスタレーションを取得する場合、または呼び出し間の状態を維持する場合は、
comm.ConstellationDiagram
System object を使用します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
オブジェクトの呼び出しを外部として扱うことで MEX コード生成をサポートします。スタンドアロン アプリケーション用のコード生成はサポートしません。
MATLAB コード生成における System object (MATLAB Coder)を参照してください。
バージョン履歴
R2013a で導入R2023a: 可変サイズのサポート
このサポートによって、オブジェクトを呼び出すたびに入力信号の長さを変えられるようになりました。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)