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