我想将exp(-t^2)的FFT与函数的解析傅里叶变换exp( - (w^2)/ 4)/ sqrt(2 ),在-3到3的频率范围内。在Matlab中比较FFT函数和分析FT解决方案
我已经写了下面的matlab代码,并且现在迭代了很多次,但没有成功。
fs = 100; %sampling frequency
dt = 1/fs;
t = 0:dt:10-dt; %time vector
L = length(t); %number of sample points
%N = 2^nextpow2(L); %necessary?
y = exp(-(t.^2));
Y=dt*ifftshift(abs(fft(y)));
freq = (-L/2:L/2-1)*fs/L; %freq vector
F = (exp(-(freq.^2)/4))/sqrt(2); %analytical solution
%Y_valid_pts = Y(W>=-3 & W<=3); %compare for freq = -3 to 3
%npts = length(Y_valid_pts);
% w = linspace(-3,3,npts);
% Fe = (exp(-(w.^2)/4))/sqrt(2);
error = norm(Y - F) %L2 Norm for error
hold on;
plot(freq,Y,'r');
plot(freq,F,'b');
xlabel('Frequency, w');
legend('numerical','analytic');
hold off;
你现在可以看到,我只是试图让这两个地块看起来相似。最终,我想找到一种方法来做两件事:1)找到最小采样率, 2)找到最小采样数, 达到一个误差(定义为二者之差的L2范数解决方案)的10^-4。
我觉得这很简单,但我似乎甚至看不到这两个图形在视觉上一致。 如果有人能让我知道我要出错的地方以及我如何处理上述两点(最小采样频率和最小采样数),我会非常感激。
由于