實驗三 快速傅立葉變換_第1頁
實驗三 快速傅立葉變換_第2頁
實驗三 快速傅立葉變換_第3頁
實驗三 快速傅立葉變換_第4頁
實驗三 快速傅立葉變換_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗三 快速傅立葉變換 1一、實驗目的 加深對離散傅立葉變換(DFT)的理解。 掌握利用MATLAB語言進行離散傅立葉變換和逆變換的方法。加深對離散傅立葉變換基本性質的理解。掌握離散傅立葉變換快速算法的應用。2二、實驗原理及方法有限長序列通過離散傅里葉變換(DFT)將其頻域離散化成有限長序列.但其計算量太大(與N的平方成正比), 很難實時地處理問題, 因此引出了快速傅里葉變換(FFT)。FFT并不是一種新的變換形式,它只是DFT的一種快速算法.并且根據對序列分解與選取方法的不同而產生了FFT的多種算法.3DFT的快速算法FFT是數字信號處理的基本方法和基本技術,是必須牢牢掌握的。 時間抽選FF

2、T算法的理論推導和流圖詳見數字信號處理教材。該算法遵循兩條準則: (1)對時間奇偶分;(2)對頻率前后分。 這種算法的流圖特點是: (1)基本運算單元都是蝶形 任何一個長度為N=2M的序列,總可通過M次分解最后成為2點的DFT計算。如圖所示: 4WNk稱為旋轉因子 計算方程如下: Xm+1(p)=Xm(p)+WNkXm(q) Xm+1(q)=Xm(p)-WNkXm(q)5 (2)同址(原位)計算 這是由蝶形運算帶來的好處,每一級蝶形運算的結果Xm+1(p)無須另外存儲,只要再存入Xm(p)中即可,Xm+1(q)亦然。這樣將大大節(jié)省存儲單元。 (3)變址計算 輸入為“混序”(碼位倒置)排列,輸出

3、按自然序排列,因而對輸入要進行“變址”計算(即碼位倒置計算)。“變址”實際上是一種“整序”的行為,目的是保證“同址”。 6FFT的應用凡是利用付里葉變換來進行分析、綜合、變換的地方,都可以利用FFT算法來減少其計算量。FFT主要應用在 1、快速卷積 2、快速相關 3、頻譜分析7快速傅立葉變換的MATLAB實現提供fft函數計算DFT格式 X=fft(x) X=fft(x,N) 如果x的長度小于N,則在其后填零使其成為N點序列,反之對x進行截斷,若省略變量N,則DFT的長度即為x的長度。如果N為2的冪,則得到高速的基-2FFT算法;若N不是2的乘方,則為較慢的混合算法。如果x是矩陣,則X是對矩陣

4、的每一列向量作FFT。8快速傅立葉逆變換(IFFT)函數調用格式 y=ifft(x) y=ifft(x,N)當N小于x長度時,對x進行截斷,當N大于x長度時,對x進行補零。9fftshift函數功能: 對fft的輸出進行重新排列,將零頻分量移到頻譜的中心。調用格式 y=fftshift(x) 當x為向量時,fftshift(x)直接將x中左右兩半交換而產生y。 當x為矩陣時,fftshift(x)直接將x中左右、上下進行交換而產生y。10由題目可得x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)fs=100N=128/1024例:已知信號由15Hz幅值0.5的正弦信號

5、和40Hz幅值2的正弦信號組成,數據采樣頻率為100Hz,試繪制N=128點DFT的幅頻圖。11fs=100;N=128;n=0:N-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);y=fft(x,N);f=(0:length(y)-1)*fs/length(y);mag=abs(y);stem(f,mag);title(N=128點)12利用FFT進行功率譜的噪聲分析已知帶有測量噪聲信號 其中f1=50Hz,f2=120Hz, 為均值為零、方差為1的隨機信號,采樣頻率為1000Hz,數據點數N=512。試繪制信號的功率譜圖。13t=0:0.001

6、:0.6;x=sin(2*pi*50*t)+sin(2*pi*120*t);y=x+2*randn(1,length(t);Y=fft(y,512);P=Y.*conj(Y)/512; %求功率f=1000*(0:255)/512;subplot(2,1,1);plot(y);subplot(2,1,2);plot(f,P(1:256);14序列長度和FFT的長度對信號頻譜的影響。已知信號 其中f1=15Hz,f2=40Hz,采樣頻率為100Hz. 在下列情況下繪制其幅頻譜。 Ndata=32,Nfft=32; Ndata=32,Nfft=128;15fs=100;Ndata=32; Nfft

7、=32;n=0:Ndata-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);y=fft(x,Nfft);mag=abs(y);f=(0:length(y)-1)*fs/length(y);subplot(2,1,1)plot(f(1:Nfft/2),mag(1:Nfft/2)title(Ndata=32,Nfft=32)16Nfft=128;n=0:Ndata-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);y=fft(x,Nfft);mag=abs(y);f=(0:length(y)-1)*fs/le

8、ngth(y);subplot(2,1,2)plot(f(1:Nfft/2),mag(1:Nfft/2)title(Ndata=32,Nfft=128)17線性卷積的FFT算法在MATLAB實現卷積的函數為CONV,對于N值較小的向量,這是十分有效的。對于N值較大的向量卷積可用FFT加快計算速度。由DFT性質可知,若DFTx1(n)=X1(k),DFTx2(n)=X2(k)則 若DFT和IDFT均采用FFT和IFFT算法,可提高卷積速度。18計算x1(n)和x2(n)的線性卷積的FFT算法可由下面步驟實現計算X1(k)=FFTx1(n);計算X2(k)=FFTx2(n);計算Y(k)=X1(k) X2(k);計算x1(n)*x2(n)=IFFTY(k).19用函數conv和FFT計算同一序列的卷積,比較其計算時間。clock函數讀取瞬時時鐘etime(t1,t2)函數計算時刻t1,t2間所經歷的時間。20調

溫馨提示

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

評論

0/150

提交評論