Re: [問題] FFT程式裡的問題已回收

看板MATLAB作者 (老人)時間17年前 (2008/10/20 00:04), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《rick111104 (丫翰)》之銘言: : subplot(2,1,1) : Fs = 240; : T = 1/Fs; : L =length(data2006.o3.o3); : t = (0:L-1)*T; : x = datenum(data2006.o3.o3); : y = data2006.o3.o3; : plot(Fs*t(1:50),y(1:50)) : grid : title('Signal Corrupted with Zero-Mean Random Noise') : xlabel('time (milliseconds)') : subplot(2,1,2) : NFFT = 2^nextpow2(L); : Y = fft(y,NFFT)/L; : f = Fs/2*linspace(0,1,NFFT/2); : plot(f,2*abs(Y(1:NFFT/2))) : grid : title('Single-Sided Amplitude Spectrum of y(t)') : xlabel('Frequency (Hz)') : ylabel('|Y(f)|') : 我是把data2006.o3.o3這筆資料匯進去 , 不過程式的地方有點小問題 : 1.上面的程式中,第一個plot那一行為什麼Fs要乘t(1:50) , 1:50有什麼意思嗎,為什麼要到50? : 2.第2個plot(f,2*abs(Y(1:NFFT/2)))是什麼意思, 為什麼要這樣寫? : 有那位大大可以幫我解答一下嗎, 煩惱很久了 拋磚引玉一下 若有不對請指教 1. 1:50指的是第1~50個點 2. 因為fft作的是整個2 pi的運算,所以你只要取一半的點數出來看就可以了。 如果改成2*abs(Y(1:NFFT)) ,會看到對稱的圖形 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.216.167

10/20 11:54, , 1F
後半段的數值是因為aliasing所產生的 所以不看...
10/20 11:54, 1F
文章代碼(AID): #18-rgXRZ (MATLAB)
文章代碼(AID): #18-rgXRZ (MATLAB)