【问题标题】:Matlab Cross correlation vs Correlation Coefficient questionMatlab互相关与相关系数问题
【发布时间】:2011-09-11 00:45:14
【问题描述】:

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

编辑 1(在声子响应之后)

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

【问题讨论】:

  • 你是如何计算相关性的?
  • xcorr 但我的主要问题是当我交叉关联 2 个数据系列时获得的数据是每个点的相关系数。例如,(0,10)和(0,8);我得到的数据是 x=0 时这两个图的相关系数吗?

标签: matlab analysis correlation data-analysis


【解决方案1】:

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

【讨论】:

  • 这是有道理的,但我需要 2 个数据集的互相关而不是自相关,它是一个数据集及其本身或其他任何东西的互相关
  • 使用'coeff',它会缩放数据。我想说的是,如果你将信号与自身相关联,你只会在零延迟时得到准确的 1。
  • Phonon 你明白我上面修改过的问题吗,你的回答仍然适用吗?
  • 我觉得我不太理解。它几乎无法辨认。
  • 不计算每个点的相关系数。它们是针对每个单位班次计算的。
【解决方案2】:

你可能想要corrcoef,而不是xcorr

【讨论】:

  • @Tyler31:不清楚你的意思。通常,相关系数是两组数据的单个值,描述它们之间是否存在潜在的线性关系。目前尚不清楚“为每个点做一个 corrcoeff”是什么意思。
【解决方案3】:

要明确几个概念。

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2015-01-21
    • 2012-08-31
    相关资源
    最近更新 更多