[問題] FFT f=0時有振幅已回收

看板MATLAB作者 (不問歲月任風歌)時間16年前 (2009/05/08 17:11), 編輯推噓1(1014)
留言15則, 3人參與, 最新討論串1/1
我遇到一在頻率(f)=0時有振幅的問題,照理來說這地方應該是無振幅, 請問大家有遇到跟我一樣的情況嗎? 有高手可以幫我解答一下嗎 謝謝。 我的程式 L = length(X0_2(1:2048)); Fs = 1/7200; NFFT = 2^nextpow2(L); % Next power of 2 from length of y Y = fft(X0_2(1:2048),NFFT)/L; f = Fs/2*linspace(0,1,NFFT/2+1); amp = 2*abs( Y(1:NFFT/2+1) ); phs = unwrap(angle(Y)); plot(f,2*abs(Y(1:NFFT/2+1))) title('Single-Sided Amplitude Spectrum of y(t)') xlabel('Frequency (Hz)') ylabel('|Y(f)|') -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.201.113

05/08 17:35, , 1F
X0_2 長什麼樣子呢
05/08 17:35, 1F

05/08 17:40, , 2F
一個類似sin curve 在curve上有許多小的高階項
05/08 17:40, 2F

05/08 17:47, , 3F
這樣真的有可能不是0呀 因為你的訊號是finite-duration
05/08 17:47, 3F

05/08 17:47, , 4F
在這段區域內的DC不為0
05/08 17:47, 4F

05/08 17:49, , 5F
加window function有可能改善
05/08 17:49, 5F

05/08 17:54, , 6F

05/08 17:54, , 7F
原始資料如上
05/08 17:54, 7F

05/08 18:04, , 8F
所以有值是合理的囉 謝謝你的解答 我再嘗試做看看
05/08 18:04, 8F

05/08 18:06, , 9F
我加hamming window後,DC有降一些
05/08 18:06, 9F

05/08 18:06, , 10F
原先訊號是不是很多不同頻率+他們的harmonic組出來的
05/08 18:06, 10F

05/08 18:08, , 11F
簡言之 只要把訊號從infinite-duration => finite
05/08 18:08, 11F

05/08 18:08, , 12F
頻譜就會變得不太一樣
05/08 18:08, 12F

05/08 20:12, , 13F
頻率0表數據有long term斜率,要去除可用detrend
05/08 20:12, 13F

05/08 23:04, , 14F
似乎是還殘存斜率 畢竟我的資料是由二階差分得來的
05/08 23:04, 14F

05/08 23:05, , 15F
謝謝B大的解答
05/08 23:05, 15F
文章代碼(AID): #1A0_TNiD (MATLAB)
文章代碼(AID): #1A0_TNiD (MATLAB)