Python 三维振动数据的快速傅里叶变换

Python 三维振动数据的快速傅里叶变换,python,numpy,matplotlib,fft,Python,Numpy,Matplotlib,Fft,我正在尝试使用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')

我正在尝试使用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图


您的图形是颠倒的,打印时x和y颠倒了

请参考Matplotlib绘图(它应该是x,y)。此外,您在
yf
列表的开头有一个不同的高值,因此请检查
yf[0]
yf[1]
之间的值。另外,请解释图形中的奇怪之处。如果你想观察与x和y成45度角的向量,这三个分量是有意义的。绝对值是将平方相加并取根。还不清楚的是,为什么加速度计数据中存在直流偏移。你是否处在一个不断加速的参照系中?