两个信号的统计比较

机器算法验证 时间序列 信号处理 频率 互相关
2022-04-17 13:09:09

我需要开发一种算法来比较两个信号并生成一些指标来描述它们之间的变化。信号处理和分析不是我的强项,所以我将不胜感激!

以下是信号的示例:

信号示例

信号以恒定幅度开始,然后转变为较低的幅度,然后再转变回与开始相同的恒定幅度。中间的部分是感兴趣的区域,这是需要分析的。我期望的一些差异(都在感兴趣的区域内)是:

  1. 感兴趣区域的平均幅度,相对于开始和结束幅度
  2. 下降/上升过渡的斜率以及各个峰和谷的斜率
  3. 波峰和波谷的数量

该算法需要输出一些通用指标,这些指标可用于量化任何或所有这些参数的变化。关于我可以使用什么方法的任何指导都会有很大的帮助。我对互相关了解一些,并且听说过小波变换分析,但我想知道这些是否合适,或者是否有其他方法可以更好地工作。

2个回答

结合 ARIMA 结构和经验可识别的确定性结构(水平位移/本地时间趋势。季节性脉冲和脉冲)的时间序列分析可能对您有所帮助http://www.unc.edu/~jbhill/tsay.pdf良好的分析/软件应该/可以识别 2 个级别转换(3 个制度),这将是您提供“感兴趣区域”的分析的重要起点。如果您希望可以发布您的数据,我将尝试向您和列表展示这一点。

没有一种单一的算法可以产生您想要的结果。

如果您希望比较两个信号,那么从信号处理的角度来看,您可以执行以下操作。

如果信号是静止的,则使用来自 multitaper 包的 multitaper 幅度平方相干性,使用 Harmonic F Statistic 针对结果的白噪声零假设。这将告诉您两个信号重叠的频率。

如果信号是非平稳的,则使用相位微分分析和小波互相关。这将随着时间的推移告诉您两个系列之间的相似性有多强。

关于你想要的输出

1.感兴趣区域的平均幅度,相对于开始和结束幅度

我相信您在这里指的是每个系列的主要频率是什么。您可以通过从 multitaper 中提取跨频率的信号幅度来计算这些。

2.下降/上升过渡的斜率和个别峰谷的斜率

使用渐变来衡量这一点。梯度表示代表趋势或下降的函数图形的切线斜率。梯度指向函数最大增长率的方向,其大小是该方向上图形的斜率。

3.峰和谷的数量使用R包MassArray中的函数finpeaks