首页 > 解决方案 > jupyter notebook中FFT信号的峰值检测

问题描述

我试图找到我使用 FFT 转换为频域的 EMG 信号的峰值。我的问题是,当我尝试使用 scipy.signal 库中的命令 Find_peaks 时,它会给我一个警告ValueError: xmust be a 1D array。有人可以指出我正确的道路吗,因为我很难理解如何在频域中找到信号的峰值,我应该将其转换回时域还是找到一种方法来压缩大批。(PS我还是个新手,非常感谢所有的帮助)。这就是我能够编码的

这是错误

标签: pythonjupyter-notebookfft

解决方案


scipy 的 FFT 的结果是一个多维数组,其中包括变换的复数结果,表示为 2 元素向量。该find_peaks调用只能接受一维数组。您可能需要将这些转换为标量(可能取元组的绝对值),或者您可以使用在更多域中运行的峰值检测器。查看此相关问题以获取一些选项。

如果您转换为 1D,peakutil是一个可以帮助您的软件包(尽管它似乎并没有比find_peaks您的需要强大得多)。

更多细节,你也可以在这里看到一些问题的答案,一个相关的问题。


推荐阅读