Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Spectrum Analyzer ブロックの測定データをプログラムによって取得

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

  • PeakFinder

  • CursorMeasurements

  • ChannelMeasurements

  • DistortionMeasurements

  • CCDFMeasurements

モデルのオープンと検証

Lowpass Filter ブロックを使用して、ノイズを含むストリーミング正弦波入力信号をフィルター処理します。入力信号は次の 2 つの正弦波トーンから構成されます。1 kHz と 15 kHz。このノイズは、ゼロ平均で分散 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');

測定データの有効化

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

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

モデルのシミュレート

モデルを実行します。Spectrum Analyzer ブロックで元のスペクトルとフィルター処理されたスペクトルが比較されます。

sim(model)

スペクトル アナライザーの右側に有効な測定ペインが表示されます。

getMeasurementsData の使用

関数 getMeasurementsData を使用して、これらの測定値をプログラムによって取得します。

data = getMeasurementsData(cfg)
data =

  1x5 table

    SimulationTime    PeakFinder    CursorMeasurements    ChannelMeasurements    DistortionMeasurements
    ______________    __________    __________________    ___________________    ______________________

      {[0.9985]}      1x1 struct        1x1 struct            1x1 struct               1x1 struct      

測定ペインに表示される値は、data に表示される値と一致します。data の個々のフィールドにアクセスして、さまざまな測定値をプログラムによって取得できます。

ピーク値の比較

例として、ピーク値を比較します。data.PeakFinder によって取得されたピーク値が Spectrum Analyzer ウィンドウに表示された値と一致することを確認します。

peakvalues = data.PeakFinder.Value
frequencieskHz = data.PeakFinder.Frequency/1000
peakvalues =

   26.9076
   26.2675
   -2.9136


frequencieskHz =

   15.0015
    1.0049
   16.3796

モデルの保存とクローズ

save_system(model);
close_system(model);

参考

関数

オブジェクト

ブロック