最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

dsp.SpectrumAnalyzer

時間領域信号の周波数スペクトルの表示

説明

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

Spectrum Analyzer で信号のスペクトルを表示するには、次のようにします。

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

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

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

作成

説明

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 でのシステム設計 (MATLAB)を参照してください。

よく使用される項目

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

可視化する入力信号の領域。時間領域信号を可視化する場合、信号は Method パラメーターで指定するアルゴリズムに基づいて周波数スペクトルに変換されます。

UI の使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[入力領域] を設定します。

データ型: char | string

表示するスペクトルのタイプを指定します。

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

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

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

調整可能: Yes

UI の使用

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

データ型: char | string

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

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

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

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

調整可能: Yes

UI の使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[ビュー] を設定します。

データ型: char | string

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

UI の使用

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

Welch または Filter bank のスペクトル推定法を指定します。

依存関係

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

UI の使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、[メソッド] を設定します。

データ型: char | string

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

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

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

UI の使用

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

データ型: 論理値

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

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

調整可能: Yes

UI の使用

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

データ型: char | string

詳細設定

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

  • "Span and center frequency" - Spectrum Analyzer は、Span プロパティと CenterFrequency プロパティで指定された区間のスペクトルを計算し、プロットします。

  • "Start and stop frequencies" - Spectrum Analyzer は、StartFrequency プロパティと StopFrequency プロパティで指定された区間のスペクトルを計算し、プロットします。

調整可能: Yes

UI の使用

[スペクトル設定] を開きます。[メイン オプション] セクションで、"Full"[全周波数スパン] を選択します。それ以外の場合、[全周波数スパン] チェック ボックスをオフにし、[スパン] または [FStart] を選択します。

データ型: char | string

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

調整可能: Yes

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

UI の使用

[スペクトル設定] を開きます。[メイン] で、[全周波数スパン] をオフにし、[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" に設定します。

UI の使用

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

データ型: char | string

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

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

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

調整可能: Yes

依存関係

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

UI の使用

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

データ型: char | string

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

spanRBW>2

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

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

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

  • Method"Welch" に設定する。

UI の使用

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

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

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

調整可能: Yes

依存関係

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

UI の使用

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

データ型: char | string

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

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

調整可能: Yes

依存関係

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

UI の使用

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

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

依存関係

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

UI の使用

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

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

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

依存関係

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

UI の使用

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

データ型: char | string

表示の x 軸を決定する周波数ベクトルを設定します。ベクトルは単調増加し、入力フレーム サイズと同じサイズでなければなりません。

依存関係

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

UI の使用

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

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

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

調整可能: Yes

UI の使用

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

スペクトル推定器のウィンドウ関数を指定します。以下の表に事前に設定されたウィンドウを示します。詳細については、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

UI の使用

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

データ型: 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" に設定します。

UI の使用

[スペクトル設定] を開きます。[ウィンドウ オプション] セクションの [ウィンドウ] オプション ボックスで、カスタム ウィンドウ関数名を入力します。

データ型: char | string

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

調整可能: Yes

依存関係

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

UI の使用

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

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

依存関係

このオプションは、InputDomain[周波数] に設定されている場合にのみ使用できます。

UI の使用

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

データ型: char | string

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

調整可能: Yes

依存関係

使用可能なスペクトルの単位は SpectrumType の値によって異なります。

InputDomainSpectrumType指定可能な SpectrumUnits
TimePower または Power density"dBFS""dBm""dBW""Watts"
RMS"Vrms""dBV"
Frequency"dBm""dBV""dBW""Vrms""Watts"

UI の使用

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

データ型: char | string

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

  • "Auto" - Spectrum Analyzer は入力データに基づいてスケーリング係数を調整します。

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

依存関係

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

UI の使用

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

データ型: char | string

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

調整可能: Yes

依存関係

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

UI の使用

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

平滑化法を指定します。

  • Running — 最後の n 個のサンプルの移動平均。SpectralAverages プロパティを使用して n を指定します。

  • Exponential — サンプルの加重平均。ForgettingFactor プロパティを使用して重み付け忘却係数を指定します。

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

依存関係

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

UI の使用

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

データ型: char | string

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

調整可能: Yes

依存関係

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

依存関係

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

UI の使用

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

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

依存関係

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

UI の使用

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

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

調整可能: Yes

UI の使用

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

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

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

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

調整可能: Yes

UI の使用

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

スペクトログラム

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

調整可能: Yes

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

UI の使用

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

データ型: char | string

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

時間分解能の値は、周波数分解能法、RBW の設定および時間分解能の設定に基づいて決定されます。

メソッド周波数分解能の方法周波数分解能の設定時間分解能の設定結果として得られる時間分解能 (秒単位)
ウェルチまたはフィルター バンクRBW (Hz)自動自動1/RBW
ウェルチまたはフィルター バンクRBW (Hz)自動手動入力時間分解能
ウェルチまたはフィルター バンクRBW (Hz)手動入力自動1/RBW
ウェルチまたはフィルター バンクRBW (Hz)手動入力手動入力達成可能な最小時間分解能である 1/RBW 以上でなければなりません。いくつかのスペクトル推定が 1 つのスペクトログラム ラインにまとめられ、目的の時間分解能が得られます。1/RBW の整数倍でない時間分解能の値を得るには内挿が使用されます。
Welchウィンドウの長さ自動1/RBW
ウェルチウィンドウの長さ手動入力達成可能な最小時間分解能以上でなければなりません。いくつかのスペクトル推定が 1 つのスペクトログラム ラインにまとめられ、目的の時間分解能が得られます。1/RBW の整数倍でない時間分解能の値を得るには内挿が使用されます。
フィルター バンク周波数帯域の数自動1/RBW
フィルター バンク周波数帯域の数手動入力達成可能な最小時間分解能である 1/RBW 以上でなければなりません。

調整可能: Yes

依存関係

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

UI の使用

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

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

調整可能: Yes

依存関係

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

UI の使用

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

データ型: char | string

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

調整可能: Yes

依存関係

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

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

  • TimeSpanSource"Property" に設定する。

UI の使用

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

測定

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

調整可能: Yes

UI の使用

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

データ型: double

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

  • EnabledMasks — 有効にするマスク。文字ベクトルまたは string として指定します。有効な値は "None""Upper""Lower" または "Upper and lower" です。

    既定値: "None"

  • UpperMask — スペクトル マスクの上限。スカラーまたは 2 列の行列として指定します。UpperMask がスカラーの場合、上限マスクは Spectrum Analyzer に適用できるすべての周波数値に対してスカラーの電力値を使用します。UpperMask が行列の場合、最初の列には x 軸の値に対応する周波数値 (Hz) が含まれます。2 番目の列には、関連付けられた y 軸の値に対応する電力値が含まれます。電力値および周波数値にオフセットを適用するには、それぞれ ReferenceLevel プロパティと MaskFrequencyOffset プロパティの値を使用します。

    既定値: Inf

  • LowerMask — スペクトル マスクの下限。スカラーまたは 2 列の行列として指定します。LowerMask がスカラーの場合、下限マスクは Spectrum Analyzer に適用できるすべての周波数値に対してスカラーの電力値を使用します。LowerMask が行列の場合、最初の列には x 軸の値に対応する周波数値 (Hz) が含まれます。2 番目の列には、関連付けられた y 軸の値に対応する電力値が含まれます。電力値および周波数値にオフセットを適用するには、それぞれ ReferenceLevel プロパティと MaskFrequencyOffset プロパティの値を使用します。

    既定値: -Inf

  • ReferenceLevel — マスクの電力値の基準レベル。"Custom" または "Spectrum peak" のいずれかで指定します。ReferenceLevel"Custom" の場合、CustomReferenceLevel プロパティの値が UpperMask および LowerMask プロパティの電力値 (dBr 単位) に対する基準として使用されます。ReferenceLevel"Spectrum peak" の場合、SelectedChannel の電流スペクトルのピーク値が使用されます。

    既定値: "Custom"

  • CustomReferenceLevel — カスタム基準レベル。実数値で指定します (電力単位と同じ単位)。基準レベルとは、UpperMask プロパティおよび LowerMask プロパティの電力値の基準となる値です。このプロパティは、ReferenceLevel"Custom" に設定されている場合に適用されます。このプロパティは、Spectrum Analyzer の PowerUnits プロパティと同じ単位を使用します。

    既定値: 0

  • SelectedChannel — マスク基準レベルとして使用するピーク スペクトルを含む入力チャネル。整数として指定します。このプロパティは、ReferenceLevel"Spectrum peak" に設定されている場合に適用されます。

    既定値: 1

  • MaskFrequencyOffset — 周波数オフセット。有限の数値スカラーとして指定します。周波数オフセットとは、UpperMask プロパティと LowerMask プロパティの周波数値に適用するオフセットの量です。

    既定値: 0

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

マスクはスペクトル上に重ねられます。マスクが緑の場合、信号はマスク制限をパスしています。マスクが赤の場合、信号はマスク制限に掛かっています。

スペクトル マスクのステータスは次のいずれかのメソッドを使用して確認できます。

  • スペクトル マスクを変更し、スペクトル マスクのステータスを確認するには、スコープのツール バーで [スペクトル マスク] ボタン を選択します。表示される [スペクトル マスク] ペインでは、マスクを変更したり、マスクに成功している時間の割合、失敗しているマスク、マスクに失敗した回数、失敗の原因となったチャネルに関する詳細を確認することができます。

  • スペクトル マスクの現在のステータスを取得するには、関数 getSpectralMaskStatus を呼び出します。

  • マスクに失敗するたびにアクションを実行するには、MaskTestFailed イベントを使用します。マスクに失敗したときに関数をトリガーするには、MaskTestFailed イベントのリスナーを作成し、トリガーするコールバック関数を定義します。イベントの使用の詳細については、イベント (MATLAB)を参照してください。

調整可能: Yes

UI の使用

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

ピークの検出を有効にして、最大ピーク値を計算し、計算された最大ピーク値を表示します。PeakFinder プロパティは PeakFinderSpecification プロパティを使用します。

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

  • MinHeight –– ピークが検出される最低レベル。スカラー値として指定します。

    既定値: -Inf

  • NumPeaks –– 表示するピークの最大数。100 より小さい正の整数スカラーとして指定します。

    既定値: 3

  • MinDistance –– 隣接するピーク間のサンプルの最小数。正の実数スカラーとして指定します。

    既定値: 1

  • Threshold –– ピークとその隣接するサンプルとの高さの最小差異。非負の実数スカラーとして指定します。

    既定値: 0

  • LabelFormat –– 計算されたピーク値の隣に表示する座標。文字ベクトルまたは string スカラーとして指定します。有効な値は "X""Y"、または "X + Y" です。

    既定値: "X + Y"

  • Enable –– ピークの検出測定を有効にするには、このプロパティを true に設定します。有効な値は true または false です。

    既定値: false

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

調整可能: Yes

UI の使用

[ピークの検出] ペイン () を開き、[設定] オプションを変更します。

画面または波形カーソルを表示するには、カーソルの測定を有効にします。CursorMeasurements プロパティは CursorMeasurementsSpecification プロパティを使用します。

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

  • Type –– ディスプレイ カーソルのタイプ。"Screen cursors" または "Waveform cursors" のいずれかで指定します。

    既定値: "Waveform cursors"

  • ShowHorizontal –– 水平方向のスクリーン カーソルを表示するには、このプロパティを true に設定します。このプロパティは、Type プロパティを "Screen cursors" に設定した場合に適用されます。

    既定値: true

  • ShowVertical –– 垂直方向のスクリーン カーソルを表示するには、このプロパティを true に設定します。このプロパティは、Type プロパティを "Screen cursors" に設定した場合に適用されます。

    既定値: true

  • Cursor1TraceSource –– 波形カーソル 1 のソースを正の実数スカラーとして指定します。このプロパティは、Type プロパティを "Waveform cursors" に設定した場合に適用されます。

    既定値: 1

  • Cursor2TraceSource –– 波形カーソル 2 のソースを正の実数スカラーとして指定します。このプロパティは、Type プロパティを "Waveform cursors" に設定した場合に適用されます。

    既定値: 1

  • LockSpacing –– カーソル間の間隔をロックします。logical のスカラーとして指定します。

    既定値: false

  • SnapToData –– カーソルをデータにスナップします。logical のスカラーとして指定します。

    既定値: true

  • XLocation –– カーソルの x 座標。長さが 2 に等しい実数ベクトルとして指定します。

    既定値: [-2500 2500]

  • YLocation –– カーソルの y 座標。長さが 2 に等しい実数ベクトルとして指定します。このプロパティは、Type プロパティを "Screen cursors" に設定した場合に適用されます。

    既定値: [-55 5]

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

    既定値: false

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

UI の使用

[カーソルの測定] ペイン () を開いて、[設定] オプションを変更します。

チャネル測定を有効にして、占有帯域幅または隣接チャネル電力比を計算して表示します。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 プロパティはすべて調整可能です。

UI の使用

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

高調波歪みと相互変調歪みを計算して表示するには、歪みの測定を有効にします。DistortionMeasurements プロパティは DistortionMeasurementsSpecification プロパティを使用します。

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

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

    既定値: "Harmonic"

  • NumHarmonics –– 測定する高調波の数。実数の正の整数として指定します。このプロパティは、Algorithm"Harmonic" に設定した場合に適用されます。

    既定値: 6

  • Enable –– 歪みの測定を有効にするには、このプロパティを true に設定します。

    既定値: false

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

UI の使用

[歪みの測定] ペイン () を開いて、[歪み] オプションと [高調波] オプションを変更します。

入力信号の瞬時電力が信号の平均電力よりも上の特定の dB 量になる確率を表示するには、CCDF 測定を有効にします。CCDFMeasurements プロパティは CCDFMeasurementsSpecification プロパティを使用します。

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

  • PlotGaussianReference –– 加法性ホワイト ガウス ノイズの参照 CCDF 曲線を表示します。このプロパティを true に設定すると、CCDF 参照曲線がプロットされます。

    既定値: false

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

    既定値: false

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

UI の使用

[CCDF 測定] ペイン () を開いて、[ガウス参照をプロット] オプションを有効にします。

可視化

スコープ ウィンドウのタイトル。

調整可能: Yes

データ型: char | string

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

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

調整可能: Yes

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

調整可能: Yes

依存関係

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

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

  • PlotNormalTracetrue に設定する。

UI の使用

[スタイル] プロパティを開いて [プロット タイプ] を設定します。

データ型: char | string

このプロパティを false に設定して通常のトレースの表示を削除します。これらのトレースはフリーラン スペクトル推定を表示します。トレースが表示から削除された場合でも、Spectrum Analyzer でスペクトルの計算が続行されます。

調整可能: Yes

依存関係

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

UI の使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[通常のトレース] を選択します。

データ型: 論理値

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

調整可能: Yes

依存関係

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

UI の使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[最大ホールド トレース] を選択します。

データ型: 論理値

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

調整可能: Yes

依存関係

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

UI の使用

[スペクトル設定] を開きます。[トレース オプション] セクションで、[最小ホールド トレース] を選択します。

データ型: 論理値

シミュレーション速度は、このプロパティが true に設定されているときのほうが高速になります。

  • true — スコープは後で使用するためにデータをログ記録し、固定時間間隔で表示を更新します。これらの固定間隔の間に発生するデータはプロットされない可能性があります。

  • false — スコープはパワー スペクトルを計算するたびに更新されます。シミュレーション速度が低下した場合でもスペクトルの更新が毎回必ず行われるようにするには、false の設定を使用します。

調整可能: Yes

UI の使用

[再生][プロットの比率を下げて性能を改善] を選択します。

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

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[タイトル] を設定します。

データ型: char | string

y 軸の左に表示するスコープの文字を指定します。

このプロパティに関係なく、Spectrum Analyzer は常に電力単位を SpectrumUnits の値のいずれかとして表示します。

調整可能: Yes

依存関係

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

UI の使用

[コンフィギュレーション プロパティ] を開きます。[Y ラベル] を設定します。

データ型: char | string

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

表示する信号を凡例から制御できます。この制御は、[スタイル] ダイアログ ボックスでの可視性の変更と等価です。スコープの凡例で、信号名をクリックするとそのスコープ内の信号が非表示になります。信号を表示する場合は、信号名を再度クリックします。信号を 1 つだけ表示する場合は、信号名を右クリックします。すべての信号を表示するには Esc キーを押します。

メモ

凡例には信号が最初の 20 個のみ表示されます。追加の信号を凡例から表示または制御することはできません。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブの [凡例の表示] を選択します。

データ型: 論理値

入力チャネルの名前を文字ベクトルの cell 配列として指定します。名前は凡例、[スタイル] ダイアログ ボックス、[測定値] パネルに表示されます。名前が指定されない場合、チャネルには Channel 1Channel 2 などのラベルが付けられます。

調整可能: Yes

依存関係

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

UI の使用

凡例で、チャネル名をダブルクリックします。

データ型: char

このプロパティを true に設定すると、プロットでグリッド線が表示されます。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで、[グリッド表示] を設定します。

データ型: 論理値

y 軸の範囲を 2 要素の数値ベクトルとして指定します。形式は [ymin ymax] です。

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

調整可能: Yes

依存関係

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

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

UI の使用

[コンフィギュレーション プロパティ] を開きます。[Y 軸範囲 (最大)] および [Y 軸範囲 (最小)] を設定します。

2 要素の数値ベクトル [colorMin colorMax] を使用して、スペクトログラムの色の範囲を制御します。

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

依存関係

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

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

UI の使用

[コンフィギュレーション プロパティ] を開きます。[色の範囲 (最小)] および [色の範囲 (最大)] を設定します。

スコープによる座標軸の自動スケーリングのタイミングを指定します。有効な値は、次のとおりです。

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

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

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

  • "Updates" — スコープは 10 回の更新後に 1 回座標軸をスケーリングします。

UI の使用

[ツール][座標軸のスケーリング] を選択します。

データ型: char | string

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

調整可能: Yes

依存関係

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

UI の使用

[スペクトル設定] を開きます。[座標軸のレイアウト] を設定します。

データ型: char | string

使用法

R2016b より前のバージョンでは、関数 step を使用して System object アルゴリズムを実行します。step に対する引数は作成したオブジェクトであり、この節で示す引数が次に続きます。

たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

説明

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)

すべて展開する

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

すべて展開する

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

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 を実行して Spectrum Analyzer ウィンドウを閉じます。

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)

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 を実行して Spectrum Analyzer ウィンドウを閉じます。

clear('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/FrameSize,...
    '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 を使用して、ノイズを含む正弦波入力信号のパワー スペクトルを計算して表示します。次のプロパティを有効にすることで、スペクトル内のピーク、カーソルの配置、隣接チャネル電力比、歪み、CCDF 値を測定します。

  • PeakFinder

  • CursorMeasurements

  • ChannelMeasurements

  • DistortionMeasurements

  • CCDFMeasurements

初期化

入力正弦波は 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.9850
   24.1735
  -52.3506

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

    4.9957
    0.9905
    7.8166

ヒント

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

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

  • MATLAB の関数 mcc を使用して、Spectrum Analyzer を含むコードをコンパイルします。

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

アルゴリズム

すべて展開する

拡張機能

R2012b で導入