




已閱讀5頁,還剩6頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
武漢理工大學數字信號處理課程設計說明書1理論分析11 圓周卷積的定義對兩個N點序列和,除了可以做線性卷積外,還有一種很重要的卷積運算,還有一種很重要的卷積運算,就是圓周卷積。若、的離散付里葉變換分別為、,且有 =則 =IDFT =上式即為序列與的圓周卷積,習慣表示為 =圓周卷積與周期卷積之間的關系,就是有限長序列圓周卷積結果的周期延拓,等于它們周期延拓后的周期卷積。換句話說,周期卷積的主值序列,是各周期序列主值序列的圓周卷積。周期卷積得到是周期序列,圓周卷積得到的是有限長序列,而且長度等于參加卷積的序列的長度。12 圓周卷積的計算 若、分別是長度為N、M的序列則與線性卷積至多M+N-1個非零值,如果LM+N-1時,周期延拓才不會發生混疊。之所以討論用圓周卷積來計算線性卷積的條件,是因為圓周卷積可在頻域下利用DFT求得,從而可采用DFT的快速算法FFT來計算,這樣就可以利用FFT來計算線性卷積,大大提高運算效率。圓周卷積與周期卷積的卷積過程一樣,只是結果只取主值序列,其具體步驟結構框圖大致如下所示:補零按要求使兩序列補零后均為N點周期延拓將一個序列按M點延拓為周期序列翻褶將延拓后的周期序列翻褶取主值序列對翻褶后的周期序列取主值 圓周移位對此主值序列做圓周移位(n)相乘每次移位后的序列與另一序列相乘相加將諸m點(m=0,1m-1)的乘積值相加,即為移位n點后的y(n)值(n=0,1n-1)圖1-1 圓周卷積計算結構框圖13 重疊相加法在實際應用中利用FFT來計算兩個序列的圓周卷積從而實現計算其線性卷積,但是常遇到的問題是參加卷積的兩個序列的長度相差較大,這樣長度小的序列就需要補很多的零點,這樣就需要打的存儲量,運算時間也會變長。所以常用到的解決方法有兩種,其中一種就是重疊相加法。設 h(n)長度為N,x(n)長度為無限長,x(n)取M點,且與N盡量接近。=x(n)與h (n)的卷積為: * =* =重疊相加法實現步驟如下:(1)將h(n)補零延長到L =M+ N -1,并計算長為L的FFT,得到 H(k)。(2)分別將xk(n)補零延長到L =M+ N -1,并計算長為L的FFT,得到 Xk(k)(3)計算,并求長為L的反變換,即(4)將yk(n)的重疊部分相加,最后得到結果為2 圓周卷積程序設計21 程序設計基本構思由時域與頻域的關系可知,兩序列和在時域下進行線性卷積的結果等于這兩個序列在頻域下相乘后進行反變換回時域的結果。圓周卷積在一定條件下(LM+N-1)與線性卷積得到的結果相同,而圓周卷積可在頻域下利用DFT求得,從而可采用DFT的快速算法FFT來計算,這樣就可以利用FFT來計算線性卷積,大大提高運算效率。而在利用FFT來計算圓周卷積的過程中當兩序列的長度相差較大時采用重疊相加法來進行計算可有效提高計算的效率,減小存儲空間的消耗。22 程序設計步驟卷積函數程序設計:(1)x1(n)進行N點快速傅里葉變換得X1(k) (2)x2(n)進行N點快速傅里葉變換得X2(k) (3)進行頻域相乘Y(k)=X1(k)*X2(k) (4)對Y(k)進行反變換得到時域卷積y(n)對x1(n)進行FFT運算對x(2)進行FFT運算頻域相乘Yk=X1k*X2k對Yk進行反變換得到時域結果y(n)開始結束 圖2-1 卷積函數程序設計框圖重疊函數程序設計:(1)首先取圓周卷積的周期L(即進行L點的快速傅里葉變換)(2)計算每一分段的大小N(3)填充序列使得循環中對序列的索引不會超出范圍(4)計算分段數K(5)對序列進行分段調用juanji()函數計算圓周卷積(6)各段重疊相加(7)取出實際的輸出序列取圓周卷積的周期L計算每一分段的大小N將序列按要求填充計算分段數K調用函數juanji()將各段處理的結果重疊相加輸出最終結果開始結束 圖2-2 重疊函數程序設計框圖3 程序代碼31 主程序代碼x1= 1,2,3,4,5,5,4,3,2,1;x2= 1,0,1;L=8;y=chongdie(x1,x2,L);s=1:10;subplot(2,2,1);stem(s,x1) %作出序列x1圖形r=1:3;subplot(2,2,2);stem(r,x2) %作出序列x2圖形u=1:13;subplot(2,2,3);stem(u,y) %作出輸出序列y圖形32 重疊函數程序代碼functiony=chongdie(x,h,L)Lenx=length(x); %取x(n)的長度M=length(h); %取h(n)的長度N=L-M+1; %計算分段大小Nx=x,zeros(1,N-1); %填充序列使得循環中對序列的索引不會超出圍K=floor(Lenx/N); %確定分段數Ky=zeros(1,Lenx+L-1);for i=0:1:K ix=i*N; x_seg=x(ix+1:ix+N); %將x(n)分段 y_seg=juanji(x_seg,h,L); %調用函數juanji()計算圓周卷積 y(ix+1:ix+L)=y(ix+1:ix+L)+y_seg(1:L); %各段重疊相加endy=y(1:Lenx+M); %取出實際的輸出序列33 卷積函數程序代碼function y=juanji(x1,x2,L)if length(x1)L %如果x1長度大于L則產生錯誤 error(L must not be less than length of x1);end if length(x2)L %如果x2長度大于L則產生錯誤 error(L must not be less than length of x2);end X1k=fft(x1,L); %對x1進行L點FFT計算X2k=fft(x2,L); %對x2進行L點FFT計算Yk=X1k.*X2k; %頻域相乘 y=ifft(Yk); %反變換得卷積結果if (all(imag(x1)=0)&(all(imag(x2)=0) y=real(y);end4 程序運行結果與分析輸入序列和周期Lx1= 1,2,3,4,5,5,4,3,2,1;x2= 1,0,1;L=8;運算結果:124689986421 0圖4-1程序運行結果 通過計算,得到線性卷積結果,與程序運行結果相一致,可知程序計算結果是正確的,用重疊相加法實現圓周卷積的程序設計完成。5 心得體會通過這次課程設計,加強了我們動手、思考和解決問題的能力。數字信號處理這門課程是其他很多課程的基礎,所以學好學通數字信號處理這門課程對我們來說是非常重要的。而Matlab這款軟件對數字信號處理的建模、編程、分析、實現有極大的幫助作用,所以我們應該掌握使用Matlab編程來實現對數字信號的處理。在和同組同學一起討論研究通基于重疊相加法的圓周卷積原理后,我開始了利用Matlab來實現這個功能。在編寫程序的過程中,我查閱了很多有關Matlab的編程知識,通過整合所查閱到的編程知識,結合先前研究的基于重疊相加法的圓周卷積原理,我設計了具有此功能的Matlab函數。通過這次課程設計,讓我加深了對書本知識的理解,并應用課本的理論知識,結合相關軟件,設計解決問題的算法。從而提高了由知識轉換為技能的能力,提高了自己的實踐能力。通過與同學的互相溝通,不僅使各自的知識得到了擴充,而且從中得到了很多的啟示,這次課程設計讓人受益匪淺。參考文獻1 周建興、豈興明等編.MATLAB從入門到精通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路信號設備更新改造項目實施考核試卷
- 石棉水泥制品企業運營管理考核試卷
- 礦產勘查中的勘查設備維護與管理考核試卷
- 保健食品營養均衡發展策略實施效果考核試卷
- 安全監控在物流行業的應用案例分析考核試卷
- 異物卡喉急救處理指南
- 兒科急診常見疾病案例
- 口腔科院感防控與管理體系
- 蚊子傳播疾病機制與防控
- 麻醉質控總結報告
- 2025年氨水市場需求分析
- 做課件教學視頻
- 2025年特種設備安全考試題庫特種設備安全管理人員法規應用試卷
- 普法試題及答案初中
- 中控崗位考試題及答案
- 商鋪退押金協議書
- 碘對比劑護理應用與安全管理
- 2025-2030年中國航空密封件行業市場現狀供需分析及投資評估規劃分析研究報告
- 知識產權租賃協議書
- GB 45673-2025危險化學品企業安全生產標準化通用規范
- 醫院培訓課件:《新生兒早期基本保健專家共識(2020)解讀》
評論
0/150
提交評論