在python中测试ifft实现并没有得到好的结果
我试图在一个正弦基函数上测试np.fft.ifft,它的傅里叶变换是‘boxcar’函数(等于| x |的1),有人能帮我吗?在python中测试ifft实现并没有得到好的结果,python,numpy,fft,Python,Numpy,Fft,我试图在一个正弦基函数上测试np.fft.ifft,它的傅里叶变换是‘boxcar’函数(等于| x |的1),有人能帮我吗? import numpy as np import matplotlib.pyplot as plt zetamax = 50.; Nzeta = 1024; xf = np.linspace(-zetamax, zetamax, Nzeta) yf = np.sinc(xf); yfft = np.fft.iff
import numpy as np
import matplotlib.pyplot as plt
zetamax = 50.;
Nzeta = 1024;
xf = np.linspace(-zetamax, zetamax, Nzeta)
yf = np.sinc(xf);
yfft = np.fft.ifft(yf);
#Analytical solution
Nx = Nzeta/2;
xmax = Nzeta/(2*zetamax);
x = np.linspace(-xmax, xmax, Nx);
def boxcar(x):
if np.abs(x)<1:
return 1;
else:
return 0;
y = np.zeros(len(x));
for i in range(len(y)):
y[i] = boxcar(x[i]);
plt.plot(xf, yf)
plt.xlabel('zeta')
plt.ylabel('sinc')
plt.figure()
plt.plot(x, yfft[0:Nx], label='IFFT');
plt.plot(x, y, label='boxcar')
plt.legend()
plt.grid()
plt.show()