Matlab,fft per l'analisi spettrale

di il
2 risposte

Matlab,fft per l'analisi spettrale

Salve, sto cercando di capire come funziona il codice seguente ma alcune cose non sono chiare. qualcuno potrebbe spiegarmele gentilmente.
Non capisco perche NFFT lo trova cosi?
Perche divide la fft per L?
Perche moltiplica gli intervalli per Fs/2?
Perche c'è il 2 quando plotta 2*abs()??

script:
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 1000; % 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);
y = x + 2*randn(size(t)); % Sinusoids plus noise
plot(Fs*t(1:50),y(1:50))
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);

% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte