2015-04-15 4 views
1

В Matlab у меня есть неравномерно расположенные промежутки времени, описанные вектором y и вектором t, вместе описывая значение в моменты времени. Временные ряды кажутся периодическими. Как определить автокорреляцию этих временных рядов?MATLAB - автокорреляция неравномерно расположенных временных рядов

xcorr, похоже, не дает возможности обрабатывать неравномерно распределенные таймеры, и, к моему удивлению, я не смог найти многого в Google. В качестве альтернативы, я решил, что могу преобразовать y в регулярную разнесенную серию с использованием методов интерполяции, но я не смог найти четкий подход к этому. Я чувствую, что должен быть прямой способ сделать это, любые предложения?

ответ

3

AFAIK MATLAB не имеет встроенных функций для обработки неравномерно выбранных данных (хотя вы можете более тщательно изучить панели инструментов или центральный процессор MATLAB - см. Ниже).

Интерполяция, несмотря на потенциальные проблемы, он может ввести при вычислении спектральной оценки, должна быть легкой, с

xnew = linspace(min(x),max(x),N); 
ynew = interp1(x,y,xnew); 

давая N регулярно расположенных точек {Xnew, Ynew} интерполированное над набором 1D данных.

Существует красивая длинная нить here с подробными сведениями о различных способах получения спектральных оценок для неравномерно отобранных данных. Если вы будете следовать советам в этой теме, вы найдете несколько вариантов того, как вычислить периодограмму Ломб-Скворгла от MATLAB central. Это может просто сделать трюк, но я сам не пробовал.

Вы можете поочередно попробовать реализовать автокорреляции на нелинейно оцифрованных данных с методами, которые очерчены в http://www.eckner.com/papers/unevenly_spaced_time_series_analysis.pdf

+0

Мда это тоже своего рода ответ на мой старый вопрос здесь: https://dsp.stackexchange.com/questions/13838/ математическое эффект-из-переупорядочений-образцов к известным периодам или эквивалентное время-са – Leo

Смежные вопросы