我有一个或多或少重复的信号(从一个到另一个不完全相同,请参见左边的图)。如果我使用自相关,我会得到一些最大值(右图),但它并没有告诉我在哪里(哪个样本数)相关性很高。它给了我滞后,但我丢失了位置信息,即信号发生的原始数据中的样本数。例如在自动校正中。图中,样本 500 处的第二个峰值应对应于数据图中样本 750 处的信号。我可以通过使用一个在数据轨迹上移动并找到最大值的小窗口来做到这一点,但这需要太多时间。在matlab中有没有更快的方法来做到这一点?谢谢。
问问题
397 次
2 回答
1
我认为你误解了自相关。5000 处的相关峰值不是由于时间序列中的单个位置,而是因为当偏移 5000 个样本时,整个时间序列与其自身相似。该峰值很大程度上是由于时间序列峰值 18000 和时间序列峰值 7500。例如,如果您没有真正的周期性时间序列(也就是说,如果脉冲之间的间隔不均匀)。
如果您可以隔离一个脉冲示例,并选择您想要的位置作为您的 t=0,那么该脉冲与时间序列的相关性将为您提供您想要的。每个脉冲都会在它发生的时间位置清楚地亮起。那么你只需要一个寻峰器。
于 2012-11-28T13:56:55.167 回答
0
是的,您可以使用获得最大振幅的元素的索引
treshold = max(a)/2
ind = find(a>=treshold)
其中 a 是包含相关结果的矩阵。
于 2012-11-28T09:00:52.803 回答