相关疑难解决方法(0)

计算互相关函数?

在R,我正在使用ccf或acf计算成对的互相关函数,以便我可以找出哪个班次给了我最大值.从它的外观,R给我一个标准化的值序列.在Python的scipy中是否有类似的东西,或者我应该使用该fft模块来做它?目前,我的工作如下:

xcorr = lambda x,y : irfft(rfft(x)*rfft(y[::-1]))
x = numpy.array([0,0,1,1])
y = numpy.array([1,1,0,0])
print xcorr(x,y)
Run Code Online (Sandbox Code Playgroud)

python statistics numpy r scipy

30
推荐指数
3
解决办法
8万
查看次数

Python交叉相关

我有一对1D数组(不同长度),如下所示:

data1 = [0,0,0,1,1,1,0,1,0,0,1]
data2 = [0,1,1,0,1,0,0,1]
Run Code Online (Sandbox Code Playgroud)

我想获得python中2系列的最大互相关.在matlab中,xcorr()函数将返回OK

我尝试了以下两种方法:

  1. numpy.correlate(data1, data2)
  2. signal.fftconvolve(data2, data1[::-1], mode='full')

这两种方法都给了我相同的值,但是我从python获得的值与matlab的值不同.Python给出了整数值> 1,而matlab给出了0到1之间的实际相关值.

我已经尝试首先对2个数组进行标准化(值均值/标准差),但我得到的互相关值是数以千计,似乎不正确.

Matlab还会给出一个交叉相关性最大的滞后值.我假设使用索引很容易做到这一点,但如果我的数组包含数以万计的数值,那么最合适的方法是什么呢?

我想模仿xcorr(matlab的功能,有关如何在python中做到这一点的任何想法?

python matlab signals correlation

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×2

correlation ×1

matlab ×1

numpy ×1

r ×1

scipy ×1

signals ×1

statistics ×1