与Numpy的自相关给出直线?

2024-04-25 03:55:19 发布

您现在位置:Python中文网/ 问答频道 /正文

import numpy as np
import matplotlib.pyplot as plt
def xcorr(x,y):
      result = np.correlate(x, y, mode='full')
      return result[result.size/2:]
a = np.random.rand(1000)+ 40
plt.plot(xcorr(a,a))
plt.show()

为什么这个代码给出了一条向下倾斜的直线?在

我认为a的自相关不应该是一条直线。。。在

这是不是错误的方法来获得与numpy的自相关?在

我在用这个:How can I use numpy.correlate to do autocorrelation?

但是。。 数字关联([4,4,4],[4,4,4],“完整”) 给予 数组([16,32,48,32,16])

numpy版本是1.8.1

非常感谢你的帮助。在


Tags: importnumpyreturnmatplotlibmodedefasnp
1条回答
网友
1楼 · 发布于 2024-04-25 03:55:19

直线是您选择的特定测试用例的结果。如果手动执行该操作,则会得到:

R(-2) = 4*4             = 16;
R(-1) = 4*4 + 4*4       = 32;
R( 0) = 4*4 + 4*4 + 4*4 = 48;
R( 1) =       4*4 + 4*4 = 32;
R( 2) =             4*4 = 16;

对于不同的测试用例,例如numpy.correlate([1,2,3],[1,2,3],"full"),您将得到:

^{pr2}$

它不再是一条直线。在

相关问题 更多 >