正弦波的自相关

数据挖掘 时间序列 相关性
2022-02-27 08:10:51

我想知道正弦波的自相关图的含义。当时间延迟为 0 时,自相关应给出最高值 1,因为信号的副本与其自身完全相关。通过这个逻辑,在等于信号周期的时间之后,相关性应该再次最大,因为移位的信号又是信号本身。然而,当我在 python 中绘制相关性时,我得到一个不断增加的函数,这违背了我的直觉,即相关函数应该是周期性的。谁能解释为什么自相关以图形形式显示这种趋势?

import matplotlib.pyplot as plt
import numpy as np
time = np.arange(0, 10, 0.1);
y = np.sin(time)
result = np.correlate(y, y, mode='full')
plt.plot(result[:int(result.size/2 )])
plt.show()

在此处输入图像描述

1个回答

您实际上在这里没有问题。实现的方式np.correlate,你首先得到负延迟值。如果您绘制了整个信号,它会看起来像预期的那样。运行plt.plot(result),你会得到

在此处输入图像描述

最大值为 100,表示零延迟。最大值如此之高,是因为np.correlate不会对函数进行归一化,而只是计算总和,如您在文档中所见

此函数计算信号处理文本中通常定义的相关性:

c_{av}[k] = sum_n a[n+k] * conj(v[n])

a 和 v 序列在必要时补零,而 conj 是共轭。

对于您的信号和大于或小于零的延迟,acf 衰减是由于它的有限长度。对于无限信号,您将能够看到没有衰减的周期性。