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

下載本文檔

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

文檔簡介

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

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

3、p><p>  2.1.1 函數(shù)juanji(x1,x2,L)設(shè)計(jì)8</p><p>  2..1.2函數(shù)chongdie(x,h,N)設(shè)計(jì)8</p><p>  2.2 程序流程圖8</p><p>  第3章 分析與測試9</p><p>  3.1循環(huán)卷積設(shè)計(jì)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è)計(jì)12</p><p>  3.2.1程序12</p><p>  3.2.2測試12</p><p>  第4章 實(shí)驗(yàn)結(jié)果14</p

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

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

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

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

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

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

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

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

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

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

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

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

17、 (7)取出實(shí)際的輸出序列</p><p><b>  2.2 程序流程圖</b></p><p>  圖2-1 程序流程圖</p><p><b>  第3章 分析與測試</b></p><p><b>  3.1循環(huán)卷積設(shè)計(jì)</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è)計(jì)函數(shù)圖形</p><p>  圖3-1-2 系統(tǒng)函數(shù)fftfilt(h,x,N)</p><p><b>  

25、3.1.3 分析</b></p><p>  設(shè)計(jì)函數(shù)與系統(tǒng)函數(shù)前7個(gè)點(diǎn)一樣,系統(tǒng)函數(shù)沒有后4-1=3個(gè)點(diǎn),</p><p>  4為h(n)長度。設(shè)計(jì)函數(shù)符合要求。</p><p><b>  3.2線性卷積設(shè)計(jì)</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è)計(jì)函數(shù)圖形</p>

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

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

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

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

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

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

37、強(qiáng).數(shù)字信號處理.電子工業(yè)出版社.2009.</p><p>  【4】程衛(wèi)國.MATLAB53精要編程及高級應(yīng)用.北京:機(jī)械工業(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論