Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中测试ifft实现并没有得到好的结果_Python_Numpy_Fft - Fatal编程技术网

在python中测试ifft实现并没有得到好的结果

在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

我试图在一个正弦基函数上测试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.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()