如何提取非负信号中单个尖峰的特征?

信息处理 离散信号 Python 小波 特征提取 特征检测
2022-02-06 04:04:30

我有非负数据(从某种意义上说,基线以下没有信号)尖峰波形,它们是一维数字数组的形式:

非负尖峰波形

跨越某个阈值的尖峰被认为是真实的信号事件,我希望能够测量单个事件的属性,例如它们的幅度、上升时间、衰减时间、持续时间和半宽度。

信号很干净,所以我想我不需要一些花哨的机器学习算法。小波变换方法会给我需要的结果吗?如果不是,这里最好和最简单的方法是什么?

2个回答

连续小波变换可以为稀疏的分段规则信号提供信息和参数。与您相关的一个示例出现在 MRS 中的连续小波变换中,A. Suvichakorn, C. Lemke, A. Schuck, J.-P。安托万,如下图所示。

在此处输入图像描述

在我对“反指数函数的最小二乘拟合”的回答中给出了一种测量衰减特性的技术此方法还为您提供了一个健身指标,该指标也可以在单个循环中计算。请注意我在评论中的建议,使用 +++--- 模式而不是 +-+-+- 模式,我在找到衰减率时给出的答案。

一个好的振幅只是你的最大值。您可能希望对峰值及其相邻邻居进行平均,因为峰值对采样时间很敏感。

一个好的特征持续时间是左侧几乎垂直的线与右侧的衰减曲线在峰值高度的一半处的距离。

可以通过将宽度除以高度来形成纵横比度量。

这应该为您提供一组很好的数字来识别和描述您的事件。它们的计算效率也相当高。

领先的峰值对我来说也像是一个事件。如果感兴趣的事件必须具有一定的高度,那么这个问题就会变得容易得多。

希望这可以帮助。

赛德


跟进

再三考虑,您最好在固定高度测量脉搏宽度。也许,您的截止阈值将是一个很好的高度,因为您总是会得到一个值。对于左侧,您应该进行线性回归以找到最佳线。