Main Content

dsp.SpectrumAnalyzer

(削除予定) 時間領域信号の周波数スペクトルの表示

  • dsp.SpectrumAnalyzer オブジェクトは将来のリリースで削除される予定です。代わりに spectrumAnalyzer MATLAB® オブジェクトを使用してください。

  • dsp.SpectrumAnalyzer オブジェクトの CCDFMeasurements プロパティは将来のリリースで削除される予定です。CCDF 測定値を計算して可視化するには、代わりに powermeter オブジェクトを使用してください。

既存のコードを置換する方法の詳細については、互換性の考慮事項を参照してください。

説明

Spectrum Analyzer System object™ は、時間領域信号の周波数スペクトルを表示します。このスコープは可変サイズの入力をサポートするため、入力フレーム サイズを変更することができます。フレーム サイズは入力ベクトルの最初の次元です。入力チャネル数は一定でなければなりません。

スペクトル アナライザーで信号のスペクトルを表示するには、次のようにします。

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

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

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

作成

説明

scope = dsp.SpectrumAnalyzer は Spectrum Analyzer System object を作成します。このオブジェクトは、実数値と複素数値の浮動小数点信号と固定小数点信号の周波数スペクトルを表示します。

scope = dsp.SpectrumAnalyzer(ports) は Spectrum Analyzer オブジェクトを作成し、NumInputPorts プロパティを ports の値に設定します。

scope = dsp.SpectrumAnalyzer(Name,Value) は、1 つ以上の名前と値のペアを使用してプロパティを設定します。各プロパティ名を一重引用符で囲みます。

プロパティ

すべて展開する

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

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

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

よく使用される項目

入力端子の数。正の整数として指定します。個別の入力から入ってくる各信号はスコープで個別のチャネルになります。このプロパティの値と同じ入力の数でスコープを呼び出さなければなりません。

可視化する入力信号の領域。"Time" または "Frequency" として指定します。時間領域信号を可視化する場合、スペクトル アナライザーは Method プロパティで指定されたアルゴリズムに基づいて信号を周波数スペクトルに変換します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブで、[入力領域][時間][周波数] に設定します。

データ型: char | string

スペクトル タイプ。次のいずれかとして指定します。

"Power" — パワー スペクトル

"Power density" — パワー スペクトル密度。パワー スペクトル密度は、1 Hz の帯域幅に正規化されたスペクトルの振幅の二乗です。

"RMS" — 平方根平均二乗。平方根平均二乗は平均二乗の平方根を示します。電圧や電流の信号の周波数を表示する場合に、このオプションを使用します。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブで、[スペクトル] を選択します。[スペクトル] をクリックして、[パワー][パワー密度]、または [RMS] を選択します。

これらのオプションを有効にするには、[推定] タブで [入力領域][時間] に設定します。

データ型: char | string

スペクトル タイプを "Spectrum""Spectrogram" または "Spectrum and spectrogram" のいずれかとして指定します。

  • "Spectrum" — パワー スペクトルを表示します。

  • "Spectrogram" — 時間の経過に沿って周波数成分を表示します。スペクトログラムの各ラインは 1 つのピリオドグラムです。時間は表示の下部から上部に向かってスクロールします。直近のスペクトログラムの更新は表示の下部にあります。

  • "Spectrum and Spectrogram" — デュアル表示でスペクトルとスペクトログラムの両方を表示します。

調整可能: Yes

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブで、[スペクトル][スペクトログラム] またはその両方を選択します。

データ型: char | string

入力信号のサンプル レートを Hz 単位で有限の数値スカラーとして指定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[サンプル レート (Hz)] を設定します。

スペクトル推定法。次のいずれかとして指定します。

  • "Filter bank" –– 解析フィルター バンクを使用してパワー スペクトルを推定します。ウェルチ法と比較すると、この手法はノイズ フロアは低く、周波数分解能は高く、スペクトル漏れは低く、更新ごとに必要なサンプル数が少なくて済みます。

  • "Welch" –– 平均修正ピリオドグラムのウェルチ法を使用します。

これらの方法の詳細については、アルゴリズムを参照してください。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブで、[メソッド][フィルター バンク][ウェルチ] に設定します。

このパラメーターを有効にするには、[推定] タブで [入力領域][時間] に設定します。

データ型: char | string

両側スペクトルをプロットするオプション。次のいずれかとして指定します。

  • true — 両側スペクトル推定を計算およびプロットします。入力信号が複素数値の場合、このプロパティを true に設定しなければなりません。

  • false — 片側スペクトル推定を計算およびプロットします。このプロパティを false に設定する場合、入力信号は実数値でなければなりません。

    このプロパティを false に設定すると、スペクトル アナライザーはパワーの折り返しを行います。0 とナイキスト周波数を除き、y 軸の値はこのプロパティを true に設定した場合の振幅の 2 倍になります。片側パワー スペクトル密度 (PSD) には、DC からナイキスト レートの半分までの周波数範囲内での信号の合計パワーが含まれます。詳細については、pwelch を参照してください。

調整可能: Yes

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブまたは [スペクトログラム] タブ (有効になっている場合) をクリックします。[トレース オプション] セクションで [両側スペクトル] を選択して、両側スペクトル推定を計算およびプロットします。

データ型: logical

周波数表示のスケール。次のいずれかとして指定します。

  • "Linear" — 線形スケールを使用して x 軸に周波数を表示します。"Linear" の設定を使用するためには、PlotAsTwoSidedSpectrum プロパティも true に設定しなければなりません。

  • "Log" — 対数スケールを使用して x 軸に周波数を表示します。"Log" の設定を使用するためには、PlotAsTwoSidedSpectrum プロパティも false に設定しなければなりません。

調整可能: Yes

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブまたは [スペクトログラム] タブ (有効になっている場合) をクリックします。[スケール] セクションで [周波数スケール][線形] または [対数] に設定します。

[周波数スケール][対数] に設定するには、[スペクトル] タブまたは [スペクトログラム] タブ (有効になっている場合) の [トレース オプション] セクションで [両側スペクトル] チェック ボックスをオフにします。[両側スペクトル] チェック ボックスをオンにした場合、[周波数スケール][線形] に設定しなければなりません。

データ型: char | string

詳細設定

周波数スパン モード。次のいずれかとして指定します。

  • "Full" –– スペクトル アナライザーは、ナイキスト周波数範囲全体のスペクトルを計算およびプロットします。

  • "Span and center frequency" –– スペクトル アナライザーは、Span プロパティと CenterFrequency プロパティで指定された区間のスペクトルを計算し、プロットします。

  • "Start and stop frequencies" –– スペクトル アナライザーは、StartFrequency プロパティと StopFrequency プロパティで指定された区間のスペクトルを計算し、プロットします。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブをクリックします。[周波数オプション] セクションで、[周波数スパン][フル][スパンと中心周波数] または [開始周波数と終了周波数] に設定します。

[周波数スパン] を有効にするには、[入力領域][時間] に設定します。

データ型: char | string

Spectrum Analyzer がスペクトルを計算してプロットする周波数スパン (Hz 単位) を指定します。このプロパティと CenterFrequency プロパティで定義されるスパン全体が、ナイキスト周波数範囲の範囲内になければなりません。

調整可能: Yes

依存関係

このプロパティを有効にするには、FrequencySpan"Span and center frequency" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[全周波数スパン] チェック ボックスをオフにし、[スパン] を設定します。

スペクトルが計算される周波数範囲の開始点。実数のスカラーとしてヘルツ数で指定します。このプロパティと StopFrequency で定義されるスパン全体が、ナイキスト周波数範囲の範囲内になければなりません。

調整可能: Yes

依存関係

このプロパティを有効にするには、FrequencySpan"Start and stop frequencies" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[全周波数スパン] をオフにし、[スパン][FStart] に変更します。[FStart (Hz)] を設定します。

スペクトルが計算される周波数範囲の終了点。実数のスカラーとしてヘルツ数で指定します。このプロパティと StartFrequency プロパティで定義されるスパン全体が、ナイキスト周波数範囲の範囲内になければなりません。

調整可能: Yes

依存関係

このプロパティを有効にするには、FrequencySpan"Start and stop frequencies" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[全周波数スパン] をオフにし、[スパン][FStart] に変更します。[FStop (Hz)] を設定します。

Spectrum Analyzer がスペクトルを計算してプロットする範囲の中心周波数 (Hz 単位) を実数のスカラーとして指定します。Span とこのプロパティで定義される周波数スパン全体が、ナイキスト周波数範囲の範囲内になければなりません。

調整可能: Yes

依存関係

このプロパティを有効にするには、FrequencySpan"Span and center frequency" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン] で、[全周波数スパン] をオフにし、[CF (Hz)] を設定します。

Spectrum Analyzer の周波数分解能の方法を指定します。

  • "RBW" - RBWSource プロパティと RBW プロパティは、アナライザーの周波数分解能 (Hz 単位) を制御します。FFT 長は指定した RBW 値を達成した結果のウィンドウの長さまたは 1024 のどちらか大きいほうの値になります。

  • "WindowLength" - Method プロパティが "Welch" に設定されている場合にのみ適用されます。WindowLength プロパティは、周波数分解能を制御します。FFT 点の数は、FrequencyResolutionMethod プロパティが "WindowLength" の場合にのみ制御できます。

  • "NumFrequencyBands" - Method プロパティが "Filter Bank" に設定されている場合にのみ適用されます。FFTLengthSource プロパティと FFTLength プロパティは、周波数分解能を制御します。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[RBW (Hz)] ドロップダウンを選択して周波数分解能の方法を設定します。

データ型: char | string

分解能帯域幅 (RBW) のソースを "Auto" または "Property" のいずれかとして指定します。

  • "Auto" — スペクトル アナライザーは定義された周波数スパン全体に 1024 の RBW 間隔が必ず存在するようにスペクトル推定分解能を調整します。

  • "Property"RBW プロパティを使って分解能帯域幅を直接指定します。

調整可能: Yes

依存関係

このプロパティを有効にするには、次のいずれかを設定します。

  • InputDomain"Time"FrequencyResolutionMethod"RBW" に設定する。

  • InputDomain"Frequency" にする。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[RBW (Hz)] を設定します。

データ型: char | string

RBW は Spectrum Analyzer のスペクトル分解能を制御します。分解能帯域幅を Hz 単位で実数の正のスカラーとして指定します。指定した周波数スパンに少なくとも 2 つの RBW 間隔が必ず存在するようになる値を指定しなければなりません。したがって、スパン全体と RBW の比率は、次の式で表すように 2 より大きくなければなりません。

spanRBW>2

FrequencySpan プロパティの設定方法に基づいて、スパン全体をさまざまな方法で指定することができます。

依存関係

有効にするには、以下を設定します。

  • RBWSource"Property" に設定する。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[RBW (Hz)] を設定します。

スペクトル推定の計算に使用するウィンドウの長さをサンプル数で指定して、周波数分解能を制御します。ウィンドウの長さは 2 より大きい整数のスカラーでなければなりません。

調整可能: Yes

依存関係

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

  • FrequencyResolutionMethod"WindowLength" に設定し、ウィンドウの長さ設定に基づいて周波数分解能を制御する。

  • Method"Welch" に設定する。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[RBW (Hz)] ドロップダウンを [ウィンドウの長さ] に変更します。

  • "Auto" - FFT 長を WindowLength プロパティで指定されたウィンドウの長さまたは 1024 のどちらか大きいほうの値に設定します。

  • "Property" - FFTLength プロパティを使用した FFT 点の数。FFTLengthWindowLength よりも大きくなければなりません。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[RBW (Hz)] オプションの横に数値を入力するか [自動] を選択します。

データ型: char | string

Spectrum Analyzer がスペクトル推定を計算するために使用する FFT 長を指定します。

FrequencyResolutionMethod"RBW" の場合、FFT 長は指定された分解能帯域幅値を得るために必要なウィンドウの長さまたは 1024 のどちらか大きいほうの値に設定されます。

調整可能: Yes

依存関係

このプロパティを使用するには、以下に該当しなければなりません。

  • FrequencyResolutionMethod"WindowLength" または "NumFrequencyBands" に設定されている。

  • FFTLengthWindowLength 以上。

  • FFTLengthSource"Property" に設定されている。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[RBW (Hz)] オプションの横に数値を入力するか [自動] を選択します。

各周波数帯域のフィルター タップまたはフィルター係数の数を指定します。この数値は正の偶数の整数でなければなりません。この値は、ポリフェーズ分岐あたりのフィルター係数の数に対応しています。フィルター係数の合計数は NumTapsPerBand + FFTLength に等しくなります。

依存関係

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

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[帯域ごとのタップ数] を設定します。

  • "Auto" — 周波数ベクトルは入力の長さから計算されます。周波数ベクトルを参照してください。

  • "Property" — 周波数ベクトルとしてカスタム ベクトルを入力します。

依存関係

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

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[周波数入力オプション] セクションで、[周波数 (Hz)] を設定します。

データ型: char | string

カスタム周波数ベクトル。単調増加ベクトルとして指定します。このベクトルによって、表示の x 軸が決定されます。ベクトルは単調増加し、入力信号のフレーム サイズと同じ長さでなければなりません。

調整可能: Yes

依存関係

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

  • InputDomain"Frequency" にする。

  • FrequencyVectorSource"Property" にする。

このようにします。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブをクリックします。[領域] セクションで、[周波数 (Hz)] を入力信号のフレーム サイズと等しい長さの単調増加ベクトルに設定します。

[周波数 (Hz)] を有効にするには、[入力領域][周波数] に設定します。

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

バッファーされた現在と直前のデータ セグメント間のオーバーラップ率。実数のスカラー値として指定します。オーバーラップにより、スペクトル推定の計算に使用されるウィンドウ セグメントが作成されます。この値は 0 以上 100 未満でなければなりません。

調整可能: Yes

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[ウィンドウ オプション] セクションで、[オーバーラップ (%)] を設定します。

スペクトル推定器のウィンドウ関数を指定します。以下の表に事前に設定されたウィンドウを示します。詳細については、Signal Processing Toolbox™ ドキュメンテーションの対応する関数リファレンスへのリンクを参照してください。

ウィンドウ オプション対応する Signal Processing Toolbox 関数
"Rectangular"rectwin
"Chebyshev"chebwin
"Flat Top"flattopwin
"Hamming"hamming
"Hann"hann
"Kaiser"kaiser
"Blackman-Harris"blackmanharris

独自のスペクトル推定ウィンドウを設定するには、このプロパティを "Custom" に設定し、CustomWindow プロパティでカスタム ウィンドウ関数を指定します。

調整可能: Yes

依存関係

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

  • InputDomain"Time" に設定する。

  • Method"Welch" に設定する。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブをクリックします。[ウィンドウ オプション] セクションで [ウィンドウ] を設定します。

[ウィンドウ] を有効にするには、スペクトル アナライザーのツールストリップの [推定] タブで、[入力領域][時間] に設定し、[メソッド][ウェルチ] に設定します。

データ型: char | string

カスタム ウィンドウ関数の名前。文字ベクトルまたは string スカラーとして指定します。カスタム ウィンドウ関数の名前は MATLAB パス上になければなりません。Signal Processing Toolbox バージョンのウィンドウ関数で使用可能な追加のプロパティを使用してウィンドウをカスタマイズする場合は、このプロパティを使用します。

調整可能: Yes

カスタム ウィンドウ関数を定義して使用します。

function w = my_hann(L)
    w = hann(L, 'periodic')
end

scope.Window = 'Custom';
scope.CustomWindow = 'my_hann'

依存関係

このプロパティを使用するには、Window"Custom" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブをクリックします。[ウィンドウ オプション] セクションの [ウィンドウ] で、カスタム ウィンドウ関数の名前を入力します。

データ型: char | string

ウィンドウのサイドローブ減衰 (dB 単位)。値は 45 以上でなければなりません。

調整可能: Yes

依存関係

このプロパティを有効にするには、Window"Chebyshev" または "Kaiser" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[ウィンドウ オプション] セクションで、[減衰 (dB)] を設定します。

周波数領域入力の単位を選択します。このプロパティによって、SpectrumUnits プロパティで異なる表示単位を選択した場合にスペクトル アナライザーは周波数データをスケーリングできます。

依存関係

このオプションは、InputDomainFrequency に設定されている場合にのみ使用できます。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[周波数入力オプション] セクションで、[入力単位] を設定します。

データ型: char | string

Spectrum Analyzer が電力値を表示する単位を指定します。

調整可能: Yes

依存関係

使用できるスペクトルの単位は SpectrumType プロパティで指定した値によって異なります。

InputDomainSpectrumType指定可能な SpectrumUnits
"Time""Power""dBm", "dBW", "dBFS", "Watts"
"Power density""dBm/Hz", "dBW/Hz","dBFS/Hz", "Watts/Hz"
"RMS""dBV", "Vrms"
"Frequency""Auto", "dBm", "dBV", "dBW", "Vrms", "Watts"

InputDomain プロパティを "Frequency" に設定し、SpectrumUnits プロパティを "Auto" に設定した場合、スペクトル アナライザーはスペクトル単位が InputUnits プロパティで指定された入力単位と等しいものと仮定します。InputDomain"Time" に設定し、SpectrumUnits"Auto" 以外のオプションに設定した場合、スペクトル アナライザーは InputUnits で指定された単位を SpectrumUnits で指定された単位に変換します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブをクリックします。[スケール] セクションで [スペクトルの単位] を設定します。

データ型: char | string

dBFS スケーリング係数のソースを "Auto" または "Property" のいすれかとして指定します。

  • "Auto" –– スペクトル アナライザーは入力データに基づいてスケーリング係数を調整します。

  • "Property" –– FullScale プロパティを使用してフル スケールのスケーリング係数を指定します。

調整可能: Yes

依存関係

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

  • InputDomain"Time" に設定する

  • SpectrumType"Power" または "Power density" に設定する

  • SpectrumUnits"dBFS" または "dBFS/Hz" (スペクトル タイプを "Power density" に設定している場合) に設定する

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブをクリックします。[スケール] セクションで、[フル スケール][自動] または正のスカラーに設定します。

[フル スケール] を有効にするには、次のようにします。

  • [アナライザー] タブで、スペクトルのタイプを [パワー] または [パワー密度] に設定する。

  • [推定] タブで、[入力領域][時間] を設定する。

  • [スペクトル] タブで、[スペクトルの単位][dBFS] または [dBFS/Hz] (スペクトルのタイプを [パワー密度] に設定している場合) に設定する。

データ型: char | string

dBFS のフル スケールに対して実数の正のスカラーを指定します。

調整可能: Yes

依存関係

このオプションを有効にするには、次のように設定します。

  • SpectrumUnits"dBFS" に設定する。

  • FullScaleSource"Property" に設定する。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[フル スケール]Auto に設定するか、数値を入力します。

平均化方法。次のいずれかとして指定します。

  • "VBW" — ビデオ帯域幅の手法。オブジェクトは、ローパス フィルターを使用して、トレースを平滑化し、ノイズを減少させます。VBWSource プロパティと VBW プロパティを使用して VBW 値を指定します。

  • "Exponential" — サンプルの加重平均。オブジェクトは、指数的に減衰する忘却係数で重み付けされたサンプルの平均を計算します。ForgettingFactor プロパティを使用して重み付け忘却係数を指定します。

詳細については、平均化方法を参照してください。

調整可能: Yes

依存関係

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

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [推定] タブをクリックします。[平均化] セクションで、[平均化方法][VBW] または [指数] に設定します。

[平均化方法] を有効にするには、[入力領域][時間] に設定します。

データ型: char | string

Spectrum Analyzer は、最後の N 個のパワー スペクトル推定のランニング平均を計算することで現在のパワー スペクトル推定を計算します。このプロパティは N を定義します。

調整可能: Yes

依存関係

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

依存関係

このプロパティは AveragingMethod"Running" である場合にのみ適用されます。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[平均] を設定します。

指数の重み付けの値を 0 より大きい 1 以下のスカラー値として指定します。

依存関係

このプロパティは AveragingMethod"Exponential" である場合にのみ適用されます。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[忘却係数] を設定します。

スコープがパワー レベルの計算で基準として使用する負荷。

調整可能: Yes

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[参照負荷 (オーム)] を設定します。

  • スカラー — 同じ周波数オフセットをすべてのチャネルに適用します。文字ベクトルとしてヘルツ数で指定します。

  • ベクトル — 各チャネルに特定の周波数オフセットを適用します。周波数のベクトルを指定します。ベクトルの長さは入力チャネル数と同じでなければなりません。

    周波数軸の値はこのプロパティで指定される値でオフセットされます。スパン全体がナイキスト周波数範囲の範囲内になければなりません。FrequencySpan プロパティの設定方法に基づいて、スパン全体をさまざまな方法で制御することができます。

調整可能: Yes

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[オフセット (Hz)] を設定します。

スペクトログラム

スペクトログラムがプロットされるチャネルを、[1 N] の範囲内にある実数の正のスカラー整数として指定します。ここで、N は入力チャネルの数です。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrogram" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[スペクトログラム オプション] セクションで、[チャネル] を選択します。

各スペクトログラム ラインの時間分解能のソースを "Auto" または "Property" のいずれかとして指定します。TimeResolution プロパティは、さまざまな周波数分解能方法の時間分解能と時間分解能のプロパティを示します。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrogram" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトログラム] タブをクリックします。[時間オプション] セクションで、[時間分解能 (秒)]Auto に設定するか、正のスカラーを入力します。

[時間分解能 (秒)] を有効にするには、[アナライザー] タブで [スペクトログラム] を選択します。

データ型: char | string

各スペクトログラム ラインの時間分解能を秒単位で表される正のスカラーとして指定します。

スペクトル アナライザーは、周波数分解能の方法、RBW、および時間分解能のプロパティに基づいて時間分解能の値を決定します。

メソッドRBW時間分解能結果として得られる時間分解能 (秒単位)
ウェルチまたはフィルター バンク自動自動1/RBW
ウェルチまたはフィルター バンク自動手動入力1/時間分解能 Hz
ウェルチまたはフィルター バンク手動入力自動1/RBW 秒
ウェルチまたはフィルター バンク手動入力手動入力達成可能な最小時間分解能である 1/RBW 以上。スペクトル アナライザーは、複数のスペクトル推定値を 1 つのスペクトログラム ラインに結合して、目的の時間分解能を取得します。内挿を使用して、1/RBW の整数倍でない時間分解能の値を取得します。

調整可能: Yes

依存関係

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

  • ViewType"Spectrogram" または "Spectrum and spectrogram" に設定する。

  • TimeResolutionSource"Property に設定する。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[スペクトログラム オプション] セクションの [時間分解能 (s)] ボックスで、数値を入力します。

スペクトログラムの時間範囲のソース。"Auto" または "Property" として指定します。このプロパティを "Auto" に設定すると、スペクトログラムは常に 100 のスペクトログラム ラインを表示します。このプロパティを "Property" に設定すると、スペクトログラムは TimeSpan プロパティで秒単位で指定する持続時間を使用します。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrogram" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトログラム] タブをクリックします。[時間オプション] セクションで、[時間範囲 (秒)]Auto に設定するか、正のスカラーを入力します。

データ型: char | string

スペクトログラム表示の時間範囲を秒単位で指定します。時間範囲は、スペクトルの更新に必要なサンプル数の持続時間の少なくとも 2 倍に設定しなければなりません。

調整可能: Yes

依存関係

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

  • ViewType"Spectrogram" または "Spectrum and spectrogram" に設定する。

  • TimeSpanSource"Property" に設定する。

スコープ ウィンドウの使用

[スペクトル設定] を開きます。[スペクトログラム オプション] セクションの [時間範囲 (秒)] ボックスで、数値を入力します。

測定

測定値が取得されるチャネル。0 より大きく、100 以下である実数の正の整数として指定します。指定できる最大値は入力信号内のチャネル (列) 数です。

調整可能: Yes

スコープ ウィンドウの使用

[ツール][測定値][トレース選択] 設定をクリックします。

データ型: double

スペクトル マスクの上側のラインと下側のラインをスペクトル プロットに表示するかどうかを指定します。このプロパティは SpectralMaskSpecification オブジェクトからのプロパティを使用し、スペクトル マスクを有効にして構成します。

調整可能: Yes

スコープ ウィンドウの使用

[スペクトル マスク] ペインを開いて、[設定] オプションを変更します。

ピークの検出測定。PeakFinderConfiguration オブジェクトとして指定します。ピークの検出を有効にして、最大ピーク値を計算し、計算された最大ピーク値を表示します。PeakFinderConfiguration プロパティはすべて調整可能です。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [測定値] タブをクリックし、[ピーク] セクションでピークの検出の測定を変更します。

[測定値] タブは、[アナライザー] タブで [スペクトル] を選択していると表示されます。

カーソルの測定。CursorMeasurementsConfiguration オブジェクトとして指定します。波形カーソルを表示するには、カーソルの測定を有効にします。CursorMeasurementsConfiguration プロパティはすべて調整可能です。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [測定値] タブをクリックし、[カーソル] セクションでカーソルの測定を変更します。

[測定値] タブは、[アナライザー] タブで [スペクトル] を選択していると表示されます。

チャネル測定を有効にして、占有帯域幅または隣接チャネル電力比を計算して表示します。ChannelMeasurements プロパティは ChannelMeasurementsSpecification プロパティを使用します。

ChannelMeasurementsSpecification プロパティは、以下のとおりです。

  • Algorithm –– 表示する測定データのタイプ。"Occupied BW" または "ACPR" のいずれかで指定します。

    既定値: "Occupied BW"

  • FrequencySpan –– 周波数スパン モード。"Span and center frequency" または "Start and stop frequencies" のいずれかで指定します

    既定値: "Span and center frequency"

  • Span –– チャネル測定を計算する周波数スパン。実数の正のスカラーで指定します (Hz 単位)。このプロパティは、FrequencySpan プロパティを "Span and center frequency" に設定した場合に適用されます。

    既定値: 2000 Hz

  • CenterFrequency –– チャネル測定を計算するスパンの中心周波数。実数スカラーで指定します (Hz 単位)。このプロパティは、FrequencySpan プロパティを "Span and center frequency" に設定した場合に適用されます。

    既定値: 0 Hz

  • StartFrequency –– チャネル測定を計算する周波数の開始点。実数スカラーで指定します (Hz 単位)。このプロパティは、FrequencySpan プロパティを "Start and stop frequencies" に設定した場合に適用されます。

    既定値: -1000 Hz

  • StopFrequency –– チャネル測定を計算する周波数の終了点。実数スカラーで指定します (Hz 単位)。このプロパティは、FrequencySpan プロパティを "Start and stop frequencies" に設定した場合に適用されます。

    既定値: 1000 Hz

  • PercentOccupiedBW –– 占有帯域幅を計算するパワー比率。正の実数スカラーとして指定します。このプロパティは、Algorithm プロパティを "Occupied BW" に設定した場合に適用されます。

    既定値: 99

  • NumOffsets –– 隣接チャネル ペアの数。実数の正の整数として指定します。このプロパティは、Algorithm プロパティを "ACPR" に設定した場合に適用されます。

    既定値: 2

  • AdjacentBW –– 隣接するチャネル帯域幅。正の実数のスカラーとして指定します。このプロパティは、Algorithm プロパティを "ACPR" に設定した場合に適用されます。

    既定値: 1000

  • FilterShape –– メイン チャネルと隣接チャネル両方のフィルターの形状。"None""Gaussian"、または "RRC" で指定します。このプロパティは、Algorithm プロパティを "ACPR" に設定した場合に適用されます。

    既定値: "None"

  • FilterCoeff –– チャネル フィルター係数。01 の間の実数スカラーとして指定します。このプロパティは、Algorithm プロパティを "ACPR" に設定し、FilterShape プロパティを "Gaussian" または "RRC" のいずれかに設定した場合に適用されます。

    既定値: 0.5

  • ACPROffsets –– メイン チャネルの中心周波数に対する隣接チャネルの周波数。NumOffsets で指定したオフセット ペアの数に等しい長さの実数ベクトルとして指定します。このプロパティは、Algorithm プロパティを "ACPR" に設定した場合に適用されます。

    既定値: [2000 3500]

  • Enable –– チャネル測定を有効にするには、このプロパティを true に設定します。有効な値は true または false です。

    既定値: false

ChannelMeasurementsSpecification プロパティはすべて調整可能です。

スコープ ウィンドウの使用

[チャネル設定] ペイン () を開いて、[測定] オプションと [チャネル設定] オプションを変更します。

歪みの測定。DistortionMeasurementsConfiguration オブジェクトとして指定します。高調波歪みと相互変調歪みを計算して表示するには、歪みの測定を有効にします。DistortionMeasurementsConfiguration プロパティはすべて調整可能です。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [測定値] タブをクリックし、[歪み] セクションで歪みの測定を変更します。

[測定値] タブは、[アナライザー] タブで [スペクトル] を選択していると表示されます。

可視化

スコープ ウィンドウに表示する表題。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

データ型: char | string

ピクセル単位でのスペクトル アナライザー ウィンドウの位置。スコープ ウィンドウのサイズと位置によって [左 下 幅 高さ] という形式の 4 要素の double ベクトルとして指定します。このプロパティの値を変更することで、スコープ ウィンドウを画面上の特定の位置に配置できます。

既定の設定では、ウィンドウは幅 800 ピクセル、高さ 450 ピクセルで画面中央に表示されます。厳密な中心座標は画面の解像度により異なります。

調整可能: Yes

通常のトレースを表示するプロット タイプ。"Line" または "Stem" として指定します。"通常の" トレースとは、フリーラン スペクトル推定を表示するトレースのことです。

調整可能: Yes

依存関係

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

  • ViewType"Spectrum" または "Spectrum and spectrogram" に設定する。

  • PlotNormalTracetrue に設定する。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックし、[構成] セクションに移動し、[設定] をクリックします。[スペクトル アナライザーの設定] ウィンドウの [表示とラベル][プロット タイプ][ライン] または [ステム] に設定します。

[プロット タイプ] を有効にするには、以下が必要です。

  • [アナライザー] タブの [ビュー] セクションで [スペクトル] を選択する。

  • [スペクトル] タブの [トレース オプション] セクションで [通常のトレース] チェック ボックスを有効にする。

データ型: char | string

通常のトレースの表示を削除するには、このプロパティを false に設定します。これらのトレースはフリーラン スペクトル推定を表示します。スペクトル アナライザーは、このプロパティを false に設定している場合でも、スペクトル計算を継続します。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブをクリックし、[トレース オプション] セクションで [通常のトレース] チェック ボックスをオンにします。

[通常のトレース] チェック ボックスを有効にするには、[アナライザー] タブで [スペクトル] を選択します。

データ型: logical

各入力チャネルの最大ホールド スペクトルを計算し、プロットするには、このプロパティを true に設定します。各周波数ビンでの最大ホールド スペクトルは、すべてのパワー スペクトル推定の最大値を維持することによって計算されます。このプロパティを切り替えると、Spectrum Analyzer で最大ホールドの計算がリセットされます。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブをクリックし、[トレース オプション] セクションで [最大ホールド トレース] チェック ボックスをオンにします。

[最大ホールド トレース] チェック ボックスを有効にするには、[アナライザー] タブで [スペクトル] を選択します。

データ型: logical

各入力チャネルの最小ホールド スペクトルを計算し、プロットするには、このプロパティを true に設定します。各周波数ビンでの最小ホールド スペクトルは、すべてのパワー スペクトル推定の最小値を維持することによって計算されます。このプロパティを切り替えると、Spectrum Analyzer で最小ホールドの計算がリセットされます。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [スペクトル] タブをクリックし、[トレース オプション] セクションで [最小ホールド トレース] チェック ボックスをオンにします。

[最小ホールド トレース] チェック ボックスを有効にするには、[アナライザー] タブで [スペクトル] を選択します。

データ型: logical

表示タイトル。文字ベクトルまたは string スカラーとして指定します。

調整可能: Yes

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[構成] セクションで [設定] をクリックします。開いた [スペクトル アナライザーの設定] ウィンドウの [表示とラベル][タイトル] を入力します。

データ型: char | string

y 軸ラベル。文字ベクトルまたは string スカラーとして指定します。スペクトル アナライザーは、このラベルを y 軸の左に表示します。

このプロパティの値に関係なく、スペクトル アナライザーは常にパワー単位を SpectrumUnits の値のいずれかとして表示します。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[構成] セクションで [設定] をクリックします。開いた [スペクトル アナライザーの設定] ウィンドウの [表示とラベル][Y ラベル] を入力します。

[Y ラベル] を有効にするには、[アナライザー] タブで [スペクトル] を選択します。

データ型: char | string

凡例を表示するフラグ。true または false として指定します。入力名を付けた凡例を表示するには、このプロパティを true に設定します。

凡例を使用して、表示する信号を制御します。スコープの凡例で、信号名をクリックするとそのスコープ内の信号が非表示になります。信号を表示する場合は、信号名を再度クリックします。信号を 1 つだけ表示する場合は、信号名を右クリックします。すべての信号を表示するには Esc キーを押します。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType プロパティを "Spectrum" または "Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。凡例を表示するには、[構成] セクションで [凡例] をクリックします。

[凡例] を有効にするには、[アナライザー] タブで [スペクトル] を選択します。

データ型: logical

入力データ内のチャネルの名前。文字ベクトルの cell 配列または string の配列として指定します。このプロパティで指定した名前は、次の場所に表示されます。

  • 凡例

  • [スペクトル アナライザーの設定][色とスタイル] セクション

  • [測定値] タブと [チャネル測定] タブ

チャネル名を指定しない場合、スペクトル アナライザーはチャネルに Channel 1Channel 2 などの名前を付けます。

調整可能: Yes

依存関係

チャネル名を表示するには、ShowLegendtrue に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。凡例を表示するには、[構成] セクションで [凡例] をクリックします。

データ型: char

グリッドを表示するフラグ。true または false として指定します。このプロパティを true に設定すると、プロットでグリッド ラインが表示されます。

調整可能: Yes

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[構成] セクションで [設定] をクリックします。表示された [スペクトル アナライザーの設定] ウィンドウの [表示とラベル][グリッドの表示] を選択します。

データ型: logical

y 軸の範囲。[ymin ymax] という形式の 2 要素の数値ベクトルとして指定します。y 軸の範囲の単位は SpectrumUnits プロパティによって異なります。

例: scope.YLimits = [-10,20]

調整可能: Yes

依存関係

  • このプロパティを有効にするには、ViewType プロパティを "Spectrum" または "Spectrum and spectrogram" に設定します。

  • この単位は SpectrumUnits プロパティに直接依存します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[構成] セクションで [設定] をクリックします。開いた [スペクトル アナライザーの設定] ウィンドウの [表示とラベル][Y 軸の範囲] を入力します。

[Y 軸の範囲] を有効にするには、[アナライザー] タブで [スペクトル] を選択します。

スペクトログラムの色の範囲。[colorMin colorMax] という形式の 2 要素の数値ベクトルとして指定します。色の範囲の単位は SpectrumUnits プロパティに直接依存します。

例: scope.ColorLimits = [-10,20]

調整可能: Yes

依存関係

  • このプロパティを有効にするには、ViewType プロパティを "Spectrogram" または "Spectrum and spectrogram" に設定します。

  • この単位は SpectrumUnits プロパティに直接依存します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[構成] セクションで [設定] をクリックします。開いた [スペクトル アナライザーの設定] ウィンドウの [表示とラベル][色の範囲] を入力します。

[色の範囲] を有効にするには、[アナライザー] タブで [スペクトログラム] を選択します。

座標軸のスケーリング モード。次のいずれかとして指定します。

  • "Auto" — シミュレーションの実行中および実行後に、データを近似させるためにスコープが座標軸をスケーリングします。

  • "Manual" — スコープは座標軸を自動スケーリングしません。

  • "OnceAtStop" — シミュレーションが停止したときに、スコープは座標軸をスケーリングします。

  • "Updates" — 特定回数の表示更新後に、スコープは座標軸をスケーリングします。更新回数は AxesScalingNumUpdates プロパティを使用して決定されます。

調整可能: Yes

データ型: char | string

座標軸のレイアウト。"Vertical" または "Horizontal" のいずれかとして指定します。垂直方向のレイアウトでは、スペクトルがスペクトログラムの上に表示されます。水平方向のレイアウトでは、2 つのビューが並べて表示されます。

調整可能: Yes

依存関係

このプロパティを有効にするには、ViewType"Spectrum and spectrogram" に設定します。

スコープ ウィンドウの使用

スペクトル アナライザーのツールストリップの [アナライザー] タブをクリックします。[スペクトル][スペクトログラム] を選択します。[構成] セクションで [レイアウト] を選択し、更新します。

データ型: char | string

使用法

説明

scope(signal) は、Spectrum Analyzer の信号のスペクトルを更新します。

scope(signal1,signal2,...,signalN) は、Spectrum Analyzer で複数の信号を表示します。この信号は同じフレーム長でなければなりませんが、チャネル数は異なっていてもかまいません。この NumInputPorts プロパティを設定して、複数の入力信号を有効にしなければなりません。

入力引数

すべて展開する

可視化する 1 つ以上の入力信号を dsp.SpectrumAnalyzer で指定します。信号のチャネル数は異なっていてもかまいませんが、フレーム長は同じでなければなりません。

例: scope(signal1, signal2)

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

オブジェクト関数

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

release(obj)

すべて展開する

generateScriptGenerate MATLAB script to create scope with current settings
getMeasurementsDataGet the current measurement data displayed on the spectrum analyzer
getSpectralMaskStatusGet test results of current spectral mask
getSpectrumDataSave spectrum data shown in spectrum analyzer
isNewDataReadyCheck spectrum analyzer for new data
showDisplay scope window
hideHide scope window
isVisibleDetermine visibility of scope
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

シミュレーションを最初から再開するには、reset を呼び出してスコープ ウィンドウの表示をクリアします。release の呼び出し後に reset を呼び出さないでください。

すべて折りたたむ

異なる振幅と周波数をもつ固定された実数の正弦波の和から作成された片側パワー スペクトルを表示します。

Fs = 100e6;  % Sampling frequency
fSz = 5000;  % Frame size

sin1 = dsp.SineWave(1e0,  5e6,0,'SamplesPerFrame',fSz,'SampleRate',Fs);
sin2 = dsp.SineWave(1e-1,15e6,0,'SamplesPerFrame',fSz,'SampleRate',Fs);
sin3 = dsp.SineWave(1e-2,25e6,0,'SamplesPerFrame',fSz,'SampleRate',Fs);
sin4 = dsp.SineWave(1e-3,35e6,0,'SamplesPerFrame',fSz,'SampleRate',Fs);
sin5 = dsp.SineWave(1e-4,45e6,0,'SamplesPerFrame',fSz,'SampleRate',Fs);

scope = dsp.SpectrumAnalyzer;
scope.SampleRate = Fs;
scope.SpectralAverages = 1;
scope.PlotAsTwoSidedSpectrum = false;
scope.RBWSource = 'Auto';
scope.PowerUnits = 'dBW';
for idx = 1:1e2 
     y1 = sin1();
     y2 = sin2();
     y3 = sin3();
     y4 = sin4();
     y5 = sin5();
     scope(y1+y2+y3+y4+y5+0.0001*randn(fSz,1));
end

release メソッドを実行してプロパティ値と入力の特性を変更します。スコープは座標軸を自動スケーリングします。

release(scope)

関数 clear を実行してスペクトル アナライザー ウィンドウを閉じます。

clear('scope');

Spectrum Analyzer 上でノイズのある正弦波の両側パワー スペクトルを表示します。

sin = dsp.SineWave('Frequency',100,'SampleRate',1000);
sin.SamplesPerFrame = 1000;
scope = dsp.SpectrumAnalyzer('SampleRate',sin.SampleRate);
for ii = 1:250
  x = sin() + 0.05*randn(1000,1);
  scope(x);
end

release メソッドを実行してプロパティ値と入力特性を変更します。スコープは座標軸を自動スケーリングします。データが内部バッファーにある場合、表示がもう一度更新されます。

release(scope);

MATLAB 関数 clear を実行してスペクトル アナライザー ウィンドウを閉じます。

clear('scope');

この例では、追加のランダム ノイズをもつチャープ信号のスペクトログラムを説明します。

Fs = 233e3;
frameSize = 20e3;
chirp = dsp.Chirp('SampleRate',Fs,...
  'SamplesPerFrame',frameSize,...
  'InitialFrequency',11e3,...
  'TargetFrequency',11e3+55e3);

scope = dsp.SpectrumAnalyzer('SampleRate',Fs);
scope.ViewType = 'Spectrogram';
scope.RBWSource = 'Property';
scope.RBW = 500;
scope.TimeSpanSource = 'Property';
scope.TimeSpan = 2;
scope.PlotAsTwoSidedSpectrum = false;

for idx = 1:50
  y = chirp()+ 0.05*randn(frameSize,1);
  scope(y);
end

release(scope)

スペクトル アナライザーを使用して、ホワイト ガウス ノイズに組み込まれている正弦波のスペクトル推定から周波数入力を表示します。

初期化

表示する 2 つの dsp.SpectrumEstimator オブジェクトを初期化します。ウェルチ手法に基づくスペクトル推定法をハン ウィンドウで使用するように 1 つのオブジェクトを設定し、フィルター バンク推定を使用するようにもう 1 つのオブジェクトを設定します。サンプルあたりのサイクルが 0.16、0.2、0.205、0.25 の 4 つの正弦波を持つ、ノイズを含む正弦波入力信号を指定します。スペクトル推定は、周波数入力を処理するように設定された 3 番目のオブジェクトであるスペクトル アナライザーを使って表示します。

FrameSize = 420;
Fs = 1;
Frequency = [0.16 0.2 0.205 0.25];
sinegen = dsp.SineWave('SampleRate',Fs,'SamplesPerFrame',FrameSize,...
    'Frequency',Frequency,'Amplitude',[2e-5 1  0.05  0.5]);
NoiseVar = 1e-10;
numAvgs = 8;

hannEstimator = dsp.SpectrumEstimator('PowerUnits','dBm',...
    'Window','Hann','FrequencyRange','onesided',...
    'SpectralAverages',numAvgs,'SampleRate',Fs);

filterBankEstimator = dsp.SpectrumEstimator('PowerUnits','dBm',...
    'Method','Filter bank','FrequencyRange','onesided',...
    'SpectralAverages',numAvgs,'SampleRate',Fs);

spectrumPlotter = dsp.SpectrumAnalyzer('InputDomain','Frequency',...
    'SampleRate',Fs,...
    'SpectrumUnits','dBm','YLimits',[-120,40],...
    'PlotAsTwoSidedSpectrum',false,...
    'ChannelNames',{'Hann window','Filter bank'},'ShowLegend',true);

ストリーミング

入力をストリーミングします。スペクトル推定をスペクトル アナライザーで比較します。

for i = 1:1000
    x = sum(sinegen(),2) + sqrt(NoiseVar)*randn(FrameSize,1);
    Pse_hann = hannEstimator(x);
    Pfb = filterBankEstimator(x);
    spectrumPlotter([Pse_hann,Pfb])
end

dsp.SpectrumAnalyzer System object を使用して、ノイズを含む正弦波入力信号のパワー スペクトルを計算して表示します。次のプロパティを有効にすることで、スペクトル内のピーク、カーソルの配置、隣接チャネル電力比、歪みを測定します。

  • PeakFinder

  • CursorMeasurements

  • ChannelMeasurements

  • DistortionMeasurements

初期化

入力正弦波は次の 2 つの周波数をもちます。1000 Hz、5000 Hz。これら 2 つの周波数を生成する 2 つの dsp.SineWave System object を作成します。パワー スペクトルを計算して表示する dsp.SpectrumAnalyzer System object を作成します。

Fs = 44100;
Sineobject1 = dsp.SineWave('SamplesPerFrame',1024,...
    'PhaseOffset',10,...
    'SampleRate',Fs,'Frequency',1000);
Sineobject2 = dsp.SineWave('SamplesPerFrame',1024,...
    'SampleRate',Fs,'Frequency',5000);
SA = dsp.SpectrumAnalyzer('SampleRate',Fs,'Method','Filter bank',...
    'SpectrumType','Power','PlotAsTwoSidedSpectrum',false,...
    'ChannelNames',{'Power spectrum of the input'},...
    'YLimits',[-120 40],'ShowLegend',true);

測定データの有効化

測定値を取得するには、測定の Enable プロパティを true に設定します。

SA.CursorMeasurements.Enable = true;
SA.ChannelMeasurements.Enable = true;
SA.PeakFinder.Enable = true;
SA.DistortionMeasurements.Enable = true;

getMeasurementsData の使用

ノイズを含む正弦波入力信号でストリーミングを行い、スペクトル アナライザーを使用して信号のパワー スペクトルを推定します。スペクトルの特性を測定します。関数 getMeasurementsData を使用して、これらの測定値をプログラムによって取得します。関数 isNewDataReady は、新しいスペクトル データが存在するタイミングを示します。測定データは変数 data に格納されます。

data = [];
for Iter = 1:1000
    Sinewave1 = Sineobject1();
    Sinewave2 = Sineobject2();
    Input = Sinewave1 + Sinewave2;
    NoisyInput = Input + 0.001*randn(1024,1);
    SA(NoisyInput);
     if SA.isNewDataReady
        data = [data;getMeasurementsData(SA)];
     end
end

スペクトル アナライザーの右側に有効な測定ペインが表示されます。これらのペインに表示される値は、変数 data の最後のタイム ステップで表示される値と一致します。data の個々のフィールドにアクセスして、さまざまな測定値をプログラムによって取得できます。

ピーク値の比較

ピーク値は PeakFinder プロパティによって取得されます。data の最後のタイム ステップで取得されたピーク値がスペクトル アナライザー プロットで示される値と一致することを確認します。

peakvalues = data.PeakFinder(end).Value 
peakvalues = 3×1

   26.9851
   24.1735
  -51.1973

frequencieskHz = data.PeakFinder(end).Frequency/1000
frequencieskHz = 3×1

    4.9957
    0.9905
    0.2369

ヒント

  • スコープ ウィンドウを閉じて、関連するデータをクリアするには、MATLAB の関数 clear を使用します。

  • スコープ ウィンドウを非表示または表示するには、関数 hideshow を使用します。

  • MATLAB の関数 mcc を使用して、スペクトル アナライザーを含むコードをコンパイルします。

    アプリケーション内に複数のコンパイル済みコンポーネントがある場合、スペクトル アナライザーのコンフィギュレーション ダイアログ ボックスは開くことができません。

アルゴリズム

すべて展開する

拡張機能

バージョン履歴

R2012b で導入

すべて展開する

R2022a: dsp.SpectrumAnalyzer System object は削除予定

dsp.SpectrumAnalyzer System object は将来のリリースで削除される予定です。代わりに spectrumAnalyzer オブジェクトを使用してください。

コードの更新

spectrumAnalyzer オブジェクトは、dsp.SpectrumAnalyzer オブジェクトと同じプロパティをもちます。ただし、Method プロパティの既定値は 'filter-bank' に変わり、AveragingMethod プロパティの既定値はビデオの帯域幅である 'vbw' に変わりました。

次を除き、コードの更新は必要ありません。

  • dsp.SpectrumAnalyzer のインスタンスを spectrumAnalyzer に置き換える。

  • 必要な場合は、Method プロパティと AveragingMethod プロパティの値を更新する。

次の表では、System object の代表的な使用法を示し、spectrumAnalyzer オブジェクトを使用するように既存のコードを更新する方法について説明します。

非推奨の使用方法推奨される代替案

dsp.SpectrumAnalyzer オブジェクトの既定バージョンの使用

sa = dsp.SpectrumAnalyzer
  dsp.SpectrumAnalyzer with properties:

                NumInputPorts: 1
                  InputDomain: 'Time'
                 SpectrumType: 'Power'
                     ViewType: 'Spectrum'
                   SampleRate: 10000
                       Method: 'Welch'
       PlotAsTwoSidedSpectrum: 1
               FrequencyScale: 'Linear'

   Advanced
                FrequencySpan: 'Full'
    FrequencyResolutionMethod: 'RBW'
                    RBWSource: 'Auto'
               OverlapPercent: 0
                       Window: 'Hann'
                SpectrumUnits: 'dBm'
              AveragingMethod: 'Running'
             SpectralAverages: 1
                ReferenceLoad: 1
              FrequencyOffset: 0

spectrumAnalyzer オブジェクトへの置換

spectrumAnalyzer オブジェクトは既定のスペクトル推定法として "filter-bank" を使用します。フィルター バンク法はウェルチ法と比較して、ノイズ フロアは低く、周波数分解能は高く、更新ごとに必要なサンプル数も少ないです。

dsp.SpectrumAnalyzer System object と同じ既定の動作を維持するには、Method プロパティを "welch" に変更し、AveragingMethod プロパティを "exponential" に変更します。必要に応じて、忘却係数の値を調整します。

sa = spectrumAnalyzer(Method="welch",AveragingMethod="exponential")
spectrumAnalyzer with properties:

               InputDomain: 'time'
              SpectrumType: 'power'
                  ViewType: 'spectrum'
                SampleRate: 10000
                    Method: 'welch'
    PlotAsTwoSidedSpectrum: 1
            FrequencyScale: 'linear'
                  PlotType: 'line'
               AxesScaling: 'auto'

   Advanced
                 RBWSource: 'auto'
             FrequencySpan: 'full'
            OverlapPercent: 0
                    Window: 'hann'
           AveragingMethod: 'exponential'
          ForgettingFactor: 0.9000
             SpectrumUnits: 'dBm'
             ReferenceLoad: 1
           FrequencyOffset: 0

スペクトルの表示

dsp.SpectrumAnalyzer オブジェクトを使用して、スペクトル アナライザーでスペクトル データを表示します。

swv = dsp.SineWave(Frequency=100,SampleRate=1000);
swv.SamplesPerFrame = 1000;
san = dsp.SpectrumAnalyzer(SampleRate=swv.SampleRate);
data = [];
for ii = 1:250
    x = swv() + 0.05*randn(1000,1);
    san(x);
    if san.isNewDataReady
        data = [data;getSpectrumData(san)];
    end
end
release(san);

スペクトルの表示

spectrumAnalyzer オブジェクトを使用して、スペクトル アナライザーでスペクトル データを表示します。

swv = dsp.SineWave(Frequency=100,SampleRate=1000);
swv.SamplesPerFrame = 1000;
san = spectrumAnalyzer(SampleRate=swv.SampleRate,...
    Method="welch",AveragingMethod="exponential");
data = [];
for ii = 1:250
    x = swv() + 0.05*randn(1000,1);
    san(x);
    if san.isNewDataReady
        data = [data;getSpectrumData(san)];
    end
end
release(san);