Python 带重离子的ifft

Python 带重离子的ifft,python,numpy,fft,Python,Numpy,Fft,我已经问了一个类似的问题,但遗憾的是我没能解决我的问题。 我在寻找一个关于heaviside函数的傅里叶变换的逆 Wolframalpha已经给了我FT的精确解,但是计算出的ifft不能计算到相同的heaviside 我的代码: import numpy as np import matplotlib.pyplot as plt N=1000 x=np.linspace(-10,10,N) dx=np.abs(x[0]-x[1]) freq=np.fft.fftfreq(N,dx) #sol

我已经问了一个类似的问题,但遗憾的是我没能解决我的问题。 我在寻找一个关于heaviside函数的傅里叶变换的逆

Wolframalpha已经给了我FT的精确解,但是计算出的ifft不能计算到相同的heaviside

我的代码:

import numpy as np
import matplotlib.pyplot as plt

N=1000
x=np.linspace(-10,10,N)
dx=np.abs(x[0]-x[1])
freq=np.fft.fftfreq(N,dx)

#solution:
H=-np.heaviside(5-np.abs(x),1)

#the FT of the heviside according to wolframaplha
s_x=-np.sqrt(2/np.pi)*np.sin(5*x)/x

#the ifft:
s_k=np.fft.ifft(s_x)

plt.plot(freq,(s_k),label='calc')
plt.plot(x,H,label='exact')
plt.legend()
正如我们所看到的,这个解有一个类似于盒子的形式,但不是从x=5开始的,也没有正确的振幅。
另外是正负区域的振幅。

我想你把Heaviside函数和box函数弄混了。box函数的FT可以通过简单的解析计算,并传递Sinc函数。我试图计算逆FT,它应该是box函数。在这里,heaviside是一种创建box函数的方法,我认为您将heaviside函数与box函数混为一谈。box函数的FT可以通过简单的解析计算,并传递Sinc函数。我试图计算逆FT,它应该是box函数。这里,heaviside是创建box函数的一种方法