精華區beta Electronics 關於我們 聯絡資訊
※ 引述《invalid (everlasting)》之銘言: : 基本上finite sampling的FFT總是會遇到spectrum leakage的問題 : 要記得,取"300"個點進行FFT分析 : 代表的是你"已經假設"你的訊號每300個samples就會重覆一次 : 除非你的X[0]=X[300],不然一定會有不連續點 : 不連續點會使你的頻譜失真 : 而失真的程度跟你取點的多寡是相反的 : 也跟你的的time slot有關 : 一般的解決辦法除了多抓一些sample : 就是用windowing function : 有很多windowing function可以使用 : 每一種有不同的特性,端看你想要知道的東西是什麼 : 不過你的信號不是周期訊號 : 能量應該是連續分布在低頻的區域 : 應該也沒辦法"完全"的列出每個頻率的比例吧.. : ※ 引述《flybow (yyyyyyyy)》之銘言: : : 請問各位電機通訊,還有程式的高手 : : 我有一個暫態訊號.x=exp(-0.5t)-exp(-t) t=linspace(0,20,300) : : 我做了FFT(x,300)...我要怎要才能從這300個點內,完全的分出每個頻率佔多少的 : : 比例 : : Y = fft(x,300);%無論t怎樣改動,Y的值不變 : : Pyy= Y.* conj(Y) / 300; : : f=1000*(0:150)/300; %??? : : figure(2);plot(f,Pyy(1:151)) : : title('Frequency content of y') : : xlabel('frequency (Hz)') : : 我用這段程式來看,只能大略看出來,卻無法詳細的得到確切數據... : : 我想要的答案比如說... : : 0.1HZ 佔訊號比例 75% : : 20 HZ 0.5% : : 的這種數據..... : : 請各位幫幫我,我該怎麼求? : : 我現在正在做聲波的散射的理論分析,過去都是使用簡單的單頻波,我這次使用的 : : 則是多頻率的暫態訊號..所以有這個問題在..... : : 請問各位了... : : 或者可以用FFT的這300個點,看出頻率的組成嗎? clear t=linspace(0,20,300); xx=(t(2)-t(1))*10; L=(t(2)-t(1))*15; move=L-xx; delt=t(2)-t(1); f=0.000001:0.1:50; %由圖得知,輸入訊號為低頻,50Hz以後我就不考慮了,只取 0~50Hz的結果,也考慮各頻率所佔訊號能量的比重 %由0.000001開始是因為,bessely(n,a)在a=0時會發散 m1=1./((1+2*i*2*pi*f).*(1+i*2*pi*f)); %exp(-0.5t)-exp(-t)之FT m=abs(m1); %各頻率的訊號值大小,表示振幅響應,亦即傅立葉振幅 total=sum(m); %大小總和 weight=m./total; %比重 ============================================================================ 這是我想到的,不過還蠻爛的,也不精準.....如同板友所說, 訊號確實是連續分布 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.66.51
Maddulin:和連續不連續沒有太大關係, 以DFT 近似 FT的time-domain 04/02 11:12
Maddulin:訊號本來就是連訊的, 問題在於你的time-domain 取樣 04/02 11:21
Maddulin:window, 20s, sampling rate 1/15, 造成alias太大 04/02 11:22
Maddulin:你要用fft前,你應該先分析這些問題吧 04/02 11:25