查找噪声数据的基线(参考)和 2 个信号之间的滞后/领先

信息处理 信号分析 噪音 互相关 r
2022-01-29 17:00:52

我有 2 个随时间变化的数据集,如图所示 - Sa - Red , Sb - BLACK 。我正在R中进行分析。整个数据集和30-31秒的一段数据如下所示 在此处输入图像描述--

从图中可以看出,数据集看起来相似,但一个数据集在时间上领先(或滞后)另一个数据集。对于其中一个信号相对于另一个而言,向下的峰值似乎在时间上略有偏移。我想确定以下内容——

  1. 两个信号的基线值(参考)——是否有统计方法可以找出这一点?在确定基线之前是否需要应用一些信号处理技术?对于 Sa,基线噪声更大并且上下移动——因此似乎很难假设一条恒定的参考线

  2. 这两个信号之间的时间滞后/超前——我试图通过删除近似基线上方的数据点并将其替换为近似基线值来使参考线保持不变。然后我发现了值 sa1, sa2, sa3, sa4, ..etc。同样,我发现 sb1 ,sb2, sb3, sb4,... 等等。

在此处输入图像描述

2a. 有没有办法可以将 sa1 映射到 sb1,将 sa2 映射到 sb2..等等?这个想法是计算 (sa1-sb1), (sa2-sb2),... 并找出整个数据集上两个信号的平均时间滞后/超前。我知道这种方法非常近似,因为在假设仅基于眼球的基线时分辨率会丢失。

2b。是否有另一种计算时间滞后/领先的方法?或者信号下降到参考线以下并回到参考线的确切时间 sa1,sa2.. 等?互相关会起作用吗?如何将它用于噪声信号?

3.下降峰的频率

1个回答

您可以尝试 R 中的函数“ccf”。我设置数据的方式是:df= time | 红色 | 黑色 | 红色差异 | 黑色差异 |

** 确保您的时间间隔是恒定的。即每5秒/10秒等

red diff 和 black diff 分别是红色和黑色数据列中相邻值之间的差异。即差异(df$red)=红色差异

然后对 2 个差异列执行 ccf 并根据需要调整“lag.max”以查看生成的图。图中应该有一个峰值,它是红色和黑色之间的滞后(发生最多)。