資源描述:
《Matlab實現(xiàn)FFT變換》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Matlab實現(xiàn)FFT變換Matlab實現(xiàn)FFT變換(單邊譜及雙邊譜)以前對于FourierTransform從來沒有細究,不管在LabVIEW還是Matlab里都有現(xiàn)成的FFT(快速FourierTransform)函數(shù),輸入相應的參數(shù)就可以了。在Matlab下y=fft(x,nfft);x為輸入nfft為快速傅立葉變換的點數(shù)LabVIEW下,同樣輸入x及變換的點數(shù),還有一個布爾控制,是否shift?下面的例子,先進行fouriertransform,即雙邊譜程序代碼fs=100;%設定采樣頻率N=128;n=0:N
2、-1;t=n/fs;f0=10;%設定正弦信號頻率%生成正弦信號x=sin(2*pi*f0*t);figure(1);subplot(231);plot(t,x);%作正弦信號的時域波形xlabel('t');ylabel('y');title('正弦信號y=2*pi*10t時域波形');grid;%進行FFT變換并做頻譜圖y=fft(x,N);%進行fft變換mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%進行對應的頻率轉(zhuǎn)換figure(1);subplot(232);
3、plot(f,mag);%做頻譜圖axis([0,100,0,80]);xlabel('頻率(Hz)');ylabel('幅值');title('正弦信號y=2*pi*10t幅頻譜圖N=128');grid;%求均方根譜sq=abs(y);figure(1);subplot(233);plot(f,sq);xlabel('頻率(Hz)');ylabel('均方根譜');title('正弦信號y=2*pi*10t均方根譜');grid;%求功率譜power=sq.^2;figure(1);subplot(234);plo
4、t(f,power);xlabel('頻率(Hz)');ylabel('功率譜');title('正弦信號y=2*pi*10t功率譜');grid;%求對數(shù)譜ln=log(sq);figure(1);subplot(235);plot(f,ln);xlabel('頻率(Hz)');ylabel('對數(shù)譜');title('正弦信號y=2*pi*10t對數(shù)譜');grid;%用IFFT恢復原始信號xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure
5、(1);subplot(236);plot(ti,magx);xlabel('t');ylabel('y');title('通過IFFT轉(zhuǎn)換的正弦信號波形');grid;下面進行單邊譜計算:程序代碼fs=100;%設定采樣頻率N=128;n=0:N-1;t=n/fs;f0=10;%設定正弦信號頻率%生成正弦信號x=sin(2*pi*f0*t);figure(1);subplot(231);plot(t,x);%作正弦信號的時域波形xlabel('t');ylabel('y');title('正弦信號y=2*pi*10t
6、時域波形');grid;%進行FFT變換并做頻譜圖y=fft(x,N);%進行fft變換mag=abs(y);%求幅值m=length(y);f=(0:m/2-1)'*fs/m;%進行對應的頻率轉(zhuǎn)換figure(1);subplot(232);plot(f,mag(1:m/2));%做頻譜圖axis([0,100,0,80]);xlabel('頻率(Hz)');ylabel('幅值');title('正弦信號y=2*pi*10t幅頻譜圖N=128');grid;%求均方根譜sq=abs(y);figure(1);sub
7、plot(233);plot(f,sq(1:m/2));xlabel('頻率(Hz)');ylabel('均方根譜');title('正弦信號y=2*pi*10t均方根譜');grid;%求功率譜power=sq.^2;figure(1);subplot(234);plot(f,power(1:m/2));xlabel('頻率(Hz)');ylabel('功率譜');title('正弦信號y=2*pi*10t功率譜');grid;%求對數(shù)譜ln=log(sq);figure(1);subplot(235);plot(f
8、,ln(1:m/2));xlabel('頻率(Hz)');ylabel('對數(shù)譜');title('正弦信號y=2*pi*10t對數(shù)譜');grid;%用IFFT恢復原始信號xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(1);subplot(236)