資源描述:
《matlab的FFT函數(shù)介紹》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、matlab的FFT函數(shù)2010-04-2622:16相關語法:Y=fft(X)Y=fft(X,n)Y=fft(X,[],dim)Y=fft(X,n,dim)定義如下:相關的一個例子:Fs=1000;%采樣頻率T=1/Fs;%采樣時間L=1000;%總的采樣點數(shù)t=(0:L-1)*T;%時間序列(時間軸)%產(chǎn)生一個幅值為0.7頻率為50HZ正弦+另外一個信號的幅值為1頻率為120Hz的正弦信號x=0.7*sin(2*pi*50*t)+sin(2*pi*120*t);y=x+2*randn(size(t));%混入噪聲信號plot(Fs*t(1:50),y(1:50))%畫
2、出前50個點title('SignalCorruptedwithZero-MeanRandomNoise')xlabel('time(milliseconds)')NFFT=2^nextpow2(L);%求得最接近總采樣點的2^n,這里應該是2^10=1024Y=fft(y,NFFT)/L;%進行fft變換(除以總采樣點數(shù),是為了后面精確看出原始信號幅值)f=Fs/2*linspace(0,1,NFFT/2+1);%頻率軸(只畫到Fs/2即可,由于y為實數(shù),后面一半是對稱的)%畫出頻率幅度圖形,可以看出50Hz幅值大概0.7,120Hz幅值大概為1.plot(f,2*ab
3、s(Y(1:NFFT/2+1)))title('Single-SidedAmplitudeSpectrumofy(t)')xlabel('Frequency(Hz)')ylabel('
4、Y(f)
5、')PS:前段時間,只是為了自己看明白,沒有管太多,剛才上空間發(fā)現(xiàn)幾位的留言,感覺慚愧。其實要掌握matlab中fft的用法,主要有兩點注意的地方:1、從公式上看,matlab的fft序號是從1到N,但是絕大多數(shù)教材上是從0到N-1。2、Y=fft(x)之后,這個Y是一個復數(shù),它的模值應該除以(length(x)2),才能得到各個頻率信號實際幅值。