找到两个数据变量的相关性,matlab(Concept)

时间:2013-04-30 18:22:48

标签: matlab cross-correlation

我有一个非常大的数据。它太大了,不能在这里发布。所以真的不知道怎么问这个问题?我正在使用matlab。

mat = [time_days temperature, change_in_mm] %

enter image description here

enter image description here

我想找到温度和温度之间的互相关。 change_in_mm与时间有关。

基本思想是在频域中进行。

f_data = fft(t_data, N)
  1. 我应该如何选择 N
  2. 我应该同时转换温度和温度将change_in_mm更改为频域?
  3. temperaturechange_in_mm之间应该存在关联。我希望在冬季和夏季以及白天和夜晚看到temperaturechange_in_mm之间的相关性。

    我的下一步应该是什么?在这方面,任何机构都可以指导我。

    %----------------------被修改----------------------- ------------%

    我已经尝试过,但无法理解图形的含义。

    R=xcorr(temperature, change_in_mm);
    N = length(temperature); %// or N = length(change_in_mm)
    R = R(N + 1:end);
    
    figure;
    plot(R,'r')
    

    enter image description here

1 个答案:

答案 0 :(得分:2)

如果您安装了Signal Processing Toolbox,请省去一些麻烦并使用xcorr

R = xcorr(temperature, change_in_mm);

结果向量R的长度为length(temperature) + length(change_in_mm) - 1。也许你可能只对积极的滞后感兴趣,所以你应该考虑修剪输出并只保留下半部分:

R = R((length(temperature) + length(change_in_mm))/2:end);

或者如果它们都包含相同数量的样本:

N = length(temperature); %// or N = length(change_in_mm)
R = R(N + 1:end);