Matlab互相关与相关系数问题

时间:2011-06-08 16:09:04

标签: matlab analysis correlation data-analysis

我正在用C ++编写程序,但使用matlab中涉及交叉关联的数据。 据我所知,当我对2组数据进行相关时,它给出了一个相关系数,表明它们是否相关。但我想在数据系列上使用互相关。当我在Matlab上运行Cross Correlation时,它给了我很多数据,当绘制时,绘图看起来像一个三角形......我知道相关应该介于+/- 1之间,但是朝三角形尖端的数据不是' t同时上升等等。我是否对Cross Correlation给出的内容感到困惑,或者Cross Correlation给出的数据实际上是每个点s(t),p(t)的相关系数?任何有关澄清的帮助都表示赞赏。

编辑1(在Phonon的回复之后)

我的主要问题是:当我交叉关联2个数据系列时,我得到的数据是每个点的相关系数。例如,(0,10)和(0,8);数据是否在x = 0时获得这两个图的相关系数

3 个答案:

答案 0 :(得分:1)

在Matlab中xcorr(x,x)给出信号x的自相关。它缩放,它只是信号内部产品的矢量,具有自身的移位版本。要缩放它,请使用xcorr(x,x,'coeff')。此命令将通过信号的能量来缩放您的自相关(换句话说,它将每个系数除以零滞后的系数值)。请注意,当您执行互相关xcorr(x,y'coeff')时,将获得值1和零延迟,因为缩放的执行方式不同。如果你将信号与自身相关联,它只会是1(我希望SO支持数学公式,以便我可以为你写出来)。

答案 1 :(得分:0)

您可能需要corrcoef,而不是xcorr

答案 2 :(得分:0)

要弄清楚几个概念。

  1. Cross-correlation vs. cross-covariance。主要区别在于交叉协方差通过减去均值对数据进行归一化。

  2. 互协方差与归一化互协方差。后一个除以输入的标准偏差。

  3. 归一化互协方差和相关系数。后一种是前一种在延迟= 0时的特例。