Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中执行时间序列的fft_R_Fft - Fatal编程技术网

在R中执行时间序列的fft

在R中执行时间序列的fft,r,fft,R,Fft,我想使用FFT将波形拟合到时间序列。 目标是绘制具有不同谐波的曲线图,并使用它预测n个数据点 我使用的代码是基于 我的问题是,因为我的数据集中也有负值,所以我无法理解为什么会包含正值 这是原作的情节 与fft后的图进行比较 我如何调整代码,使谐波也覆盖缺失的负值,以及如何使用该值来计算(预测)接下来的n个时间点?当您试图在以下行上用Mod(idff)和Mod(indff)绘制结果时,出现了问题: ... lines(y = Mod(idff), x = t, col = "red") }

我想使用FFT将波形拟合到时间序列。 目标是绘制具有不同谐波的曲线图,并使用它预测n个数据点

我使用的代码是基于

我的问题是,因为我的数据集中也有负值,所以我无法理解为什么会包含正值

这是原作的情节

与fft后的图进行比较


我如何调整代码,使谐波也覆盖缺失的负值,以及如何使用该值来计算(预测)接下来的n个时间点?

当您试图在以下行上用
Mod(idff)
Mod(indff)
绘制结果时,出现了问题:

...
  lines(y = Mod(idff), x = t, col = "red")
}
lines(y = Mod(indff), x = nt, ...)
Mod
将始终返回与复数大小相对应的正数

由于您是在具有厄米对称性的序列上计算逆FFT(通过构造),因此您应该期望得到实值结果。然而,在实践中,由于舍入误差,可能会有一个小的虚部。通过使用
Re(idff)
Re(indff)
仅提取真实零件,可以安全地忽略这些,如下所示:

...
  lines(y = Re(idff), x = t, col = "red")
}
lines(y = Re(indff), x = nt, ...)

请注意,通常最好首先确认虚部与实部相比确实是非常小的数字,因为相反的情况表明频域值不具有预期的厄米对称性。

这些结果不是作为模量的组合计算的吗(即径向矢量)和“绕组角”或“相位角”?很抱歉我在这方面不够精确,但这不是我50年前在大学里学过的课程之一。多亏了这一点,只提取真实的部分就可以了。你有没有关于如何计算即将到来的n个时间点的谐波的技巧?
...
  lines(y = Re(idff), x = t, col = "red")
}
lines(y = Re(indff), x = nt, ...)