數字信號處理 實驗一 FFT變換及其應用_第1頁
數字信號處理 實驗一 FFT變換及其應用_第2頁
數字信號處理 實驗一 FFT變換及其應用_第3頁
數字信號處理 實驗一 FFT變換及其應用_第4頁
數字信號處理 實驗一 FFT變換及其應用_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.實驗一 FFT變換及其應用一、 實驗目的和要求1. 在理論課學習的基礎上,通過本次實驗,加深對DFT原理的理解,懂得頻域DFT與時域卷積的關系,進一步加深對DFT基本性質的理解; 2. 研究FFT算法的主要途徑和編程思路,掌握FFT算法及其程序的編寫過程,掌握最基本的時域基-2FFT算法原理及程序框圖; 3. 熟悉應用FFT實現兩個序列的線性卷積的方法,利用FFT進行卷積,通過實驗比較出快速卷積優(yōu)越性,掌握循環(huán)卷積和線性卷積兩者之間的關系; 4. 熟悉應用FFT對典型信號進行頻譜分析的方法,初步了解用周期圖法作隨機信號譜分析的方法,了解應用FFT進行信號頻譜分析過程中可能出現的問題,以便在實

2、際中正確應用FFT; 5. 掌握使用MATLAB等基本開發(fā)工具實現對FFT編程。 二、 實驗設備和分組1. 每人一臺PC機;2. Windows 2000/XP以上版本的操作環(huán)境;3. MatLab 6.5及以上版本的開發(fā)軟件。三、 實驗內容(一) 實驗準備1. 用FFT進行譜分析涉及的基礎知識如下: 信號的譜分析就是計算信號的傅里葉變換。若信號是模擬信號,用FFT進行譜分析時,首先必須對信號進行采樣,使之變成離散信號,然后用FFT來對連續(xù)信號進行譜分析。 若信號本身是有限長的序列,計算序列的頻譜就是直接對序列進行FFT運算求得X(k),X(k)就代表了序列在0,2之間的頻譜值。 幅度譜: 相

3、位譜: 為避免產生混疊現象,采樣頻率fs應大于2倍信號的最高頻率fc,為了滿足采樣定理,一般在采樣之前要設置一個抗混疊低通濾波器。用FFT對模擬信號進行譜分析的方框圖如下所示。 圖1.1 FFT對模擬信號進行譜分析的方框圖2. 應用FFT實現快速卷積涉及的基礎知識如下:一個信號序列x(n)與系統(tǒng)的卷積可表示為下式: Y(n)=x(n)*h(n)=當是一個有限長序列,且0nN-1時,有: Y(n)=此時就可以應用FFT來快速計算有限長度序列的線性卷積。 也就是先將輸入信號x(n)通過FFT變換為它的頻譜采樣值X(k),然后再和濾波器的頻響采樣值H(k)相乘,最后再將乘積通過快速傅里葉變換(簡稱I

4、FFT)還原為時域序列,即得到輸出。如下圖所示。 圖1.2 FFT實現卷積的過程示意圖 2.1當序列x(n)和h(n)的長度差不多時 設x(n)的長度為N1,h(n)的長度為N2,則用FFT完成卷積的具體步驟如下: 為使兩有限長序列的線性卷積可用其循環(huán)卷積代替而不發(fā)生混疊,必須選擇循環(huán)卷積長度NN1+N2-1 用補零方法使x(n)和h(n)變成列長為N的序列。 用FFT計算x(n)和h(n)的N點離散傅里葉變換 完成X(k)和H(k)的乘積Y(k)。用FFT計算的離散傅里葉反變換得 y(n)2.2 當x(n)長度很長時可采用分段卷積的方法即重疊相加法和重疊保留法。(二) 實驗項目(1)用FFT

5、進行頻譜分析1) 對高斯序列進行頻譜分析代碼如下:n=0:15; p=8; q=2; x =exp(-1*(n-p).2/q); close all; subplot(3,1,1); stem(fft(x) ; %利用 fft 函數實現傅里葉變換 subplot(3,1,2); stem(abs(fft(x); %繪制幅度譜 subplot(3,1,3); stem(angle(fft(x) %繪制相位譜 代碼是為了得出此高斯序列的快速傅里葉變換,得到DFT的頻譜特征圖、幅頻特征圖和相頻特征圖。a) 固定信號參數P=8,改變q的值依次為2、4、8,結果如下圖:P=8,q=2圖2-1P=8,q=

6、4圖2-2P=8,q=8圖2-3結果分析:從圖中可以看出,當固定p的值,改變q,可觀察到:隨著q的增加,幅頻圖中趨近與0和等于0的個數增多。可見q的增大使DFT幅頻圖中幅度平均值減小,且p是序列的對稱軸,時域軸都關于n=8對稱。當q=2、4、8時,頻域變化越來越快,中間水平部分越來越大,混疊減弱。b) 固定信號參數q=8,改變p的值依次為8、13、14,結果如下圖:q=8,P=8 圖2-4q=8,p=13圖2-5p=14,q=8圖2-6結果分析:當固定q的值,改變p,可觀察到:隨著p的增大,圖形越來越偏離真實值,當p=14時泄漏現象較明顯,頻域波形隨p的增大頻率分量會增多,易產生混疊。2) 對

7、正弦序列進行頻譜分析代碼如下:n=0:15; %定義序列長度 a=0.1; f=0.0625; x=exp(-a*n).*sin(2*pi*f*n); close all; subplot(2,1,1); stem(x); title(衰減正弦序列); subplot(2,1,2); stem(abs(fft(x); %繪制幅度譜 title(x 信號的頻譜) a) 固定參數a=0.1,改變f,分別為0.5625、0.4375、0.0625,結果如下圖:f=0.5625圖2-7f=0.4375圖2-8f=0.0625圖2-9結果分析:觀察可知,當f=0.4375,0.5625時,時域圖像關于Y

8、軸對稱,頻域完全相同。隨著f值增大,時域序列周期變小。頻域序列的高頻分量逐漸增多,低頻分量逐漸減少,因為所取的頻率不符合采樣定理,以致發(fā)生嚴重的頻譜混疊和泄漏。3) 對三角序列進行頻譜分析代碼如下:for i=1:4 x(i)=i; end for i=5:8 x(i)=9-i; end for i=9:16 x(i)=0; end close all subplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x) %繪制幅度譜其頻譜圖如下所示:圖2-10結果分析:此編程實現三角序列,中間兩個值是相等的,然后我們根據fft函數快速求出x在各個n值

9、上所對應的傅里葉變換值,得到結果如下:Y=18.4640 3.1605 -16.3681i -5.3021 - 2.2394i -0.3336 + 0.3570i 0.1333 + 0.0145i 0.7981 - 0.5599i -0.0955 - 0.4109i 0.3750 0.0802i 0.0646 0.3750 + 0.0802i -0.0955 + 0.4109i 0.7981 + 0.5599i 0.1333 - 0.0145i -0.3336 - 0.3570i -5.3021 + 2.2394i 3.1605 +16.3681i 然后分別求出各點處的大?。▽嵅康钠椒郊犹摬康?/p>

10、平方開根號),得出來的大小和圖像近似相等。此三角序列的時域表達式為:當1n4時x(n)=n;當5n8時 x(n)=9-n。a) 反三角序列:代碼如下:For i=1:4 x(i)=5-i;endFor i=5:8 x(i)=i-4;endclose allsubplot(2,1,1);stem(x);subplot(2,1,2);stem(abs(fft(x,16)圖2-11b) 半三角序列(直角三角形序列):代碼1如下:for i=1 :8 x(i)=i-1;end close allsubplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x

11、)圖2-2代碼2如下:for i=1 :8 x(i)=8-i;end close allsubplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x)圖2-13c) 只有一個峰值:代碼如下:for i=1:4 x(i)=i;endfor i=5:8 x(i)=8-i;endclose allsubplot(2,1,1);stem(x);subplot(2,1,2);stem(abs(fft(x,16)圖2-14(2)使用FFT實現卷積運算已知:x1(n)=RN(n), 1N10; x2(n)=8sin(0.5*pi*n+4) 1N10;x3(n)

12、=0.8*exp(3*n)1N10;使用FFT實現以上3種卷積。代碼如下:n=1:1:10;N1=length(n);xn1=ones(1,N1);xn2=8*sin(0.5*pi*n+4);xn3=0.8*exp(3*n);N=N1+N1-1;X1k=fft(xn1,N);X2k=fft(xn2,N);X3k=fft(xn3,N);Yk1=X1k.*X2k;Yk2=X1k.*X3k;Yk3=X2k.*X3k;yn1=ifft(Yk1,N);yn2=ifft(Yk2,N);yn3=ifft(Yk3,N);x=0:N-1;subplot(3,1,1);stem(x,yn1,.)subplot(3

13、,1,2);stem(x,yn2,.)subplot(3,1,3);stem(x,yn3,.)用FFT計算卷積,實驗結果如下圖:圖2-15結果分析:X1n=1 1 1 1 1 1 1 1 1 ; x2n=8 0 -8 0 8 0 -8 0 8 0;X1n*x2n=0 8 8 0 0 8 8 0 0 8 0 0 8 8 0 0 8 8 0,其IFFT變換為8*(exp(j*2*w)+exp(j*3*w)+exp(j*6*w)+exp(j*7*w)+exp(j*10*w)+exp(j*13*w)+exp(j*14*w)+exp(j*17*w)+exp(j*18*w)=8*(1+exp(j*w)*(

14、exp(j*2*w)+exp(j*6*w)+exp(j*13*w)+exp(j*17*w)+8*exp(j*10*w),Matlab運行的結果與手工計算的結果完全一致,由此可知此代碼是正確的。(3)一個綜合性實例1) 創(chuàng)建簡易界面使用MATLAB中的圖形用戶接口功能,設計簡單的操作界面,如圖1.6所示。 界面中包含列表框,滑動塊,按鈕和靜態(tài)文本。其中列表中,包含正弦波、方波和鋸齒波;移動滑動塊可以改變圖形的周期,且周期數在靜態(tài)文本中顯示;點擊“退出”按鈕則退出程序。界面如下圖:圖2-16a) 當列表框中選擇正弦波,周期數為4時,產生的時域波形和頻譜圖如下:圖2-17b) 當列表框中選擇方波,周期數為4時,產生的時域波形和頻譜圖如下:圖2-18c) 當列表框中選擇三角波,周期數為4時,產生的時域波形和頻譜圖如下:圖2-19d) 當列表框中選擇鋸齒波,周期數為4時,產生的時域波形和頻譜圖如下:圖2-20四、 實驗小結本次實驗按照實驗指導書,基本是按照原有的代碼和步驟基礎上來做的,實驗中也遇到了一系列的問題:一,前后參數不一致,即在改變參數的時候,由于粗心使得前后參數形式不一致,而導致運行出錯;二,在matlab中新建文件,若以中文命名,然后保存后運行,則系統(tǒng)會因為識別不了所命名的中文而導致運行會出錯;三,只會用data cursor來將坐標點貼標簽,仍然不會用編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論