通过测量峰值之间的距离来确定信号的周期,并使用信号处理工具箱™在噪声信号中找到峰值。
信号的峰值是最明显和最有用的特征。因此,峰值分析是信号处理的一个重要领域。你可能想知道信号中有多少个峰,它们之间的距离有多远,或者它们是否遵循某种模式。在本视频中,我将向您展示如何使用查找峰值函数检测、定位和显示信号的峰值。我将集中讨论两个典型的任务——通过测量信号峰值和在噪声信号中寻找峰值之间的距离来确定信号的周期。
让我们将一些数据加载到MATLAB中®.这张图显示了过去300年来观测到的太阳黑子的数量。太阳黑子是出现在太阳表面的黑子或斑块。
它们的数量是周期性变化的。这个信号显然包含许多峰值。让我们用找峰函数来看看它们在哪里。函数阻塞信号并在没有输出参数的情况下调用它时显示所有峰值。
您可以使用结束峰值选项限制峰值显示的数量。在这里,我选择显示前15个高峰。您可能还想过滤掉与其他峰非常接近而不能提供新信息的峰。使用最小峰距离选项忽略那些紧密间隔的峰。有关可用属性的列表,请参阅查找峰值的文档。
我们现在可以计算最大值之间的距离,以了解太阳黑子活动达到峰值的频率。寻找峰值揭示了峰值的振幅和它们的位置。将这个函数应用到信号上,就会返回一些太阳黑子在高峰年和高峰年本身。
我设置最小峰距离参数为6,以忽略紧密间隔的峰。第一个高峰出现在1705年,第二个出现在1717年,以此类推。第一次和第二次高峰之间有12年的间隔,第二次和第三次高峰之间有10年的间隔,以此类推。我们可以对峰值年份使用diff函数,求出平均区间。这个数字是10.96年,大约等于太阳黑子实际的11年周期。
接下来,我们将看到如何检测噪声信号中的峰值。让我们在MATLAB中加载一个心电信号片段。尽管有这些噪声,我们还是在心电信号中看到了重复的结构。
最引人注目的上下模式称为QRS复合体。心脏病学家利用QRS复合体的特性来诊断心脏异常行为。向上的波峰叫做R波。要检测它们,将最小峰值高度设置为0.5毫伏。有可能一些不是R波的峰值会因为噪声而高于0.5阈值。为了过滤假阳性,我们可以设置最小峰距为200,从而实现最小峰-峰分离。
R波之后的下峰是S波。为了找到它们,我们可以像之前一样把信号倒过来。在R波之前的下降叫做Q波。它们更难以探测,因为它们体积小得多,经常被淹没在噪音中。一种解决方案是使用平滑滤波器来消除一些噪声。Savitzky-Golay过滤器是一种常用的清除信号的工具。
如果我们把原始的和平滑的数据绘制出来,我们可以看到滤波使Q波更加明显。我们现在可以探测、定位和显示Q峰,就像我们对R波和S波所做的一样。一旦我们发现并描述了这三组峰,我们就可以详细研究心电信号了。有关更详细的信息,请参阅信号处理工具箱文档中的峰值分析示例。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。