normalisation of frequency axis while using fft function in matlab
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi all, As a part of my code, I have got a filtered array Va, which contains 45592 samples.What I need to do now is obtain the frequency spectrum of the signal which should have the major component as 50Hz. However, on applying plot(abs(fft(Va))), though I am getting 2 large peaks(i think a peak and its mirror image) at 2 points,I am not able to assess the X-axis scale.It is running from 0 to 50000.The peak I am getting is at approximately the 26th point and also the 45570th point.How do I adjust the x-axis so I can see the frequency component in Hz? Also, I am not sure about the sampling frequency, because the array is obtained using a m code after large number of iterations.Can somebody help?Thanks in advance.
0 Commenti
Risposta accettata
Vieniava
il 11 Feb 2011
You must know frequency sampling, Fs . Look at this code:
Fs= ; % insert here your frequency sampling in Hz
L=length(Va);
NFFT = 2^nextpow2(L);
Y = fft(Va,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
6 Commenti
Vieniava
il 12 Feb 2011
Bulls eye! "time=0:0.001:0.5" that means your frequency sampling is 1/0.001 = 1000 Hz .
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Get Started with Signal Processing Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!