我有一系列实数,我想在其上计算FFT。 FFT函数需要复数。
那么我可以将虚数值设置为0并计算FFT吗?
下一个问题是当我得到结果值(频域值)时,它们的格式很复杂。
如果我对这些复数值进行FFT的倒数,我可以丢弃虚部并只使用结果的实部吗?
答案 0 :(得分:2)
将复杂输入的实部设置为信号样本值,将虚部设置为零。或者,您可以使用实数到复数的FFT,这也可能比正常的复数到复合FFT快一点。
对于逆FFT - 只要您的频域复数值具有复共轭对称性(如果您的输入是纯实的,它们将具有这种对称性),那么IFFT将再次为您提供纯实时域信号。如果在IFFT之前修改频域值,请确保保持复共轭对称性。同样,您也可以考虑使用复杂到实际的IFFT,这可能更有效,并且可以减轻您维持对称性的工作。
答案 1 :(得分:1)
对于这种类型的数学,实数只是一个复数,其(假定的或显式的)虚部等于零。
如果您为IFFT计算提供的频率数据是共轭对称的,那么结果中的虚数值与实际值相比将是微小的,主要是使用有限精度算法的数值噪声。如果您了解精度的有效数字,您会注意到这些值对于任何合理或有用的精度都会全部为零。