相关系数java代码中_互相关系数

根据本文中的公式,您可以通过以下方式计算互相关系数:

% Assuming: m and n are your signals organized as row vectors

r = cov([m;n]) / (std(m)*std(n));

如果你只想为信号的某些部分计算系数,只需使用:

r = cov([m(1:100);n(1:100)]) / (std(m(1:100))*std(n(1:100)));

你有没有试过 corrcoef 功能?

Edit 好的,我检查了corrcoef功能,它似乎工作正常,看看:

>> x = 100*randn(1000,1);

>> y=34*randn(1000,1);

>> corrcoef(x,y)

ans =

1.0000 -0.0543

-0.0543 1.0000

因此相关系数等于-0.0543 - 相似性小(如预期的那样) .

为了检查这一点,让我们计算相同信号的系数:

>> y=x;

>> corrcoef(x,y)

ans =

1 1

1 1

正如预期的那样,它等于1 .

Edit . 如您所见,corrcoef的结果是这两个信号之间所有可能相关系数的矩阵:

x y

x 1.0000 -0.0543

y -0.0543 1.0000

因此,对于互相关,您需要选择主对角线之外的一个元素(存在自相关系数,在这种情况下总是等于1) .

如果你选择ans(2,1)或ans(1,2)没有区别 - 如果计算x和y的相关性,或y和x的相关性,则没有区别 .

所以最终的代码看起来应该类似于:

R = corrcoef(x,y); % Correlation matrix

r = R(2,1); % this is your Cross-Correlation coefficient

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值