get the data of dsp.spectrum Analyzer

3 次查看(过去 30 天)
Currently, I am using the below code to display the spectrum of the received signal (before receive filtering) using dsp.spectrumAnalyzer. However, I need the data that is shown itself. How can I get it? Also, how can I generate the spectrum as dsp.spectrumAnalyzer manully from sctractch using fft?
data = 2.*randi([0 1], 1e6, 1)-1;
txFilter = comm.RaisedCosineTransmitFilter;
filteredData = txFilter(data);
rxSignal = awgn(filteredData, 20);
freqAnalyzer = dsp.SpectrumAnalyzer('SampleRate',8e6);
freqAnalyzer((rxSignal));

采纳的回答

Abderrahim. B
Abderrahim. B 2022-8-30
Hi!
To get data shown in spectrum analyzer, use getSpectrumData method.
data = 2.*randi([0 1], 1e6, 1)-1;
txFilter = comm.RaisedCosineTransmitFilter;
filteredData = txFilter(data);
rxSignal = awgn(filteredData, 20);
freqAnalyzer = dsp.SpectrumAnalyzer('SampleRate',8e6) ;
freqAnalyzer((rxSignal))
specData = getSpectrumData(freqAnalyzer) ;
figure
plot(specData.FrequencyVector{1,1}, specData.Spectrum{1,1})
Hope this helps
  1 个评论
MAWE
MAWE 2022-8-31
It seems the specData.Spectrum{1,1} is the absolute value since it's real. If the signal is complex by adding some noise like below, how can I get the complex frequency representation? In other words, how can I get the same spectrum from the fft of rxSignal?
data = 2.*randi([0 1], 1e6, 1)-1;
txFilter = comm.RaisedCosineTransmitFilter;
filteredData = txFilter(data);
L=length(filteredData);
n=(1/(sqrt(2*10^2))).*(randn(L,1)+1i.*randn(L,1))
rxSignal = filterData + n;
freqAnalyzer = dsp.SpectrumAnalyzer('SampleRate',8e6) ;
freqAnalyzer((rxSignal))
specData = getSpectrumData(freqAnalyzer) ;
figure
plot(specData.FrequencyVector{1,1}, specData.Spectrum{1,1})

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Test and Measurement 的更多信息

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by