同一图中的多个PSD - Matlab

时间:2015-06-30 12:00:28

标签: matlab matlab-figure frequency spectrum

我打算在同一图表上绘制多个功率谱密度。我使用以下内容绘制单个信号的功率谱密度。

hss = dsp.SpectrumAnalyzer('SampleRate', Fs); 
step(hss,rx);
release(hss);

然而,如果我在同一频谱分析仪中使用hold on绘制另一个信号似乎没有帮助

hss = dsp.SpectrumAnalyzer('SampleRate', Fs); 
step(hss,rx); hold on;
step(hss,tx);
release(hss);

有人可以指导我如何解决这个问题。

编辑: 这是我的代码片段:

Fs = 12e6;
data = randi([0 1],1000,1);
%% OQPSK Modulate data
hMod = comm.OQPSKModulator('BitInput',true); 
tx = step(hMod, data);
%% Add noise
hAWGN = comm.AWGNChannel('EbNo',2);
rx = step(hAWGN, tx);

现在我需要一种方法在同一图表中绘制txrx的PSD。

2 个答案:

答案 0 :(得分:1)

好的,我想我已经弄明白了,你需要将多个数据传递给同一个步骤调用,如下所示:

Fs = 12e6;
hss = dsp.SpectrumAnalyzer('SampleRate', Fs); 
data = randi([0 1],2000,1);%I had to increase the # of points
%% OQPSK Modulate data
hMod = comm.OQPSKModulator('BitInput',true); 
tx = step(hMod, data);
%% Add noise
hAWGN = comm.AWGNChannel('EbNo',2);
rx = step(hAWGN, tx);

%This is the line that makes it work, passing in a matrix of input data
step(hss,[rx tx]);

enter image description here

答案 1 :(得分:0)

您可以在Matlab中使用以下代码。

假设您有两个信号signal1和signal2。

rmc = lteRMCDL('R.0');
[signal1,~,info] = lteRMCDLTool(rmc,[1;0;0;1]); %

signal2 = 100*signal1;

scope = dsp.SpectrumAnalyzer;
scope.PlotAsTwoSidedSpectrum = true;
scope.SampleRate = info.SamplingRate; 

%您应该替换采样率信息。samplerate

scope([signal1 signal2])