![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/70d56531-f127-44f1-aff4-2a7faa47ba39/70d56531-f127-44f1-aff4-2a7faa47ba39pic.jpg)
![數(shù)字信號課程設(shè)計報告-用fft實現(xiàn)快速卷積_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/70d56531-f127-44f1-aff4-2a7faa47ba39/70d56531-f127-44f1-aff4-2a7faa47ba391.gif)
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- fft快速卷積課程設(shè)計報告
- 數(shù)字信號處理課程設(shè)計--fft實現(xiàn)信號的頻分復(fù)用
- 數(shù)字信號課程設(shè)計報告
- 數(shù)字信號課程設(shè)計--數(shù)字信號處理
- 數(shù)字信號處理課程設(shè)計報告
- 數(shù)字信號處理課程設(shè)計報告
- 數(shù)字信號處理課程設(shè)計報告
- 數(shù)字信號課程設(shè)計---方波和單邊指數(shù)信號的卷積及卷積過程演示
- 數(shù)字信號課程設(shè)計
- 數(shù)字信號課程設(shè)計
- 數(shù)字信號處理課程設(shè)計報告 (2)
- 數(shù)字信號處理課程設(shè)計報告 (3)
- 數(shù)字信號處理(dsp)課程設(shè)計報告
- 數(shù)字信號處理課程設(shè)計項目報告
- 數(shù)字信號課程設(shè)計--語音數(shù)字信號處理與分析及matlab實現(xiàn)
- 數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計
評論
0/150
提交評論