title: Fast Fourier Transform on motor vibration signal in python
body: <p>I collected some data(178,432) of motor vibration signal, and the unit was g(Acceleration). The Sampling rate of signal is 25000/sec, motor speed is 1500rpm(25hz). But while I try to do the FFT using python, the picture isn't right. Can anyone help me with it? </p>
  
  <p>my data : <a href="https://drive.google.com/file/d/12V8H3h6ved4lBflVxoHo2Qv5rfVZqXf0/view?usp=sharing" rel="nofollow noreferrer">https://drive.google.com/file/d/12V8H3h6ved4lBflVxoHo2Qv5rfVZqXf0/view?usp=sharing</a></p>
  
  <p>Here is my code:</p>
  
  <pre><code>import scipy.fftpack
  import numpy as np
  import pandas as pd
  import matplotlib.pyplot as plt
  
  nor = pd.read_csv('normal.csv', header=1)
  
  N = nor.size # data size
  T = 1.0 / 25000.0 # inverse of sampling rate
  x = np.linspace(0.0, N*T, N)
  y = nor.values
  yf = np.abs(scipy.fft(y))
  xf = scipy.fftpack.fftfreq(nor.size, d=T)
  
  fig, ax = plt.subplots()
  ax.plot(np.abs(xf), np.abs(yf))
  plt.show()
  </code></pre>
  
  <p>my FFT plot:</p>
  
  <p><img src="https://i.stack.imgur.com/mUKFz.png" alt="enter image description here"></p>