相关疑难解决方法(0)

在Python中计算规范化的互相关

在参考Chelton(1983)后,我一直在努力计算两对向量(x和y)的自由度,这是:

根据切尔顿(1983)的自由度

并且我找不到使用np.correlate计算归一化互相关函数的正确方法,我总是得到一个不在-1,1之间的输出.

为了计算两个向量的自由度,有没有简单的方法来对互相关函数进行归一化?

python numpy correlation cross-correlation

10
推荐指数
2
解决办法
7636
查看次数

解释(和比较)numpy.correlate的输出

我看过这个问题,但它并没有给我任何答案.

基本上,我如何确定是否存在强相关np.correlate?我期望得到与matlab相同的输出,我可以理解xcorrcoeff选项(1是滞后的强相关,l0是滞后没有相关l),但np.correlate产生大于1的值,即使输入向量已经归一化0和1.

示例输入

import numpy as np
x = np.random.rand(10)
y = np.random.rand(10)

np.correlate(x, y, 'full')
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出:

array([ 0.15711279,  0.24562736,  0.48078652,  0.69477838,  1.07376669,
    1.28020871,  1.39717118,  1.78545567,  1.85084435,  1.89776181,
    1.92940874,  2.05102884,  1.35671247,  1.54329503,  0.8892999 ,
    0.67574802,  0.90464743,  0.20475408,  0.33001517])
Run Code Online (Sandbox Code Playgroud)

如果我不知道最大可能的相关值是什么,我怎么能分辨出什么是强相关性以及什么是弱相关?

另一个例子:

In [10]: x = [0,1,2,1,0,0]

In [11]: y = [0,0,1,2,1,0]

In [12]: np.correlate(x, y, 'full')
Out[12]: array([0, 0, 1, 4, 6, 4, 1, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy cross-correlation

5
推荐指数
1
解决办法
4432
查看次数

Numpy Correlate没有提供补偿

我正在尝试使用Python查看天文光谱,并且正在使用numpy.correlate尝试查找径向速度偏移。我正在将每个光谱与一个模板光谱进行比较。我遇到的问题是,无论我使用哪种光谱,numpy.correlate都指出,相关函数的最大值出现在零像素偏移处,即光谱已经对齐,这显然是不正确的。 。以下是一些相关代码:

corr = np.correlate(temp_data, imag_data, mode='same')
ax1.plot(delta_data, corr, c='g')
ax1.plot(delta_data, 100*temp_data, c='b')
ax1.plot(delta_data, 100*imag_data, c='r')
Run Code Online (Sandbox Code Playgroud)

此代码的输出如下所示:

是)我有的

请注意,尽管模板(蓝色)和观察到的(红色)光谱清楚地显示了偏移,但互相关函数在零像素偏移处仍达到峰值。我希望看到的有点像(尽管不完全一样;这只是我可以产生的最接近的表示形式):

我想要的是

在这里,我在模板数据中引入了50个像素的人为偏移,现在它们或多或少地排列在一起。我想要的是,在这样的情况下,峰值出现在50个像素的偏移处而不是零处(我不在乎底部的光谱是否排列整齐;这仅仅是为了视觉表示) 。但是,尽管经过数小时的工作和在线研究,但我找不到找到描述此问题的人,更不用说解决方案了。我尝试使用ScyPy的相关函数和MatLib的xcorr,并且bot展示了同样的东西(尽管我被认为是本质上相同的功能)。

为什么互相关不按我期望的方式运行,如何使它以有用的方式运行?

python numpy correlation cross-correlation

2
推荐指数
1
解决办法
1121
查看次数

标签 统计

cross-correlation ×3

numpy ×3

python ×3

correlation ×2

matlab ×1