作者flybow (yyyyyyyy)
看板Electronics
標題Re: [問題] 訊號的頻率成分...?
時間Mon Apr 2 03:03:02 2007
※ 引述《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