You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何准确计算两个时间序列随时间变化的相位滞后

随时间变化的时间序列相位滞后测量问题

我的数据集包含两个采样频率为1次/分钟的时间序列,绘图可见二者存在相位滞后,但我不确定如何基于时间维度准确测量随时间变化的相位滞后。

数据形态

两个时间序列的原始趋势图,可见二者存在明显的相位偏移特征。

现有计算尝试

互相关法测量相位滞后

首次尝试

直接对两个时间序列进行互相关计算,代码如下:

d['h_ven']=series1
d['h_tid']=series2
corr = signal.correlate(d['h_ven'], d['h_tid'])
lags = signal.correlation_lags(len(d['h_tid']), len(d['h_ven']))
corr /= np.max(corr)
ax1.plot(lags, corr)

第二种方法

先尝试通过Savitzky-Golay滤波对序列进行平滑处理,代码如下:

#inte = d['h_ven'].interpolate(method='spline', order=5)
#df = pd.DataFrame(dict(x=d['h_ven']))
#x_f = df[["x"]].apply(savgol_filter,  window_length=31, polyorder=2)

# other approach
 
res1 = savgol_filter(d['h_ven'], 31, 3)
res2 = savgol_filter(d['h_tid'], 31, 3)

之后使用相同的互相关脚本重新计算,但对得到的互相关结果(峰值位置及趋势)存在疑问——该结果图显示互相关曲线的峰值不够清晰,无法直接对应准确的相位滞后值。

预期目标

我期望得到随时间变化的相位延迟,单位为度或弧度(范围-360360或-2π+2π),预期输出为一条随时间轴变化的相位曲线:横轴为时间,纵轴为波动的相位值。

希望有人能建议我如何进一步改进或修正计算方法。


内容的提问来源于stack exchange,提问作者Adnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:25:19