记录位置值的FFT实现

时间:2017-03-07 08:59:28

标签: python python-2.7 fft

我创建了一个程序,用于跟踪激光的红点,而不是一个人在超过60秒的时间间隔内保持不动。它将激光器X和Y位置的数据记录到当前大约16-19Hz的excel电子表格中。 (我正在寻找增加它的方法)。

我现在有一个时间间隔内X和Y位置的列表,并希望将其转换为频域,以查看我是否可以找到该人从呼吸上下移动的频率等。我有我一直试图为x和y值单独实施FFT,但不确定我是否正确地这样做。

这是我为执行FFT而创建的函数:(x和y是记录值的数组)

def FFT(x, y):
   """
   Preforms a Fast Fourier Transform.
   """

   Fs = 60
   n = len(y)
   T = n/Fs #sampling rate Hz

   t = np.linspace(0,60,n)
   k = np.arange(n)

   frq = k/T
   freq = frq[range(n/2)]

   yf = fft(y)/n
   yf = yf[range(n/2)]

   plt.figure(1)
   plt.subplot(211)
   plt.xlabel('time')
   plt.ylabel('Y')
   plt.plot(t,y, 'bo')

   plt.figure(1)
   plt.subplot(212)
   plt.axis([0.0,60.0,0.0,20.0])
   plt.plot(freq, abs(yf)*2)
   plt.show()

到目前为止,我已经生成了以下图表:

graphs showing 'Y positions vs time' and the 'FFT'

任何指导都将受到高度赞赏。

0 个答案:

没有答案