Я пытаюсь получить gaussian curve
с помощью mft. Проблема в том, что в одном случае мой attemp для уменьшения шума путем деления F=dt.*F./exp(-1i.*nu.*T/2)
не работает (img 1), а во втором случае, если я пытаюсь принять абсолютное значение результата fft, у меня нет подходящего масштаба в графе (img 2).Matlab FFT для функции gaussian
N=512;
T=10;
dt=T/(N-1);
t=linspace(-5,5,N);
f=exp(-t.^2);
F=fft(f);
F1=F(1:N/2+1);
F2=F(N/2+1:N);
F=[F2,F1];
dnu=(N-1)/(N*T);
nuNyq=1/(2*dt);
nu=-nuNyq+dnu*(0:N);
F=dt.*F;
%F=dt.*F./exp(-1i.*nu.*T/2);
y=linspace(-5,5,N);
F2=pi.^(1/2).*exp(-y.^2/4);
hold on
plot(y,F2);
%plot(nu,real(F),'r');
plot(nu,abs(F),'r');
legend('analiticFT','FFT')
xlim([-5 5])
hold off
IMG 1
img2
Просто к сведению, это гораздо проще, чтобы помочь вам, когда вы даете переменные значимые имена. (Примечание 2: для достижения того, что вы делаете с F1 и F2, вы можете вызвать 'fftshift (F)') – dangom
Что вы имеете в виду с _is не работает? _ –