Plot command, how to plot a signal with FFT result?
6 views (last 30 days)
Show older comments
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)|')
%
0 Comments
Accepted Answer
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
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"
More Answers (0)
See Also
Categories
Find more on Spectral Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!