資源描述:
《2012-2016年中國硫酸鉀市場運營態(tài)勢與發(fā)展趨勢研究報告》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Matlab的分析和測試及其計算一、實驗目的1、掌握時域抽樣定理。2、通過實驗加深對FFT的理解。3、熟悉應用FFT對典型信號進行頻譜分析的方法。二、實驗原理1、時域抽樣定理時域抽樣定理給出了連續(xù)信號抽樣過程中信號不失真的約束條件:對于基帶信號,信號抽樣頻率大于等于2倍的信號最高頻率,即。時域抽樣是把連續(xù)信號變成適于數(shù)字系統(tǒng)處理的離散信號。對連續(xù)信號以間隔T抽樣,則可得到的離散序列為。圖1連續(xù)信號抽樣的離散序列若,則信號與的頻譜之間存在:其中:的頻譜為,的頻譜為。可見,信號時域抽樣導致信號頻譜的周期化。(rad/s)為抽樣角頻率,為抽樣頻率。數(shù)字角頻率Ω與模擬角頻率ω的關系
2、為:Ω=ωT。2、離散傅立葉變換(DFT)有限長序列的離散傅立葉變換(DFT)為逆變換為3、快速傅立葉變換(FFT)在各種信號序列中,有限長序列占重要地位。對有限長序列可以利用離散傅立葉變換(DFT)進行分析。DFT不但可以很好的反映序列的頻譜特性,而且易于用快速算法(FFT)在計算機上進行分析。有限長序列的DFT是其z變換在單位圓上的等距離采樣,或者說是序列傅立葉的等距離采樣,因此可以用于序列的譜分析。FFT是DFT的一種快速算法,它是對變換式進行一次次分解,使其成為若干小數(shù)據(jù)點的組合,從而減少運算量。MATLAB為計算數(shù)據(jù)的離散快速傅立葉變換,提供了一系列豐富的數(shù)學函數(shù)
3、,主要有Fft、Ifft、Fft2、Ifft2,Fftn、ifftn和Fftshift、Ifftshift等。當所處理的數(shù)據(jù)的長度為2的冪次時,采用基-2算法進行計算,計算速度會顯著增加。所以,要盡可能使所要處理的數(shù)據(jù)長度為2的冪次或者用添零的方式來添補數(shù)據(jù)使之成為2的冪次。Fft函數(shù)調用方式:、Y=fft(X);、Y=fft(X,N);、Y=fft(X,[],dim)或Y=fft(X,N,dim)。函數(shù)Ifft的參數(shù)應用與函數(shù)Fft完全相同。三.實驗內容與步驟1、為了說明高密度頻譜和高分辨率頻譜之間的區(qū)別,考察序列x(n)有限個樣本的頻譜。當時,求x(n)的DFT.當時,
4、求x(n)的DFT.程序:functionDFTX1N=input('請輸入離散信號的長度:');n=0:N-1;k=0:N-1;xn=cos(0.48*n*pi)+cos(0.52*n*pi);WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;subplot(2,1,1)stem(n,xn);title('x(n):');gridon;subplot(2,1,2)stem(k,abs(Xk));title('x(n)的DFT:');gridon;>>DFTX1請輸入離散信號的長度:10>>DFTX1請輸入離散信號的長度:10
5、0頻譜圖:2、已知一模擬信號,現(xiàn)在采樣率進行采樣。用DFT計算當序列長度分別為L=100,L=20時,N=200點的幅度頻譜樣值并通過作圖與理論上準確的頻譜樣值進行比較。程序:L1=100;L2=20;t1=0:L1-1;x1=exp(-t1/20);t2=0:L2-1;x2=exp(-t2/20);N=0:199;WN=exp(-j*2*pi/length(N));nk1=t1'*N;nk2=t2'*N;WNnk1=WN.^nk1;WNnk2=WN.^nk2;Xk1=x1*WNnk1;Xk2=x2*WNnk2;subplot(4,1,1)stem(t1,x1);title
6、('序列長度L=100時x(n)圖:');gridon;subplot(4,1,3)stem(t2,x2);title('序列長度L=20時x(n)圖:');gridon;subplot(4,1,2)stem(N,abs(Xk1));title('序列長度L=100時x(n)的DFT圖:');gridon;subplot(4,1,4)stem(N,abs(Xk2));title('序列長度L=20時x(n)的DFT圖:');gridon;實驗圖:3、一個連續(xù)信號含三個頻譜分量,經(jīng)采樣得以下序列:(1)N=64,df分別為、1/64,觀察其頻譜;程序:functiondftx
7、3(df)N=64;k=0:127;n=0:N-1;xn=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n);WN=exp(-j*2*pi/length(k));nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;subplot(2,1,1)plot(n,xn);title('df=1/16,長度為N=64的有限序列x(n)圖:');gridon;subplot(2,1,2)plot(abs(Xk(1:64)));title('取上