Поиск корреляции двух переменных данных, Matlab (Concept)

У меня очень большой объем данных, их слишком много, чтобы публиковать здесь. Так что действительно не знаете, как задать этот вопрос? Я использую матлаб.

mat = [time_days temperature, change_in_mm] %

введите здесь описание изображения

введите здесь описание изображения

Я хочу найти взаимную корреляцию между температурой и change_in_mm по времени.

Основная идея состоит в том, чтобы сделать это в частотной области.

f_data = fft(t_data, N)
  1. Как выбрать N?
  2. Должен ли я преобразовать температуру и change_in_mm в частотную область?

Должна быть связь между temperature и change_in_mm. Я хочу увидеть эту корреляцию между temperature и change_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')

введите здесь описание изображения


person Shahgee    schedule 30.04.2013    source источник


Ответы (1)


Если у вас установлен 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);
person Eitan T    schedule 30.04.2013
comment
@ Эйтан, пожалуйста, смотрите отредактированное. Но я хочу и в частотной области. - person Shahgee; 30.04.2013