Plot command, how to plot a signal with FFT result?

8 ビュー (過去 30 日間)
Bradley Rogers
Bradley Rogers 2011 年 5 月 19 日
just started with Matlab today, like it alot.
im trying to plot a signal and then the FFT result where they are using the same graph/plot.
Tried doing this several times, the input signal plots out, the FFT result is this tiny scrunched up little plot in the upper left. the way of putting 2 plots together in the same chart is the question. right now it does one, then its paused, then the next one.
thanks
Fs = 10; % Sampling frequency
T = 1/Fs; % Sample time
L = 100; % Length of signal
t = (0:L-1)*T; % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
%x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
x = cos(3*pi*(t)) + (.5 * (cos(2*pi*(t))));
y = x ; %+ 2*randn(size(t)); % Sinusoids plus noise
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(Fs*t(1:50),y(1:50))
pause;
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
%

採用された回答

bym
bym 2011 年 5 月 19 日
Why would you want to plot the time domain & Frequency domain on the same plot? Take a look at subplot as in :
subplot(211)
plot(Fs*t(1:50),y(1:50))
subplot(212)
plot(f,2*abs(Y(1:NFFT/2+1)))
  2 件のコメント
Bradley Rogers
Bradley Rogers 2011 年 5 月 19 日
yes that is perfect thanks, but what does the (211) and (212) stand for?
bym
bym 2011 年 5 月 19 日
the first 2 numbers are the size of the plot grid (here 2 row 1 column) and the 3rd number is the index of the "active plot"

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpectral Analysis についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by