1

我正在用 C++ 编写一个程序,但使用 matlab 中涉及互相关的数据。我知道当我对两组数据进行相关时,它会给我一个相关系数编号,表明它们是否相关。但我想在数据系列上使用互相关。当我在 Matlab 上运行互相关时,它给了我很多数据,当绘制时,绘图看起来像一个三角形......我知道相关性应该在 +/- 1 之间,但朝向三角形尖端的数据没有t 同时上升等。我是否对互相关给我的东西感到困惑,或者互相关给我的数据实际上是每个点 s(t),p(t) 的相关系数?感谢您对澄清的任何帮助。

编辑 1(在 Phonon 的响应之后)

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

4

3 回答 3

2

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

于 2011-06-08T16:21:01.750 回答
0

你可能想要corrcoef,不是xcorr

于 2011-06-08T16:40:37.393 回答
0

要明确几个概念。

  1. 互相关与互协方差。主要区别在于交叉协方差通过减去均值对数据进行归一化。

  2. 交叉协方差与标准化交叉协方差。后一个除以输入的标准差。

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

于 2020-02-14T20:13:55.557 回答