matlab - 如何检测线性递减数据集中的峰值?
问题描述
我有一个如下所示的数据集:
这是一种随高度线性下降的信号,但最终会出现峰值,我想检测这些峰值出现在哪个高度,而不是最大值在哪里,而是在哪里开始增加和减少。
我试图检测点 n+1 和 n-1 之间的差异,但增加非常小,我想检测它何时开始增加和/或减少。
我也使用了这个movmean
功能来减少噪音。但是,每个点之间的差异太小,算法无法检测到峰值。
此外,并非所有数据都具有这些值,这意味着我不能使用诸如“检测信号何时达到 19 值”之类的东西,因为有时值较小。
总而言之,关键是数据总是线性递减,那些峰值可能会出现,我想检测它们从哪里开始和结束。
如果有人可以帮助我,我将非常感激,非常感谢!
解决方案
推荐阅读
- c# - 将 JSON 响应数据反序列化到列表中的问题
- java - 在背景图片上叠加图片
- python - 如何在 show_popup() 方法中转义所有 HTML 实体并修复 Sublime Text 3 插件中的解析错误?
- python - 循环遍历 xlsx 文件
- python - 显示到 pygame 时未显示 Unicode 字符
- apache-flink - statefun 正在给 org.apache.flink.client.program.ProgramInvocationException classloader.parent-first-patterns.additional;
- javascript - 在列表 CSS 中的行项目之间插入空格
- docker - Docker:我应该将我的 apt-get install / build / cleanup 步骤合并到一个大的 RUN 中吗?
- python - 如何在python中获取单击和拖动事件的光标位置?
- php - Laravel - 控制器看不到图像输入