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

6 vues (au cours des 30 derniers jours)
Bradley Rogers
Bradley Rogers le 19 Mai 2011
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)|')
%

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by