我想使用 FastFourierTransformation 来识别模式,从而预测我的监控指标的未来值。我想做的是:
我监控传入的流量负载,这是季节性重复的(白天的高选择),在一周内有一个额外的趋势(周末的流量较低,也是季节性重复的)。虽然我尝试了一些增强回归算法,但我也想使用 FFT 来识别最重要的系数,从而识别这两个最重要的频率,然后尝试推断以预测流量不久的将来。apache.commons.math3.transform.FastFourierTransformation
尽管我在数学方面的理论背景给我带来了一些麻烦,但我正在为此苦苦挣扎。假设我使用 adoube [] array
来存储观察到的时间范围内的最新流量负载,我使用以下代码:
double [] initialSignal = getMonitoringData(timeslide);
FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD);
Complex [] result = fft.transform(initialSignal, TransformType.FORWARD);
但是我不熟悉Complex []
数组代表什么。数组中每个 Complex 对象的虚属性是否代表相关的正弦系数?那么,如果我想采用去噪的初始信号,我只需将 Complex [] 结果数组的不太重要的系数设置为零?但是,如果我有以下
Complex [] denoised = fft.transform(importantCoefficiants, TransformType.INVERSE);
结果仍然是一个复杂的数组。如何获得时间序列的新转换的 x(t) 值?x(t+1), x(t+2) ... x(t+n) values
在对初始时间序列进行去噪后,我如何推断以预测?