奇函数的离散傅里叶变换

Discrete Fourier transform for odd function

我有一个初始函数 u(x,0) = -sin(x),我想导出 u(x,t) = $\sum_{k \geq 1} a_{k} sin (kx)$ 形式的奇校验解的 FFT 系数。我尝试根据 $\exp{ikx}$ 使用函数的正常扩展,但它给解决方案增加了一些错误。

任何人都可以建议我如何使用 numpy.fft.fft 过滤整个解决方案中保持奇数的傅里叶系数的过程吗?

如果函数本质上是奇数(如正弦函数),则只有 fft 函数的虚部不为零。我认为你的问题是你的函数不是周期性的,你应该排除最后一点:

import numpy as np
x=np.linspace(-np.pi,np.pi,50,endpoint=False)
y=-np.sin(x)
yf=np.fft.fft(y)
even_part=yf.real
odd_part=yf.imag

这里只有 odd_part[1] 是非零的。 如果你的函数不奇怪并且你想强制它,你可以使用 sdt 正如我在评论中提到的那样,或者在左侧添加你的函数的反函数然后使用 fft.

还有一点,如果你的输入不复杂,那么使用rfft

会更快更省时