gpt4 book ai didi

python - 在快速傅立叶算法上转换复数值会丢弃虚部

转载 作者:太空宇宙 更新时间:2023-11-03 20:51:20 24 4
gpt4 key购买 nike

我正在制作基于cooley-tukey方法的快速傅立叶变换算法。代码对我来说看起来不错,但我不断收到 numpy 错误,例如:

Casting complex values to real discards the imaginary part

我不确定如何更改迭代中的分配。该算法描述如下:

def fast_fourier_transformation(data):
N = len(data)
if N > 1:
Wn = math.e ** (2 * math.pi * 1j / N)
W = 1
A_even = data[::2]
A_odd = data[1::2]
B_even = fast_fourier_transformation(A_even)
B_odd = fast_fourier_transformation(A_odd)
for k in range(0, N // 2):
data[k] = B_even[k] + W * B_odd[k]
data[k + N // 2] = B_even[k] - W * B_odd[k]
W = W * Wn
return data

最佳答案

您的数据变量需要声明为复数(将虚部设置为零以获得严格的实数输入),因为函数的输出需要是复数,并且您使用“data”作为输入参数和返回值(输出)。

关于python - 在快速傅立叶算法上转换复数值会丢弃虚部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56298915/

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