Python 理解1D np的结果
我试图使用Python 理解1D np的结果,python,numpy,signal-processing,cross-correlation,Python,Numpy,Signal Processing,Cross Correlation,我试图使用numpy.correlate确定两个1D时间序列之间的相似性 我写了一个小示例程序来了解更多关于互相关的工作原理,但是我还没有完全理解相关输出的趋势 代码: 这个图表给我提出了几个问题。据我所知,互相关依赖于卷积运算(本质上是两个信号内积的积分-考虑到一些滞后) 如果arr_2从索引0到50充满了0,为什么相关信号(上面)从(0,50)稳步增加 如何设置卷积运算的延迟。从numpy文档中,我找不到允许我调整滞后的参数 50处的峰值是由于两个信号在指数50处排列,但为什么此后相关性会
numpy.correlate
确定两个1D时间序列之间的相似性
我写了一个小示例程序来了解更多关于互相关的工作原理,但是我还没有完全理解相关输出的趋势
代码:
这个图表给我提出了几个问题。据我所知,互相关依赖于卷积运算(本质上是两个信号内积的积分-考虑到一些滞后)
您似乎对输出的确切内容感到困惑。文件确实有点缺乏。输出计算每个延迟的两个数组之间的相关性。中点是滞后为
0
且相关性最高的位置
仅供参考,您的两个阵列大小不同<代码>arr_1为长度100,
arr_2
为长度101。不确定这是否是故意的。谢谢您的快速回复。中点不是对应于x=50吗,那么在峰值处的滞后不是0而是50吗。所以0滞后在中间。
import numpy as np
import matplotlib.pyplot as plt
#sample arrays to correlate
arr_1 = np.arange(1, 101) #[1, 2, 3, ..... 100]
arr_2 = np.concatenate([np.zeros(50), np.arange(50, 101)]) #[0, 0, ... 50, 51 ... 100]
cross_corr = np.correlate(arr_1, arr_2, "same")
plt.plot(list(cross_corr))