Jupyter笔记本电脑中FFT信号的峰值检测

时间:2019-11-10 16:41:39

标签: python jupyter-notebook fft

我正在尝试查找EMG信号的峰值,并使用FFT将其转换为频域。我的问题是,当我尝试使用scipy.signal库中的命令Find_peaks时,它警告我 ValueError:x必须是一维数组。有人可以指出我正确的路径,因为我很难理解如何在频域中找到信号的峰值,我应该将其转换回时域还是应该找到一种压缩信号的方法?数组。 (P.S.我仍然是新手,非常感谢所有帮助。)This is what I was able to code

This is the error

1 个答案:

答案 0 :(得分:0)

scipy FFT的结果是一个多维数组,其中包含转换的复数结果,表示为2元素向量。 find_peaks调用只能接受一维数组。您可能需要将它们转换为标量(也许取元组的绝对值),或者可以使用在更多域中运行的峰值检测器。请查看this related question中的某些选项。

如果您转换为1D,peakutil是一个可以为您提供帮助的软件包(尽管它并没有比find_peaks强大得多才能满足您的需求)。

有关更多详细信息,您还可以查看有关问题here的一些答案。

相关问题