normalisation of frequency axis while using fft function in matlab

3 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Vieniava
Vieniava el 11 de Feb. de 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 comentarios
Tejas
Tejas el 12 de Feb. de 2011
clear all
clc
close all
time=0:0.001:0.5;
Vm=230;
freq=50;
Va = Vm*sin(2*pi*freq*time);
Vieniava
Vieniava el 12 de Feb. de 2011
Bulls eye! "time=0:0.001:0.5" that means your frequency sampling is 1/0.001 = 1000 Hz .

Iniciar sesión para comentar.

Más respuestas (1)

ilyas
ilyas el 5 de Jun. de 2012
What about the double-sided spectrum?
Thank you

Categorías

Más información sobre Get Started with Signal Processing Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by