I am working on balancing an air-spindle. For the unbalance analysis I use an accelerometer (NI device). I have the voltage signal from the accelerometer corresponding to the vibration of spindle at a particular frequency (rpm) saved in an excel file. To analyze the unbalance from this vibration signal I use the "fft" function in Matlab. My data is sampled at a sampling frequency of 100,000 Hz. I am using the same example code given in the fft documentation. In the documentation the fft has peak at the frequency corresponding to the frequency of sine wave signal (50Hz and 120Hz). When I use the same code for getting fft of my sampled data for a rotational frequency of 40Hz (2400rpm), I do not get the peak at 40Hz. Am I doing something wrong?? where should I mention the rotational frequency of my spindle in the fft code. I would like to know the phase and magnitude of vibration signal for my rotational frequency (40Hz). the fft plot looks like this. My code is as follows. Any help is much appreciated.
%For vibration analysis of signal without any trial mass.
filename = '2400RPM.xlsx';
sheet = 1;
xlRange = 'C40:C516039'; % Column C has sampled vibration data
x = xlsread(filename,sheet,xlRange);
T=1/100000;
Fs=1/T;
L = length(x);
t= (0:L-1)*T;
Y = fft(x);
mag1 = abs(Y/L);
mag = mag1(1:L/2+1);
mag(2:end-1) = 2*mag(2:end-1);
ph1 = rad2deg(Y/L);
ph = ph1(1:L/2+1);
ph(2:end-1) = 2*ph(2:end-1);
f=Fs*(0:(L/2))/L;
%PLOTTING RESULTS
%--------------------------------------
subplot(2,2,[1,2])
plot(t,x);
title('Vibration Signal: 2400RPM');
xlabel('Time (seconds)');
ylabel('Amplitude (voltage)');
subplot(2,2,3)
plot(f,mag);
title('Magnituge Plot');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
subplot(2,2,4)
plot(f,ph);
title('Phase Plot');
xlabel('Frequency (Hz)');
ylabel('Phase (degree)');