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

6 views (last 30 days)
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)|')
%

Accepted Answer

bym
bym on 19 May 2011
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 Comments
Bradley Rogers
Bradley Rogers on 19 May 2011
yes that is perfect thanks, but what does the (211) and (212) stand for?
bym
bym on 19 May 2011
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"

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!