このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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