【问题标题】:Discrete Fourier transform for odd function奇函数的离散傅里叶变换
【发布时间】:2018-06-12 14:10:40
【问题描述】:

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

谁能建议我如何使用numpy.fft.fft 过滤整个解决方案中仍然奇数的傅立叶系数?

【问题讨论】:

  • 您正在寻找离散正弦变换:docs.scipy.org/doc/scipy-0.15.1/reference/generated/…?
  • 谢谢。我有一个函数-sin(x),我为此转发dst,并在使用idst 进行反转时,我没有得到相同的-sin(x) 配置文件。
  • 我认为您的问题出在其他地方,您可以发布所有代码吗?如果函数是-sin(x),即使 fft 也应该只给你正弦部分系数

标签: python numpy fft pyfftw


【解决方案1】:

如果函数本质上是奇数(如正弦函数),则只有 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] 是非零的。 如果你的函数不奇怪并且你想强制它,你可以使用我在 cmets 中提到的sdt,或者在左侧添加你的函数的逆然后使用fft

还有一点,如果你的输入不复杂,那么使用rfft会更快更省时

【讨论】:

  • 谢谢@anishtain4。实际上,该函数是周期性的。我的输入是真实的,所以我使用numpy.fft.rfft
  • 我所说的“非周期性”的意思是,如果您从-np.pi,np.pi“包括最后一点”计算sin(x),那么生成的函数不是周期性的,与您的想法相反。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2017-04-19
  • 1970-01-01
相关资源
最近更新 更多