Spectrum Analyzer ブロックの測定データをプログラムによって取得
Spectrum Analyzer ブロックを使用して、ノイズを含む正弦波入力信号のパワー スペクトルを計算して表示します。次のブロック構成プロパティを有効にして、スペクトル内のカーソルの位置、隣接チャネル電力比、歪み、ピークの値を測定します。
CursorMeasurements
ChannelMeasurements
DistortionMeasurements
PeakFinder
モデルのオープンと検証
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;
モデルのシミュレート
モデルを実行します。Spectrum Analyzer ブロックで元のスペクトルとフィルター処理されたスペクトルが比較されます。
sim(model)
スペクトル アナライザー ウィンドウの下部にあるペインに、有効にした測定値が表示されます。
関数 getMeasurementsData
の使用
関数 getMeasurementsData
を使用して、プログラムで測定値を取得します。
data = getMeasurementsData(cfg)
data = 1x5 table SimulationTime PeakFinder CursorMeasurements ChannelMeasurements DistortionMeasurements ______________ __________ __________________ ___________________ ______________________ 9.9962 1x1 struct 1x1 struct 1x1 struct 1x1 struct
測定値パネルに表示される値は、data
に表示される値と一致します。data
の個々のフィールドにアクセスして、さまざまな測定値をプログラムによって取得できます。
ピーク値の比較
例として、ピーク値を比較します。data.PeakFinder
で取得したピーク値がスペクトル アナライザー ウィンドウの値と一致することを確認します。
peakvalues = data.PeakFinder.Value frequencieskHz = data.PeakFinder.Frequency/1000
peakvalues = 26.9725 26.4314 -2.7048 frequencieskHz = 15.0015 1.0049 19.0210