poster
2019-12-10, 20:48
对于已知具有季节性或每日模式的数据,我想使用傅立叶分析进行预测。对时间序列数据执行fft后,我获得了系数。如何使用这些系数进行预测?
我相信FFT假设接收到的所有数据都构成一个周期,那么,如果我仅使用ifft重新生成数据,那么我还将重新生成函数的延续性,那么我可以将这些值用作将来的值吗?
简而言之:我为t = 0,1,2,.. 10运行fft,然后在coef上使用ifft,是否可以为t = 11,12,.. 20使用重新生成的时间序列?
回答:
听起来您想要外推和去噪的组合。
您说要在多个期间重复观察到的数据。好了,然后重复观察的数据。无需进行傅立叶分析。
但是您也想找到“模式”。我认为这意味着在观察到的数据中找到主要的频率成分。然后是的,进行傅立叶变换,保留最大的系数,然后消除其余的系数。
X = scipy.fft(x) Y = scipy.zeros(len(X)) Y[important frequencies] = X[important frequencies] 至于周期性重复:令z = [x, x] ,即信号x两个周期。然后对于{0,1,...,N-1}中的所有k , Z[2k] = X[k] ,否则为零。
Z = scipy.zeros(2*len(X)) Z[::2] = X
更多&回答... (https://stackoverflow.com/questions/4479463)
我相信FFT假设接收到的所有数据都构成一个周期,那么,如果我仅使用ifft重新生成数据,那么我还将重新生成函数的延续性,那么我可以将这些值用作将来的值吗?
简而言之:我为t = 0,1,2,.. 10运行fft,然后在coef上使用ifft,是否可以为t = 11,12,.. 20使用重新生成的时间序列?
回答:
听起来您想要外推和去噪的组合。
您说要在多个期间重复观察到的数据。好了,然后重复观察的数据。无需进行傅立叶分析。
但是您也想找到“模式”。我认为这意味着在观察到的数据中找到主要的频率成分。然后是的,进行傅立叶变换,保留最大的系数,然后消除其余的系数。
X = scipy.fft(x) Y = scipy.zeros(len(X)) Y[important frequencies] = X[important frequencies] 至于周期性重复:令z = [x, x] ,即信号x两个周期。然后对于{0,1,...,N-1}中的所有k , Z[2k] = X[k] ,否则为零。
Z = scipy.zeros(2*len(X)) Z[::2] = X
更多&回答... (https://stackoverflow.com/questions/4479463)