考虑实数和复数信号的 FFT

信息处理 fft 离散信号 频谱 自由度 复杂的
2022-02-13 19:52:11

我一直在实施一个网站来执行各种信号的 FFT,真实和复杂。

检查第一个例子,一个真实的信号x[n]=10cos(2π×4n),我得到以下 FFT:在此处输入图像描述

这正是我所期望的 - 两个半振幅的漂亮峰值±4

所以我然后扩展到复信号的FFTx[n]=10ej2π×4n(或等效地x[n]=10cos(2π×4n)+j10sin(2π×4n))。这在时域中显示为; 在此处输入图像描述 然而,这次我得到了以下作为 FFT,然而,它现在只有一个峰值+4,而不是±4我期待的镜像峰值,并在真实信号中接收到。 在此处输入图像描述

在阅读了大量与 FFT 关于实数的共轭对称性质有关的文章之后,甚至信号状态x[n]=>F(ω)=F(ω).

但是,这并不能帮助我理解复杂信号的 FFT 应该是什么样子——即我的数字是否正确?实/复/虚信号的 FFT 在镜像和对称方面应该如何出现?

注意:到目前为止,我自己的证明方式是,对于一个真实的信号,cos(2πft)=12(e2πft+e2πft)这会产生负频率 - 因此是镜像,而 FFTe2πft直接不...但是我可能完全错了!

2个回答

这里没有错 - 像您的信号这样的复杂正弦曲线在频域中确实只有一个峰值!这就是为什么我们对周期性(甚至是复杂)信号使用傅里叶变换的基本思想。

你可以这样想:

余弦有两个峰值,一个在 +f 处,另一个在 -f 处。那是因为欧拉公式实际上说cosx=12(eix+eix). 您可以看到导致您的两个峰值的两个复杂正弦曲线。

现在,对正弦做同样的事情,我们看到isinx=i12i(eixeix). 这意味着,如果你愿意的话,正弦会杀死余弦的两个峰值之一。

一切安好 :)

您可以向后工作,从 FFT 到时域信号。时域中的严格实信号在频域中有两个峰值的原因是两个复共轭图像的虚部符号相反,因此相互抵消,留下了严格实信号的表示。去除 FFT 中的一个复共轭图像,当你回到时域时,你没有取消虚部,因此在时域中得到一个复正弦曲线。