【发布时间】:2022-08-16 23:55:20
【问题描述】:
我在 python 中使用 numpy.fft 来计算快速傅立叶变换。特别是,我正在使用 rfft,因为我有一个真实的信号并且不需要负频率。我的问题是:当我去计算 FFT 时,我的信号长度必须是 2 的幂吗?我的信号有 184320 个点,所以我想知道是否需要在 131072 (2^17) 处截断我的信号,或者用零填充它,使其长度为 262144 (2^18)?我的下一步是进行窗口化,所以我想确保在我做任何进一步的事情之前我已经正确地执行了我的 FFT。
-
您需要了解 FFT 的好处,尤其是您是否关心信号随时间可能发生的变化……要了解随时间变化的变化,您需要使用尽可能少的样本,但是根据定义,这也会增加频率的大小从您的 FFT 调用返回的每个数组元素的增量...通过使用您输入 FFT 的各种大小的样本数组来进行实验...自然使用较小的输入数组大小将使您的运行时执行运行得更快...我总是使用 2 数组大小的幂...我相信 FFT 也可以,但请检查
-
@ScottStensland,感谢您的回复。在某些情况下,我有一个在 184320 点内捕获了许多周期的波形。您是否建议仅在几个周期后截断信号?我尝试对我的信号应用一个窗口,并且 fft 的幅度与非窗口版本显着不同。这可能是因为我包括了多少个时期?