我创建了一个程序,用于跟踪激光的红点,而不是一个人在超过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()
到目前为止,我已经生成了以下图表:
任何指导都将受到高度赞赏。