我試圖展示簡單正弦波的頻譜,因爲我們知道固定頻率的單個正弦波必須在其譜中的峯值上我寫這段代碼但我不能得到這個峯值什麼是錯在我的代碼:簡單正弦波在matlab中的傅立葉變換
clc
nsteps=200;%number of signal elements in time domain
i=sqrt(-1);
NFREQS=100;%number of elements in frequency domain
ddx=1e-9;
dt=ddx/(6e8);%separation between each time domain elements
lambdai=150e-9;
lambdaf=500e-9;
freqi=3e8/lambdai;
freqf=3e8/lambdaf;
freq=zeros(1,NFREQS);
for j=1:NFREQS
freq(j)=freqi-j*(freqi-freqf)/NFREQS;%desired frequency domain
end
arg=2*pi*freq*dt;
et=zeros(nsteps,1);
for j=1:nsteps
et(j)=sin(2*pi*3e15*j*dt);%sin wave in time domain
end
e=zeros(NFREQS,1);
for n=1:NFREQS
for j=1:nsteps
e(n)=e(n)+et(j)*exp(-i*arg(n)*n);%sin wave in frequency domain
end
end
lambda=linspace(lambdai,lambdaf,NFREQS);
plot(lambda,abs(e))
什麼是你得到的結果呢? – 2012-04-02 14:49:21
@OliCharlesworth我添加了編輯結果。 – peaceman 2012-04-02 14:57:24