我正在使用 Stingray 的 CrossCorrelation 函数来确定两条光曲线之间的时间滞后,但遇到了一些麻烦。
一方面,如果我计算两个相同光曲线之间的时间滞后,则 stingray.crosscorrelation.time_shift 的结果取决于数据点的数量。正如人们所期望的那样,奇数个点会产生 0 的时移。但是,偶数个点会产生一部分时间采样。这也反映在绘制各种时间滞后的互相关时。
重现代码:
from stingray import Lightcurve as LC
from stingray.crosscorrelation import CrossCorrelation as XC
n = 15
dt = 1
times = np.arange(0, n * dt, dt)
data = np.sin(times)
lc = LC(times, data)
xc = XC(lc, lc) # CrossCorrelation of identical light-curves
print(xc.time_shift)
对于任何奇数 n,结果为 0。但对于任何偶数 n,结果 >~0.5,对于较大的 n 越来越接近 0.5。对于 n=2,结果为 1.0。最终结果接近 dt 值的一半。
我是在错误地使用/解释这些函数,还是 Stingray 在这里做错了什么?