jupyter notebook 中 FFT 信号的峰值检测
Peak Detection of an FFT signal in jupyter notebook
我试图找到使用 FFT 转换为频域的 EMG 信号的峰值。我的问题是,当我尝试使用 scipy.signal 库中的命令 Find_peaks 时,它会警告我 ValueError: x
must be a 1D array.有人能给我指出正确的路径吗,因为我很难理解如何在频域中找到信号的峰值,我应该将它转换回时域还是应该找到一种方法来压缩大批。 (P.S。我还是个新手,非常感谢大家的帮助)。This is what I was able to code
This is the error
scipy 的 FFT 的结果是一个多维数组,其中包含转换的复数结果,表示为 2 元素向量。 find_peaks
调用只能接受一维数组。您可能需要将它们转换为标量(可能取元组的绝对值),或者您可以使用在更多域中运行的峰值检测器。查看 this related question 了解一些选项。
如果您转换为 1D,peakutil 是一个可能对您有所帮助的程序包(尽管它似乎并不比 find_peaks
更能满足您的需求)。
更多详情,您还可以查看相关问题here的部分答案。
我试图找到使用 FFT 转换为频域的 EMG 信号的峰值。我的问题是,当我尝试使用 scipy.signal 库中的命令 Find_peaks 时,它会警告我 ValueError: x
must be a 1D array.有人能给我指出正确的路径吗,因为我很难理解如何在频域中找到信号的峰值,我应该将它转换回时域还是应该找到一种方法来压缩大批。 (P.S。我还是个新手,非常感谢大家的帮助)。This is what I was able to code
This is the error
scipy 的 FFT 的结果是一个多维数组,其中包含转换的复数结果,表示为 2 元素向量。 find_peaks
调用只能接受一维数组。您可能需要将它们转换为标量(可能取元组的绝对值),或者您可以使用在更多域中运行的峰值检测器。查看 this related question 了解一些选项。
如果您转换为 1D,peakutil 是一个可能对您有所帮助的程序包(尽管它似乎并不比 find_peaks
更能满足您的需求)。
更多详情,您还可以查看相关问题here的部分答案。