我有一个实数序列,我想计算它的FFT。FFT函数需要复数。
那么,我可以将虚值设置为0并计算FFT吗?
下一个问题是,当我得到结果值(频域值)时,它们是复杂格式的。
如果我对这些复数值进行FFT的逆运算,我可以去掉虚部而只使用结果的实部吗?
发布于 2012-04-24 06:15:42
将复数输入的实部设置为信号采样值,将虚部设置为零。或者,您可以使用实数到复数的FFT,它也可能比普通的复数到复数的FFT快一点。
至于逆FFT -只要你的频域复值具有复共轭对称性(如果你的输入是纯实数,它们就会有),那么IFFT就会再次给你一个纯实时域信号。如果您在IFFT之前修改了频域值,请确保您保持复共轭对称性。同样,您也可以考虑使用复杂到真实的IFFT,它可能更有效,并将减轻您维护对称性的工作。
发布于 2012-04-24 09:40:05
对于这种类型的数学,实数只是一个(假设或显式)虚部等于零的复数。
如果输入IFFT计算的频率数据是共轭对称的,那么与真实值相比,结果中的虚值将很小,主要是使用有限精度算术产生的数值噪声。如果您理解精度的有效位数,您将注意到,对于任何合理或有用的精度,这些值都会舍入为零。
https://stackoverflow.com/questions/10289065
复制相似问题