【发布时间】:2020-02-07 14:11:21
【问题描述】:
我正在尝试在 python 中使用 FFT 方法来转换从加速度计收集的 3d 振动数据。我们将频率设置为 50 赫兹。
当我试图绘制数据时,我得到了一个奇怪的图表。有人可以告诉我为什么吗?
import scipy.fftpack
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
Y = pd.read_excel(r'/Users/0000/Documents/0000/data/accelData1.xls')
y1 = Y['X'].values
y2 = Y['Y'].values
y3 = Y['Z'].values
y = y1 + y2 +y3
N = 1280
T = 0.01
x = np.linspace(0.0, N*T, N)
yf = np.abs(scipy.fft(y))
xf = np.linspace(0.0, 1.0/(2.0*T), N//2)
plt.plot(yf[0:N//2], xf, label = 'signal')
fft 图
【问题讨论】:
-
请参考 here 获取 Matplotlib 图(应该是 x,y)。此外,您在
yf列表的开头有不同的高值,因此请检查从yf[0]到yf[1]的值。另外请解释图中的奇怪之处 -
如果您想观察与 x 和 y 成 45 度角的向量,添加三个分量确实有意义。绝对值是添加平方并取根。还不清楚的是为什么加速度计数据中有直流偏移。您是否处于不断加速的参考框架中?
标签: python numpy matplotlib fft