如何检查一个信号是否主要由几个脉冲峰组成?

信息处理 无限脉冲响应 数字滤波器 峰值检测
2022-02-20 01:13:50

我正在研究一个产生不同类型信号的问题,我需要在低通滤波后检测峰值,然后find_peaksscipy. 例如,下面的一个:

在此处输入图像描述

然而,我面临一些具有脉冲形状的信号,例如:

在此处输入图像描述

或者,

在此处输入图像描述

过滤此类信号会破坏峰值的位置,有时会导致将两个或多个峰值合并为一个。因此,我无法正确提取峰值。

有没有一种方法可以推断信号是否有脉冲(几个到多个尖峰)?这将帮助我轻松地直接提取峰。

我非常感谢任何意见。

2个回答

您可以使用峰度来衡量您的信号有多“尖峰”。或者平坦度度量,它是信号的几何平均值与其算术平均值的比值。任何不是相对平坦的信号都将具有接近 0 的平坦度值。

Flatness=n=0N1x(n)N1Nn=0N1x(n)

这是我思考了一段时间的问题。对于基于稀疏代理和噪声估计器的度量,我还没有得到一个明确的解决方案,这里有一些想法欢迎任何想与我分享想法并详细说明的人。

首先,这是一种“沙堆问题”。一粒沙不成堆。两个都不是,以此类推。但如果你继续添加谷物,总有一天你会变成一堆。到达极限的确切数量现在,假设你已经有一个沙堆。取出一粒。还是一堆。你会明白这一点。堆变成一些谷物的确切数量也不清楚,很可能是ULLU

这个故事提醒我们,一些孤立的峰值或脉冲尖峰可能看起来是孤立的。然而,结合足够多的峰,你会得到一个完美的……任何信号。将大量精细高斯拟合到曲线是许多解决方案的问题,我不知道有一种稳定而强大的算法来完成这项工作。总之,这可能是孤立峰值和顶部信号之间的连续统一体。对我来说,这个问题的关键在于稀疏性的概念,或者信号的集中程度。您的问题中的限制对我来说是:

  • 信号可以具有不同的长度(160、6500、50000),因此您正在寻找长度不变的度量,
  • 峰值是正的,具有恒定或衰减幅度,
  • 可能有一个正的非零基线水平(见信号 1),
  • 可能会有一些噪音(也有正振幅)。

对我来说,所需的最少成分与稀疏性的概念有关:

  • 正阈值,以考虑背景噪声和偏移量,τ
  • 一个稀疏度量,应用于(一种收缩)。xkτ=max(xk,τ)τ

计数度量应该是最合适的稀疏度量。可以将其与样本数量相商以获得长度不变的度量,该度量将产生一定百分比的“不太低”样本。然而,它对阈值有点敏感。开创性论文 比较稀疏度度量提供了不同稀疏度度量的有用比较,并在它们满足某些公理时对其进行排名。基尼指数排在第一位,这是您的一个选择。其他有趣的指标涉及规范的比率。它们对我来说很有趣,因为它们被用于我们对稀疏信号恢复的两个贡献(在噪声和低通滤波下)。作品是 SOOT 和 SPOQ: 0Euclid in a Taxicab: Sparse Blind Deconvolution with Smoothed ℓ1/ℓ2 正则化SPOQ ℓp-Over-ℓq 正则化用于质谱的稀疏信号恢复

以上所有内容都与经典的有界不等式有关。假设我们有一个长度为,只有个非零样本和然后:xN0(x)=SNpq

q(x)p(x)S1p1qq(x)

这个不等式的好处是它是极值的:在有趣的条件下满足边界。对于最稀疏的信号(只有一个非零样本), 对于最小支持的稀疏信号(个样本上的所有信号),则:

q(x)=p(x)
SS
p(x)=S1p1qq(x)

由于是未知的,因此一个量如下:S

(p(xτ)q(xτ))qpqp

可以粗略估计您的信号是如何尖峰的。

编辑:@orchi_d 的答案是相关的:峰度和平坦度是与规范或准规范相关的比率。p