关于互相关的一个问题&相关系数

时间:2011-06-08 20:13:36

标签: math matlab data-analysis cross-correlation

  

可能重复:
  Matlab Cross correlation vs Correlation Coefficient question

当我在MATLAB中交叉关联2个数据集ab(每个73点长)并绘制图形时,它看起来像一个145点的三角形。当我绘制范围为+/- 1的互相关输出时,我在相关系数和类似三角形的图之间感到困惑。

2 个答案:

答案 0 :(得分:33)

我认真地认为你需要阅读更多有关互相关函数的信息。来自统计书的相关系数,因为你的混淆比MATLAB更基础。除非你知道你正在处理什么,否则你无法理解MATLAB给你的东西,即使你得到了正确的程序。

互相关:

以下是您在cross correlation中所做的事情。请按以下方式考虑数据AB

    A                   B

    x                   
x   |       x           x   
|   |       |       x   |   
|   |   x   |       |   |   x
|   |   |   |       |   |   |
---------------     -----------
0   1   2   3       0   1   2 

然后,您可以B并将其一直滑动到最后,以便B的最后一点和A的第一个点对齐:

                x                   
            x   |       x 
            |   |       |   
            |   |   x   |       
            |   |   |   |
----x---x------------------
   -2  -1   0   1   2   3

        x   
    x   |   
    |   |   x
    |   |   |
----------------x---x---x--
   -2  -1   0   1   2   3

在数据不存在的地方填入零,即在这种情况下,{0}超过0 B,然后在0之前A。然后你逐点相乘并添加,给{{1} }作为互相关的第一点。

然后向右滑动0 + 0 + 3 + 0 + 0 + 0 = 3一步并重复

B

x x | x | | | | | x | | | | | ----x------------------ -1 0 1 2 3 x x | | | x | | | ----------------x---x-- -1 0 1 2 3 作为互相关中的第二个点。你一直这样做,直到你将0 + 9 + 4 + 0 + 0 = 13一直滑到B的另一端。

得到的向量是A,-1是因为我们从0开始重叠,所以它少了一点。所以在这里你应该在互相关中获得length(A)+length(B)-1分,在你的情况下,你应该获得3 + 4 - 1=6分。

如您所见,任何点的互相关矢量的值都不必在±1之内。当两个数据矢量“最相似”时,互相关具有最大值。峰值从零开始的“偏移”表示两个数据集之间的“滞后”。

相关系数

correlation coefficient(我假设Pearson的)只是一个定义为

的数字
73 + 73 -1 = 145

其中 Covariance(A,B) r = -------------------------------- ________________________________ \|Covariance(A,A)*Covariance(B,B) 更好地称为Covariance(A,A)。这个数量的范围可以从Variance(A)-1(至于为什么它必须介于±1之间,查找Cauchy-Schwartz inequality

注意:

虽然您可以肯定地计算具有不相等数据点的两个数据向量的互相关,但不能计算它们的相关系数。协方差的概念衡量两个变量/数据集如何一起变化,而不是为不相等的数据集定义。

答案 1 :(得分:0)

你读过那个函数返回的内容吗? http://www.mathworks.com/help/toolbox/signal/xcorr.html

  

c = xcorr(x,y)返回长度2*N-1 向量中的互相关序列,其中xy的长度为N向量(N>1)

2*73-1=145以便退房。它下面的公式解释了原因。