我想通過使用matlab的fft獲得gaussian curve
。問題是,在一種情況下,我試圖通過除以F=dt.*F./exp(-1i.*nu.*T/2)
來減少噪音是行不通的(img 1),而在第二種情況下,如果我試圖獲得fft結果的絕對值,我在圖中沒有像樣的比例(img 2)。用於高斯函數的Matlab FFT
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
圖1
IMG2
剛一說明,這是很容易來幫助你,當你給你的變量有意義的名稱。 (注意2:爲了達到你用F1和F2所做的工作,你可以調用'fftshift(F)') – dangom
你的意思是_is不工作? –