Spectrum Analyzer ブロックの測定データをプログラムによって取得
Spectrum Analyzer ブロックを使用して、ノイズを含む正弦波入力信号のパワー スペクトルを計算して表示します。次のブロック構成プロパティを有効にして、スペクトル内のカーソルの位置、隣接チャネル電力比、歪み、ピークの値を測定します。
CursorMeasurementsChannelMeasurementsDistortionMeasurementsPeakFinder
モデルのオープンと検証
Lowpass Filter ブロックを使用して、ノイズを含むストリーミング正弦波入力信号をフィルター処理します。入力信号は次の 2 つの正弦波トーンから構成されます。1 kHz と 15 kHz。ノイズは、平均 0、分散 0.05 のホワイト ガウス ノイズです。サンプリング周波数は 44.1 kHz です。モデルを開いて、ブロック内のパラメーター値を検証します。
model = 'spectrumanalyzer_measurements.slx';
open_system(model)

関数 get_param を使用して Spectrum Analyzer ブロックのコンフィギュレーション プロパティにアクセスします。
sablock = 'spectrumanalyzer_measurements/Spectrum Analyzer'; cfg = get_param(sablock,'ScopeConfiguration');
測定データの有効化
測定値を取得するには、Enabled プロパティを true に設定します。ピーク測定値にラベルを付けます。
cfg.CursorMeasurements.Enabled = true; cfg.ChannelMeasurements.Enabled = true; cfg.DistortionMeasurements.Enabled = true; cfg.PeakFinder.Enabled = true; cfg.PeakFinder.LabelPeaks = true;
モデルのシミュレーション
モデルを実行します。Spectrum Analyzer ブロックで元のスペクトルとフィルター処理されたスペクトルが比較されます。
sim(model)

スペクトル アナライザー ウィンドウの下部にあるパネルに、有効にした測定値が表示されます。
関数 getMeasurementsData の使用
関数 getMeasurementsData を使用して、プログラムで測定値を取得します。
data = getMeasurementsData(cfg)
data =
1×5 table
SimulationTime PeakFinder CursorMeasurements ChannelMeasurements DistortionMeasurements
______________ __________ __________________ ___________________ ______________________
{[99.9967]} 1×1 struct 1×1 struct 1×1 struct 1×1 struct
測定値パネルに表示される値は、data に表示される値と一致します。data の個々のフィールドにアクセスして、さまざまな測定値をプログラムによって取得できます。
ピーク値の比較
例として、ピーク値を比較します。data.PeakFinder で取得したピーク値がスペクトル アナライザー ウィンドウの値と一致することを確認します。
peakvalues = data.PeakFinder.Value frequencieskHz = data.PeakFinder.Frequency/1000
peakvalues =
26.9620
26.2688
-4.5790
frequencieskHz =
15.0015
1.0049
9.6038