Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

spectrumAnalyzer オブジェクトの測定データをプログラムによって取得

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

  • PeakFinder

  • CursorMeasurements

  • ChannelMeasurements

  • DistortionMeasurements

初期化

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

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

測定データの有効化

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

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

getMeasurementsData の使用

ノイズを含む正弦波入力信号でストリーミングを行い、spectrumAnalyzer オブジェクトを使用して信号のパワー スペクトルを推定します。スペクトルの特性を測定します。関数 getMeasurementsData を使用して、これらの測定値をプログラムによって取得します。関数 isNewDataReady は、新しいスペクトル データが存在すると true を返します。測定データを変数 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.3957
   22.7830
  -57.9977

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

    4.9957
    0.9905
   20.6719

参考

関数

オブジェクト