python - jupyter notebook中FFT信号的峰值检测
问题描述
我试图找到我使用 FFT 转换为频域的 EMG 信号的峰值。我的问题是,当我尝试使用 scipy.signal 库中的命令 Find_peaks 时,它会给我一个警告ValueError: x
must be a 1D array。有人可以指出我正确的道路吗,因为我很难理解如何在频域中找到信号的峰值,我应该将其转换回时域还是找到一种方法来压缩大批。(PS我还是个新手,非常感谢所有的帮助)。这就是我能够编码的
解决方案
scipy 的 FFT 的结果是一个多维数组,其中包括变换的复数结果,表示为 2 元素向量。该find_peaks
调用只能接受一维数组。您可能需要将这些转换为标量(可能取元组的绝对值),或者您可以使用在更多域中运行的峰值检测器。查看此相关问题以获取一些选项。
如果您转换为 1D,peakutil是一个可以帮助您的软件包(尽管它似乎并没有比find_peaks
您的需要强大得多)。
更多细节,你也可以在这里看到一些问题的答案,一个相关的问题。
推荐阅读
- mongodb - MongoDB和摩卡
- angular - 合并两种不同角度配置的fileReplacement属性
- spring - Hibernate 在多对多关系中创建两个表
- c# - 使用 SelectList 和 DropDownList 传递 TimeRange 对象
- node.js - 放大配置 - 错误:uncaughtException: spawn cmd ENOENT
- css - 在 CSS 动画中混合颜色
- node.js - 使用 Node.js 通过 json 中的变量插入值
- uml - 更好的 UML 类图结构来表示个人的婚姻
- sql - Oracle:事务表中的新用户计数
- autohotkey - 如何使用 AHK 发送正斜杠