为什么FFT产生复数而不是实数? [英] Why does FFT produce complex numbers instead of real numbers?

查看:2733
本文介绍了为什么FFT产生复数而不是实数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所有的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆