8 math matlab data-analysis cross-correlation
可能重复:
Matlab互相关与相关系数问题
当我在MATLAB中交叉关联2个数据集a
和b
(每个73点长)并绘制图形时,它看起来像一个145点的三角形.当我绘制范围为+/- 1的互相关输出时,我在相关系数和类似三角形的图之间感到困惑.
abc*_*bcd 38
我认真地认为你需要从统计书中阅读更多关于互相关函数和相关系数的内容,因为这里的混淆比MATLAB更复杂.除非你知道你正在处理什么,否则你无法理解MATLAB给你的东西,即使你得到了正确的程序.
以下是您在互相关中所做的工作.考虑数据A
并B
如下
A B
x
x | x x
| | | x |
| | x | | | x
| | | | | | |
--------------- -----------
0 1 2 3 0 1 2
Run Code Online (Sandbox Code Playgroud)
然后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
Run Code Online (Sandbox Code Playgroud)
在数据不存在的地方填入零,即在这种情况下,B
超过0且A
在0之前.然后将它们逐点相加并添加,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
Run Code Online (Sandbox Code Playgroud)
0 + 9 + 4 + 0 + 0 = 13
作为互相关中的第二点给出.你一直这样做,直到你一直滑到B
另一端A
.
得到的向量是length(A)+length(B)-1
-1,因为我们从0开始重叠,所以它少了一点.所以在这里你应该得到3 + 4 - 1=6
互相关的点,在你的情况下,你应该得到73 + 73 -1 = 145
积分.
如您所见,任何点处的互相关矢量的值都不必在±1之内.当两个数据矢量"最相似"时,互相关具有最大值.峰值从零开始的"偏移"表示两个数据集之间的"滞后".
的相关系数(我假定Pearson的)是被定义为仅仅数
Covariance(A,B)
r = --------------------------------
________________________________
\|Covariance(A,A)*Covariance(B,B)
Run Code Online (Sandbox Code Playgroud)
哪里Covariance(A,A)
更好地称为Variance(A)
.这是可以范围从一个量-1
至1
(至于为什么它必须是±1之间,查找柯西-施瓦茨不等式)
虽然您可以肯定地计算具有不相等数据点的两个数据向量的互相关,但您无法计算它们的相关系数.协方差的概念衡量两个变量/数据集如何一起变化,而不是为不相等的数据集定义.