2012-04-02 112 views

回答

0

下面是代碼,我需要:

NT=10000;%size of data that I have 
ddx=2e-9; 
dt=ddx/(3e8);%time separation between each element 
i=sqrt(-1); 
NFREQS=1000;%size of frequency array 
lambdai=150e-9; 
lambdaf=500e-9; 
freqi=3e8/lambdai;%lower limit of frequency 
freqf=3e8/lambdaf;%upper limit of frequency 
freq=zeros(1,NFREQS); 
for j=1:NFREQS 
freq(j)=freqi-j*(freqi-freqf)/NFREQS;%frequency array 
end 
arg=2*pi*freq*dt; 
lambda=linspace(lambdai,lambdaf,NFREQS); 
    for n=1:NFREQS 
    for j=1:NT 
    Exf(n)=Exf(n)+Ex(j)*exp(-i*arg(n)*j);%Ex the data that I have and Exf is fft of it 
    end 
    end 

plot(lambda,real(Epsilon)); 

此代碼計算傅立葉在150E-9M T0的範圍變換實施例的500E-9M

1

讓我們說你已經有了x。

x%is given 
fmin = 1e15; 
fmax = 6*fmin; 
numOfSamples = length(x); 
f = linspace(fmin,fmax,numOfSamples); 
t = 1 : numOfSamples; 
y=fft(x); 
plot(fftshift(y)); 
+0

X爲sin函數爲固定瓦特例如w = 2 * pi * 2e15,我們必須只有峯值和一個鏡像峯值,而您的代碼我會看到大約10個峯值。 – peaceman 2012-04-02 05:44:29

+0

你試圖做什麼?把你的代碼,我們將解決它。 – 0x90 2012-04-02 06:31:30

+0

我有電場在一個點和時間域我想看看我的電場的光譜行爲我認爲你的代碼會幫助我,但我想確保它正常工作,爲了測試它我把罪(2 * pi * 2e15。* t)而不是x我只是想要一個在sin頻率有一個峯值的圖表,你可以改變你的代碼來做這件事嗎?(只需修復w並只顯示一個峯值)非常感謝。 – peaceman 2012-04-02 06:40:03