为什么FFT产生复数而不是实数? [英] Why does FFT produce complex numbers instead of real numbers?
问题描述
所有的FFT实现我们所遇到的结果在复值(与实部和虚部),即使输入到算法是一组离散的实数(整数)。
All the FFT implementations we have come across result in complex values (with real and imaginary parts), even if the input to the algorithm was a discrete set of real numbers (integers).
这难道不是可能重新present频域的实数方面只?
Is it not possible to represent frequency domain in terms of real numbers only?
推荐答案
FFT是根本基础的变化。到其中的FFT改变你的原始信号的基础是一组正弦波代替。为了使这一基础来描述所有它需要能够重新present相位以及振幅的可能的输入;相位重新presented用复数。
The FFT is fundamentally a change of basis. The basis into which the FFT changes your original signal is a set of sine waves instead. In order for that basis to describe all the possible inputs it needs to be able to represent phase as well as amplitude; the phase is represented using complex numbers.
例如,假设你FFT只包含一个正弦波信号。根据阶段,你很可能得到一个完全真实的FFT结果。但是,如果你转移你输入的阶段几度,还能怎么FFT输出再present的输入?
For example, suppose you FFT a signal containing only a single sine wave. Depending on phase you might well get an entirely real FFT result. But if you shift the phase of your input a few degrees, how else can the FFT output represent that input?
编辑:这是一个有所松动的解释,但我只是想激励直觉
edit: This is a somewhat loose explanation, but I'm just trying to motivate the intuition.
这篇关于为什么FFT产生复数而不是实数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!