1

我想使用 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在对初始时间序列进行去噪后,我如何推断以预测?

4

1 回答 1

0

好吧,我想我昨天晚上找到了一个解决方案,与埃里克森的回答非常相似。我计算 x^2+y^2,然后考虑最重要的系数。我将数组的其他元素设置为零,然后执行 IFFT。我现在的最后一个问题是:

如何推断复杂数组中的给定结果以预测未来值?例如,如果我有 n=4096 个样本(复杂 [4096] 数组)作为我的输入,那么我假设 x(n+1) 的值将是数组 [0] 的值,x( n+2) 将是 array[1] 等的值吗?

于 2014-01-09T16:11:57.747 回答