1

在 Fortran 程序中,我使用用户可以选择的给定函数的傅里叶变换。但是用户已经必须编写函数的傅里叶变换。

所以我想以用户只需要提供原始功能的方式扩展程序。在这种情况下,一个高斯函数。为此,我需要进行 FFT。

如果我们有:

h(x)=exp(-t^2)

然后手动傅里叶变换由下式给出

fth(k)=sqrt(pi)*exp(-k.^2/4)

现在如果我做 fft of h(x) 我应该得到 fth(k) 对吗?这是我的代码:

 Fs=10;
 x=-10:1/Fs:10;
 L=length(x);
 Nk=2^nextpow2(L);
 h=exp(-x.^2);
 k=Fs*(1:Nk/2)/Nk;
 fth(k)=sqrt(pi)*exp(-k.^2/4);
 ffth=fft(h,Nk);
 ffth=abs(ffth);
 figure
 plot(f,ffth(1:Nk/2+1),'r');
 hold on
 plot(f,fth(1:Nk/2+1),'b');

但为什么我会得到完全不同的东西?

4

0 回答 0