How to display data saved with getSpectrumData? Why are saved values different from input?

3 ビュー (過去 30 日間)
Nik Rocky
Nik Rocky 2022 年 8 月 25 日
コメント済み: Khodour Al Kadry 2023 年 1 月 24 日
Hello dear community,
in my example code I create two sinus signals, display it with spectrumAnalyzer and save data to tables (later I will use it to receive data from hardware device). There are 3 ways to display it: 1. time I just display a created sinus-signal
and save it directly to variable "y" directly and to variable "data" using getSpectrumData function.
When I display "y" it works perfectly:
when I try to display "data" saved by getSpectrumData I get no signal information:
What is wrong?
Thank you!
% create two sinus signals
wave = dsp.SineWave(Frequency=100,SampleRate=1000);
wave.SamplesPerFrame = 1000;
wave2 = dsp.SineWave(Frequency=150,SampleRate=1000);
wave2.SamplesPerFrame = 1000;
% init variables
data = [];
y = [];
frames = 500;
% init scope 1
scope = spectrumAnalyzer(SampleRate=wave.SampleRate,...
ViewType="spectrum-and-spectrogram",...
FrequencyScale="Linear");
for ii = 1:frames
x = wave() + 0.5*wave2()+ 0.05*randn(1000,1);
scope(x); % spectrum of created signal x
if scope.isNewDataReady
y = [y,x]; %save input signal
data = [data;getSpectrumData(scope)]; % save signal using getSpectrumData
end
end
release(scope)
% init scope 2
scope = spectrumAnalyzer(SampleRate=wave.SampleRate,...
ViewType="spectrum-and-spectrogram",...
FrequencyScale="Linear");
for a = 1:width(y)
scope(y(:,a)) % spectrum of saved signal y
pause(0.01)
end
release(scope)
% init scope 3
scope = spectrumAnalyzer(SampleRate=wave.SampleRate,...
ViewType="spectrum-and-spectrogram",...
FrequencyScale="Linear");
for a = 1:height(data)
scope(data.Spectrum{a,1}) % spectrum of saved signal using getSpectrumData
pause(0.01)
end
  2 件のコメント
Khodour Al Kadry
Khodour Al Kadry 2023 年 1 月 24 日
Hi Nick
getSpectrumData will return the computed spectrum in frequency domain. In your third case where you are plotting the saved data using getSpectrumData, you are actually plotting the frequency response of data that is already in frequency domain.What you should do, is set the InputDomain='frequency' on spectrumAnalyzer, this will allow you to plot pre-computed spectrum (frequency doamin data).
Regards
-Khodour

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by