【发布时间】:2014-08-29 11:28:46
【问题描述】:
我有 2 个包含时间和电压的数组。我想在 Java 中将时域转换为频域。我想使用 FFT。如果有任何我可以使用的开源库,请指出我。我做了一项研究,发现很少有算法,但他们要求实部和虚部。如果有人对此有所了解,请告诉我如何在我的上下文中使用它。
【问题讨论】:
-
是的,你想要 FFT,虽然我不熟悉 Java 可用的包来推荐一个。 “实数”和“虚数”值是 FFT 的“频域”结果的“一半”,实际上给出了信号“相位”的信息。但如果我想得远不止这些,我的脑袋就会爆炸。
-
在您不需要/不需要相位信息的情况下,通常将实部和虚部值组合成 RMS(均方根)值——实部平方根加上虚部平方。
-
另请注意,通常会多次运行 FFT,对于音频可能每 0.1 秒运行一次。这给出了频谱随时间变化的视图。
-
请注意,您的样本需要在时间上均匀分布 - 如果您的时间间隔不是恒定的,那么您不能使用普通的 FFT。