在Matlab中,我有一个由矢量y
和矢量t
描述的不均匀间隔的时间序列,它们一起描述了时间点的值。时间序列似乎是周期性的。如何确定此时间序列的自相关性?
xcorr
似乎没有提供处理不均匀间隔的时间序列的可能性,令我惊讶的是我在谷歌上找不到它。或者,我想我可能会使用插值技术将y
转换为常规间隔系列,但我也找不到明确的方法。我觉得应该有直截了当的方法来做这个,有什么建议吗?
答案 0 :(得分:3)
AFAIK MATLAB没有处理不均匀采样数据的内置函数(尽管您可能会更彻底地搜索工具箱或MATLAB中心 - 见下文)。
插值,尽管在计算光谱估计时可能会引入潜在问题,但
应该很容易 xnew = linspace(min(x),max(x),N);
ynew = interp1(x,y,xnew);
在您的1D数据集上插入N个规则间隔的数据点{xnew,ynew}。
有一个很长的线程here,详细介绍了获取不均匀采样数据的频谱估计的各种方法。如果您遵循该线程中的建议,您将找到有关如何计算Lomb-Scargle周期图的许多选择 来自MATLAB central。这可能只是伎俩,但我自己没有尝试过。
您可以使用http://www.eckner.com/papers/unevenly_spaced_time_series_analysis.pdf
中描述的方法,尝试在非线性采样数据上实现自相关