2015-06-30 50 views
1

我打算在同一個圖上繪製多個功率譜密度。我正在使用以下內容來繪製單個信號的功率譜密度。同一圖中的多個PSD - Matlab

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

不過,如果我是繪製在使用上持有相同的頻譜分析儀的另一個信號似乎並沒有幫助

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在同一張圖上。

+0

一種方式命令「掛起」如果你用頻率和psd向量調用plot(),將會奏效。 – willpower2727

+0

我不明白你的意思@ willpower2727。我已經嘗試過使用'hold on',但是我認爲它只在'plot()'或'semilog()'的情況下才起作用,但不能用於'step()' – smyslov

+0

是的,我認爲「hold on」可能不會爲step()工作。你能發佈一個更完整的代碼示例嗎?就像也許有一個樣本數據,Fs? – willpower2727

回答

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