fft输出的实部和虚部是否相关?

时间:2011-11-26 02:04:39

标签: r math fft

我想使用基于模型的聚类来分类1,225个时间序列(每个24个时段)。我使用快速傅里叶变换分解了这些时间序列,并选择了谐波,这些谐波至少解释了样本中所有时间序列的时间序列方差的阈值百分比。我想在给定时间序列的每个变换元素的实部和虚部上进行基于模型的聚类,因为它可能使我不必考虑跨时间序列的模型awed聚类中的时间自相关。我知道快速傅里叶变换的每个复杂元素都独立于其他元素,但我不知道给定输出元素的输出的虚部和实部是否是独立的。我想知道,因为如果它们是,它将允许我维持R中基于模型的聚类的Mclust包的默认假设,即所分析的变量具有多元高斯分布。

注意:没有使用完整的FFT,因为我已经丢弃了负频率的元素,并通过将频率1乘以奈奎斯特,将每个建议的频率从双边转换为单边频谱:How do I calculate amplitude and phase angle of fft() output from real-valued input?

1 个答案:

答案 0 :(得分:5)

实部和虚部是正交的(由于sin(x)和cos(x)函数是正交的)。这个特性对FFT的工作原理至关重要。

Wolfram MathWorld

  

傅里叶级数是一个周期函数的扩展   无限的正弦和余弦。傅里叶系列利用了   正弦和余弦函数的正交关系。

FFT本质上是基础的变化。这没有说明数据本身,它可能包含也可能不包含实部和虚部之间的相关性。

关于编辑的问题,“如何计算实值输入的fft()输出的幅度和相位角?”将实部和虚部转换为幅度和相角的方法是magnitude = (real_part ** 2 + imaginary_part ** 2) ** 0.5angle=arctan2(imaginary_part, real_part)。它与rectangular-to-polar conversion相同。