【发布时间】:2020-06-19 16:23:01
【问题描述】:
我正在以两个 numpy 数组的形式从振动传感器接收数据。第一个数组表示振动测量的实际值,第二个数组是相应的时间信息(时间戳)。例如:
vibraton_data = np.array([621,1546,262])
timestamps = np.array([1592583531, 1592583548, 1592583555])
这意味着对于每次振动测量,我都有时间信息。
我现在想应用快速傅立叶变换。有谁知道这是怎么做到的吗?我的第一次尝试是这样的:
N = 600
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
yf = fft(vibration_data)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
但我不知道如何处理我的时间数组中的时间信息。
【问题讨论】:
-
我相信你必须使用非均匀 FFT,比如this
-
使用这种方法有什么好处?为什么标准 fft 在这里不起作用?
-
嗯,你有非均匀的时间网格,这就是原因。统一时间网格假设中的标准 FFT 根本不需要 X 值。
-
我自己从未使用过 NFFT,也许有比我建议的更好的软件包。您可能会重新提出问题并专门针对 NFFT 提出问题
-
@SeverinPappadeux 非常感谢。我只是想了一下,认为时间信息在这里并不重要,因为我只想查看数据在频谱中的样子。当我只有一个 np.array 时,如何在这里应用正常的 FFT?