gpt4 book ai didi

python - IFFT 在 Python 中返回什么?

转载 作者:太空狗 更新时间:2023-10-30 01:45:28 25 4
gpt4 key购买 nike

我需要复数数组的傅里叶逆变换。 ifft 应该返回一个真正的数组,但它返回另一个复杂的数组。

在 MATLAB 中,a=ifft(fft(a)),但在 Python 中它不是那样工作的。

a = np.arange(6)
m = ifft(fft(a))
m # Google says m should = a, but m is complex

输出:

array([0.+0.00000000e+00j, 1.+3.70074342e-16j, 2.+0.00000000e+00j,
3.-5.68396583e-17j, 4.+0.00000000e+00j, 5.-3.13234683e-16j])

最佳答案

虚部为结果浮点精度数计算错误。如果它非常小,则可以将其丢弃。

Numpy 有内置函数 real_if_close , 这样做:

>>> np.real_if_close(np.fft.ifft(np.fft.fft(a)))
array([0., 1., 2., 3., 4., 5.])

您可以在此处阅读有关 float 系统限制的信息: https://docs.python.org/3.8/tutorial/floatingpoint.html

关于python - IFFT 在 Python 中返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com