數(shù)字信號課程設(shè)計報告-用fft實現(xiàn)快速卷積_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  課 程 設(shè) 計 報 告 </p><p>  課程名稱 __________數(shù)字信號處理_____________</p><p>  設(shè)計題目 _______用FFT實現(xiàn)快速卷積__________</p><p>  專 業(yè) _____________通信工程______________</p><p><

2、;b>  目 錄 </b></p><p>  第1章 設(shè)計任務(wù)3</p><p><b>  1.1 原理4</b></p><p>  1.1.2 算法基本思想5</p><p>  第2章 程序設(shè)計7</p><p>  2.1 程序設(shè)計思路8</

3、p><p>  2.1.1 函數(shù)juanji(x1,x2,L)設(shè)計8</p><p>  2..1.2函數(shù)chongdie(x,h,N)設(shè)計8</p><p>  2.2 程序流程圖8</p><p>  第3章 分析與測試9</p><p>  3.1循環(huán)卷積設(shè)計10</p><p> 

4、 3.1.1程序10</p><p>  3.1.2 測試10</p><p>  3.1.3 分析12</p><p>  3.2線性卷積設(shè)計12</p><p>  3.2.1程序12</p><p>  3.2.2測試12</p><p>  第4章 實驗結(jié)果14</p

5、><p>  4.1實驗結(jié)果14</p><p><b>  第5章 總結(jié)15</b></p><p>  第6章 參考文獻16</p><p><b>  第1章 設(shè)計任務(wù)</b></p><p>  計算1個給定序列與輸入序列的卷積。</p><p&

6、gt;<b>  功能:</b></p><p>  對給定的數(shù)據(jù)進行卷積運算,要求分段卷積由循環(huán)卷積實現(xiàn)。要求設(shè)計有數(shù)據(jù)導(dǎo)入界面,各種參數(shù)從軟件界面可以輸入,其中給定序列可以由界面輸入,對運算前后的數(shù)據(jù)繪制曲線。 </p><p><b>  要求:</b></p><p>  初步完成總體設(shè)計,搭好框架,確定人機對話的

7、界面,確定函數(shù)功能,控制參數(shù)的輸入方法;</p><p>  設(shè)計線性卷積的實現(xiàn)方案;</p><p>  編寫兩序列作循環(huán)卷積的程序;</p><p>  通過直接做線性卷積來檢驗最后結(jié)果。</p><p><b>  設(shè)計步驟:</b></p><p>  用結(jié)構(gòu)化設(shè)計方法。一個程序劃分成若干

8、模塊,每一個模塊的函數(shù)功能要劃分好,總體設(shè)計應(yīng)畫出流程圖;</p><p>  輸入輸出界面要友好;</p><p>  源程序書寫要規(guī)范,加必要的注釋;</p><p>  要提供通過直接卷積進行檢驗的結(jié)果;</p><p>  程序一定要要能運行起來。</p><p><b>  1.1 原理</b

9、></p><p>  1.1.1 算法產(chǎn)生背景 </p><p>  DFT 是連續(xù)傅里葉變換在時域和頻域上都離散的形式,將時域信號的采樣變換為在離散時間傅里葉變換頻域的采樣。在形式上,變換兩端(時域和頻域上)的序列是有限長的。DFT 具備明確且合理的物理含義,適合應(yīng)用于數(shù)字系統(tǒng),同時可以方便地由計算機進行運算。 </p><p>  對于線性非移變離散

10、系統(tǒng),可由線性卷積表示時域輸入輸出關(guān)系,即 </p><p>  y(n)=x(n)*h(n) ?</p><p>  通常采用循環(huán)卷積降低運算量,但實際中往往無法滿足對信號處理的實時性要求。因此,產(chǎn)生了重疊相加法和重疊保留法兩種典型的算法,用以快速計算線性卷積,成為了DFT 的一個重要應(yīng)用。 </p><p>  1.1.2 算法基本思想 </p>

11、<p>  重疊相加法是將待過濾的信號分割成長為 N 的若干段,,每一段都可以和有限時寬單位取樣回應(yīng)作卷積,再將過濾后的各段重疊相加。 </p><p>  在實際應(yīng)用中利用FFT來計算兩個序列的圓周卷積從而實現(xiàn)計算其線性卷積,但是常遇到的問題是參加卷積的兩個序列的長度相差較大,這樣長度小的序列就需要補很多的零點,這樣就需要大的存儲量,運算時間也會變長。所以常用重疊相加法來解決。</p>

12、<p><b>  如以下情況:</b></p><p>  h(n)長度為N,x(n)長度為無限長</p><p>  x(n)取M點,且與N盡量接近</p><p>  可采用如下方法來解決</p><p>  圖1-1 重疊相加法的卷積示意圖</p><p>  重疊相加法的步驟如

13、下</p><p> ?。?)將h(n)補零延長到L =M+ N -1,并計算長為L的FFT,得到 H(k)。</p><p> ?。?)分別將xk(n)補零延長到L =M+ N -1,并計算長為L的FFT,得到 Xk(k)</p><p> ?。?)計算,并求長為L的反變換,即</p><p> ?。?)將yk(n)的重疊部分相加,最后得到

14、結(jié)果為</p><p><b>  第2章 程序設(shè)計</b></p><p>  2.1 程序設(shè)計思路</p><p>  2.1.1 函數(shù)juanji(x1,x2,L)設(shè)計</p><p>  x1(n)進行N點快速傅里葉變換得X1k</p><p>  x2(n)進行N點快速傅里葉變換得X2k

15、</p><p>  進行頻域相乘Yk=X1k*X2k</p><p>  對Yk進行反變換得到時域卷積結(jié)果y(n)</p><p>  2..1.2函數(shù)chongdie(x,h,N)設(shè)計</p><p>  (1)首先取圓周卷積的周期L(即進行L點的快速傅里葉變換)</p><p> ?。?)計算每一分段的大小N&l

16、t;/p><p> ?。?)填充序列使得循環(huán)中對序列的索引不會超出范圍</p><p><b>  (4)計算分段數(shù)K</b></p><p> ?。?)對序列進行分段調(diào)用juanji()函數(shù)計算圓周卷積</p><p><b> ?。?)各段重疊相加</b></p><p> 

17、?。?)取出實際的輸出序列</p><p><b>  2.2 程序流程圖</b></p><p>  圖2-1 程序流程圖</p><p><b>  第3章 分析與測試</b></p><p><b>  3.1循環(huán)卷積設(shè)計</b></p><p>

18、<b>  3.1.1程序</b></p><p>  function y =xhConv(h,X) </p><p>  M = length(hn);</p><p>  if N <M </p><p><b>  N = M+1; </b&

19、gt;</p><p><b>  end</b></p><p>  L = M+N-1; </p><p>  Lx = length(x); </p><p>  T = ceil(Lx/N); </p><p>  t = zeros(

20、1,M-1); </p><p>  x = [x,zeros(1,(T+1)*N-Lx)]; </p><p>  y = zeros(1,(T+1)*N); </p><p>  for i=0:1:T </p><p><b>  xi=i*N+1;</b><

21、;/p><p>  x_seg = x(xi:xi+N-1); </p><p>  X1k = fft(x_seg,L); </p><p>  X2k = fft(h,L); </p><p>  Yk = X1k.*X2k; </p><p

22、>  y_seg = ifft(Yk); </p><p>  y_seg(1:M-1)=y_seg(1:M-1)+t(1:M-1); </p><p>  t(1:M-1) = y_seg(N+1:L); </p><p>  y(xi:xi+N-1)=y_seg(1:N); </p><p>&

23、lt;b>  end</b></p><p>  y=y(1:Lx+M-1)</p><p><b>  3.1.2 測試</b></p><p><b>  設(shè)N=4</b></p><p>  h=[1,2,3,4]</p><p>  X=[1,2,3

24、,4,5,6,7,8,9]</p><p>  調(diào)用系統(tǒng)函數(shù)fftfilt(h,x,N)</p><p><b>  對比生成圖像</b></p><p>  圖3-1-1 設(shè)計函數(shù)圖形</p><p>  圖3-1-2 系統(tǒng)函數(shù)fftfilt(h,x,N)</p><p><b>  

25、3.1.3 分析</b></p><p>  設(shè)計函數(shù)與系統(tǒng)函數(shù)前7個點一樣,系統(tǒng)函數(shù)沒有后4-1=3個點,</p><p>  4為h(n)長度。設(shè)計函數(shù)符合要求。</p><p><b>  3.2線性卷積設(shè)計</b></p><p><b>  3.2.1程序</b></p&

26、gt;<p>  function z = myConv(A, B)</p><p>  Lx=length(A)+length(B)-1; </p><p>  l1=length(A)-1;</p><p>  l2=length(B)-1;</p><p>  A=[zeros(1,l2) A zeros(1,l2)];

27、 </p><p>  B=fliplr(B); </p><p>  B=[B,zeros(1,l1+l2)]; </p><p>  for i=1:Lx </p><p>  z(i)=A(1)*B(1);</p>&

28、lt;p>  for k=2:length(B)</p><p>  z(i)=z(i)+A(k)*B(k); </p><p><b>  end</b></p><p>  t=B(length(B)); </p><p>  for j=length(B):-1:2

29、 </p><p>  B(j)=B(j-1);</p><p><b>  end</b></p><p><b>  B(1)=t;</b></p><p><b>  end </b></p><p><b>  3.2.2測試&l

30、t;/b></p><p>  設(shè)h=[1,3,5,7]</p><p>  X=[9,8,7,6,5,4,3,2,1]</p><p>  調(diào)用系統(tǒng)函數(shù)conv(h,x)</p><p><b>  對比生成圖像</b></p><p>  圖3-2-1 設(shè)計函數(shù)圖形</p>

31、<p>  圖3-2-2 系統(tǒng)函數(shù)conv(h,x)</p><p><b>  第4章 實驗結(jié)果</b></p><p><b>  4.1實驗結(jié)果</b></p><p><b>  圖4-1 實驗結(jié)果</b></p><p><b>  第5章 總結(jié)

32、</b></p><p>  作為電子信息工程系的學(xué)生,數(shù)字信號處理這門課程是其他很多課程的基礎(chǔ),所以學(xué)好學(xué)通數(shù)字信號處理這門課程對我們來說是非常重要的。而MATLAB這款軟件對數(shù)字信號處理的建模、編程、分析、實現(xiàn)有極大的幫助作用,所以我們應(yīng)該掌握使用MATLAB編程來實現(xiàn)對數(shù)字信號的處理。</p><p>  此次我得到的課設(shè)題目是:通過重疊相加法計算卷積。拿到課設(shè)題目后,我

33、仔細研究了與題目相關(guān)的原理,包括線性卷積、周期卷積、圓周卷積、重疊相加法、離散傅里葉變換DFT、快速傅里葉變換FFT等原理知識,弄清楚了它們之間的關(guān)系。通過這次課程設(shè)計,我不僅順利完成課程設(shè)計的要求,而且在課程設(shè)計過程中通過對相關(guān)原理的回顧,對各相關(guān)原理之間的關(guān)系有了脫胎換骨般的認(rèn)識,讓我意識到此前學(xué)到的知識是多么的淺薄。</p><p>  在和同組同學(xué)一起討論研究通基于重疊相加法的圓周卷積原理后,我開始了利用

34、MATLAB來實現(xiàn)這個功能。在編寫程序的過程中,我查閱了很多有關(guān)MATLAB的編程知識,通過整合所查閱到的編程知識,結(jié)合先前研究的基于重疊相加法的圓周卷積原理,我設(shè)計了具有此功能的MATLAB函數(shù)。在設(shè)計時我遇到了不少的問題,剛開始時我先設(shè)定分段長度N,然后由N來求卷積周期L。但是在程序運行過程中我發(fā)現(xiàn)算法具有很大的局限性。通過仔細揣摩這其中的問題,原來是我忽略了FFT運算的條件。所以我制定了第二個方案,先設(shè)定卷積的周期L,然后由L來求

35、分段長度N,這樣程序的適用范圍就擴大了。為了提高程序的適用性,我不斷的對程序進行修改和測試,以求能夠達到更好的效果,這個過程讓我體會到了編程解決問題的樂趣。</p><p>  通過這次課程設(shè)計,讓我加深了對書本知識的理解,并應(yīng)用課本的理論知識,結(jié)合相關(guān)軟件,設(shè)計解決問題的算法。從而提高了由知識轉(zhuǎn)換為技能的能力,提高了自己的實踐能力。通過與同學(xué)的互相溝通,不僅使各自的知識得到了擴充,而且從中得到了很多的啟示,這次

36、課程設(shè)計讓人受益匪淺。</p><p><b>  第6章 參考文獻</b></p><p>  【1】高西全、丁玉美.數(shù)字信號處理 第三版.西安電子科技大學(xué)出版社.2008.</p><p>  【2】羅建軍、楊琦.精講多練MATLAB.西安:西安交通大學(xué)出版社.2002.</p><p>  【3】劉泉、闕大順、郭志

37、強.數(shù)字信號處理.電子工業(yè)出版社.2009.</p><p>  【4】程衛(wèi)國.MATLAB53精要編程及高級應(yīng)用.北京:機械工業(yè)出版社.2000.</p><p>  【5】李正周.MATLAB數(shù)字信號處理與應(yīng)用.北京: 清華大學(xué)出版社.2008.</p><p>  【6】周建興、豈興明等編. MATLAB從入門到精通.人民郵電出版社.2008</p>

溫馨提示

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

評論

0/150

提交評論