How to scale the frequency axis after performing fft?
Mostrar comentarios más antiguos
Hello, I am trying to analyse signals aquired via an accelerometer for a person walking. suppose I choose the sampling frequency to be 100 Hz. then I would scale the frequency vector as follows
% code
N = length(Xabs);
fgrid = fs*(0:(N-1))/(N);
After I plot, the x-axis of the plot is scaled based on the sampling frequency being 100 Hz. Say the location of the dominant frequency in the plot is 4Hz. Now, if I change the sampling frequency to 1000, the location of the dominant frequency is ten times the previous location.
I have a feeling that my explanation is kinda messy. Here is the question: How can I scale the frequency axis such that, no matter what the sampling frequency is, the location of the dominant frequency is correct and does not change?
here is the complete script I use for your reference
fs = 100;
X = fft(x); % Obtain the DFT using the FFT algorithm
Xabs = abs(X); % Obtain the magnitude
N = length(Xabs);
fgrid = fs*(0:(N-1))/(N);
Xabs = Xabs(1:floor(N/4));
fgrid = fgrid(1:floor(N/4));
plot(fgrid,Xabs);
1 comentario
ASAD RASHEED
el 16 de En. de 2019
Why are you taking the faxis and magnitude till N/4? Should it be till N/2?
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Vibration Analysis en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

