同一图中的多个 PSD - Matlab
Multiple PSD in same graph - Matlab
我打算在同一张图上绘制多个功率谱密度。我正在使用以下内容绘制单个信号的功率谱密度。
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);
现在我需要一种方法来在同一张图中绘制 tx
和 rx
的 PSD。
好的,我想我已经弄明白了,您需要将多个数据传递给同一个步骤调用,如下所示:
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]);
您可以在 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;
% 你应该用 info.samplerate
替换你的采样率
scope([signal1 signal2])
我打算在同一张图上绘制多个功率谱密度。我正在使用以下内容绘制单个信号的功率谱密度。
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);
现在我需要一种方法来在同一张图中绘制 tx
和 rx
的 PSD。
好的,我想我已经弄明白了,您需要将多个数据传递给同一个步骤调用,如下所示:
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]);
您可以在 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;
% 你应该用 info.samplerate
替换你的采样率scope([signal1 signal2])