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