




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、合肥師范學(xué)院物電系08電子信息工程MATLAB論文裝訂線MATLAB論文題目:利用MATLAB實現(xiàn)循環(huán)卷積論文系別:物理與電子工程系 姓名:翟劉慧班級:08電子信息工程(2)班 學(xué)號:08082110782011年5月19日星期四利用MATLAB實現(xiàn)循環(huán)卷積摘 要 數(shù)字信號處理技術(shù)的核心算法是離散傅立葉變換(DFT),是DFT使信號在數(shù)字域和頻域都實現(xiàn)了離散化,從而可以通過計算機處理離散信號。離散傅立葉變換,在通信、語音處理、圖像處理、雷達、醫(yī)學(xué)影像等各個領(lǐng)域得到廣泛應(yīng)用,但這都是以卷積和相關(guān)運算、對連續(xù)信號和序列進行譜分析為基礎(chǔ)的。卷積分為循環(huán)卷積、線性卷積等。本文分析了在什么情況下能用循環(huán)
2、卷積運算代替線性卷積運算并給出了相關(guān)程序代碼,本文實現(xiàn)了在MATLAB中對任意的兩序列進行循環(huán)卷積,序列可以通過鍵盤輸入,最后顯示結(jié)果和波形。關(guān)鍵詞:卷積 循環(huán)卷積 傅立葉變換 MATLABABSTRACT The core digital signal processing algorithm is the Discrete Fourier Transform(DFT),is the DFT to the signal in the digital domain and frequency domain are realized discrete ,general-purpose compu
3、ter which can handle discrete signal .Discrete Fourier Transform ,in communications ,voice processing ,image processing ,radar ,medical imaging and other fields is widely used ,but this is by convolution and correlation operations on continuous signals and sequences based on spectral analysis .Volum
4、e integral for the circular convolution ,linear convolution .This paper analyzes under what circumstances can use cyclic convolution operation instead of linear convolution and the corresponding program codes in MATLAB to achieve this on two sequences of arbitrary input cyclic convolution ,the keybo
5、ard sequence can input the final results and waveform display.Keywords :convolution circular convolution Fourier transform MATLAB 目 錄 一MATLAB軟件簡介3 1.1MATLAB簡介3 1.2MATLAB特點3 二信號與系統(tǒng)4 2.1系統(tǒng)的描述與分類4 2.1.1連續(xù)時間系統(tǒng)和離散時間系統(tǒng)4 2.1.2線性系統(tǒng)和分線性系統(tǒng)4 2.2 信號的描述與分類5 2.2.1連續(xù)時間信號和離散時間信號5 2.2.2 周期信號與非周期信號5 2.2.3 能量信號與功率信號5
6、三利用MATLAB實現(xiàn)信號分析6 3.1連續(xù)信號的表示和運算6 3.2單位序列6 四卷積的概念與原理8 4.1 卷積原理8 4.2卷積運算8 4.3 循環(huán)卷積8 五利用MATLAB實現(xiàn)任意兩序列的循環(huán)卷積10 5.1實現(xiàn)循環(huán)卷積的幾種方法10 5.2 定義法10 5.3直接調(diào)用MATLAB內(nèi)部函數(shù)11 5.4 快速卷積法12 5.5幾種算法性能比較14 參考文獻:1412引 言 信號與系統(tǒng)是電子信息工程專業(yè)的一門十分重要的專業(yè)基礎(chǔ)課,而且對其他自然科學(xué)和工程領(lǐng)域的科研和人員也是十分重要的。數(shù)字信號處理技術(shù)是在信號與系統(tǒng)的基礎(chǔ)上進一步發(fā)展起來的。對數(shù)字信號的處理需要 計算機或?qū)S锰幚碓O(shè)備,如數(shù)字
7、信號處理器(DSP)或?qū)S眉呻娐罚ˋSIC)等。數(shù)字信號處理技術(shù)及設(shè)備具有靈活、精確、抗干擾強、設(shè)備尺寸小、造價低、速度快等突出優(yōu)點,這些都是模擬信號處理技術(shù)與設(shè)備無法比擬的。MATLAB是一個高性能的科學(xué)計算軟件,廣泛應(yīng)用于數(shù)學(xué)計算、系統(tǒng)仿真、可視化、科學(xué)和工程繪圖等,因此MATLAB已經(jīng)成為國際上最流行的科學(xué)與工程計算的軟件工具。現(xiàn)在的MATLAB已經(jīng)不僅僅是“矩陣實驗室”了,它已經(jīng)成為一種具有廣泛應(yīng)用前景的全新的計算機高級編程語言了,有人稱它為“第四代”計算機語言,它在國內(nèi)外高校和研究部門正扮演著重要的角色。MATLAB語言是一種簡單、高效、功能極強的高級語言,具有強大的矩陣運算解決方
8、法。可以預(yù)見,子啊科學(xué)運算、自動控制與科學(xué)繪圖領(lǐng)域MATLAB語言將長期保持獨一無二的地位。本系統(tǒng)設(shè)計就是利用MATLAB軟件來完成數(shù)字信號的處理,因此本 系統(tǒng)設(shè)計是基于MATLAB軟件實現(xiàn)任意兩個序列的循環(huán)卷積。一 MATLAB軟件簡介1.1MATLAB簡介 MATLAB 是由Matrix和Laboratory兩個詞的前三個字母組合而成的,是由Mathworks公司于1984年推出的一套高性能的數(shù)值計算和可視化數(shù)學(xué)軟件。它是一種基于矩陣運算的交互式程序語言,專門對科學(xué)、工程計算及回吐的需求。最為重要的是,由于使用MATLAB進行編程運算與人進行科學(xué)計算的表達方式完全一致,所以不像其他高級語言
9、(如c等)那樣難于掌握,用MATLAB編寫程序猶如在演算紙上排列出公式與求解問題,因此它又被稱為演算紙式科學(xué)算法語言。1.2MATLAB特點 MATLAB是一種高性能的、用于工程計算的編程軟件,它把科學(xué)計算、結(jié)果的可視化和編程都集中在一個使用非常方便的環(huán)境中。一般來說,MATLAB系統(tǒng)包括下面五個主要部分:(1)編程語言:它是以矩陣和數(shù)組為基本單位的編程語言;(3)圖形處理:包括繪制二維、三維圖形和創(chuàng)建圖形用戶接口;(4)數(shù)學(xué)庫函數(shù):包含了大量的數(shù)學(xué)函數(shù),也包括復(fù)雜的功能;(5)應(yīng)用程序接口:提供接口程序,可使MATLAB與其他語言程序進行交互。MATLAB典型的應(yīng)用包括以下幾個方面:(1)數(shù)
10、學(xué)和計算算術(shù)發(fā)展模型;(2)建模和動態(tài)仿真;(3)數(shù)據(jù)分析、開發(fā)和可視化;(4)科學(xué)和工程圖學(xué)。二 信號與系統(tǒng)2.1系統(tǒng)的描述與分類 什么是系統(tǒng)?廣義地說,系統(tǒng)是由若干相互作用和相互依賴的事物組合而成的具有特定功能的整體。例如,通信系統(tǒng)、自動控制系統(tǒng)、計算機網(wǎng)絡(luò)系統(tǒng)、電力系統(tǒng)、水利灌溉系統(tǒng)等。通常將施加于系統(tǒng)的作用稱為系統(tǒng)的輸入激勵,而將要求系統(tǒng)完成的功能成為系統(tǒng)的輸出響應(yīng)。 2.1.1連續(xù)時間系統(tǒng)和離散時間系統(tǒng)輸入和輸出均為連續(xù)時間信號的系統(tǒng)稱為連續(xù)時間系統(tǒng)。輸入和輸出均為離散時間信號的系統(tǒng)稱為離散時間系統(tǒng)。模擬通信系統(tǒng)是連續(xù)時間系統(tǒng),而數(shù)字計算機就是離散時間系統(tǒng)。連續(xù)時間系統(tǒng)的數(shù)學(xué)模型是微
11、分方程,而離散時間系統(tǒng)則用差分方程來描述。2.1.2線性系統(tǒng)和非線性系統(tǒng) 線性系統(tǒng)是指具有線性特性的系統(tǒng)。所謂線性特性是指齊次性與疊加性。若系統(tǒng)輸入增加K倍,輸出也增加K倍,這就是齊次性。若有幾個輸入同時作用于系統(tǒng),而系統(tǒng)的總輸出等于每一個輸入單獨作用引起的輸出之和,這就是疊加性。系統(tǒng)同時具有齊次性和疊加性便呈線性特性。一個系統(tǒng)的輸出不僅與輸入有關(guān),還與系統(tǒng)的初始狀態(tài)有關(guān)。設(shè)具有初始狀態(tài)的系統(tǒng)加入激勵時的總響應(yīng)為y(t);僅有激勵而初始狀態(tài)為零的響應(yīng)為yzs(t),稱為零狀態(tài)響應(yīng);僅有初始狀態(tài)而激勵為零的響應(yīng)為yzi(t),稱為零輸入響應(yīng)。若將系統(tǒng)的初始狀態(tài)看成系統(tǒng)的另一種輸入激勵,則對于線性
12、系統(tǒng),根據(jù)系統(tǒng)的線性特性,其輸出總響應(yīng)必然是每個輸入單獨作用時相應(yīng)輸出的疊加。因此,一般線性系統(tǒng)必須具有:A.分解性即y(t)yzs(t)yzi(t);B.零輸入線性當(dāng)系統(tǒng)有多個初始狀態(tài)時,零輸入響應(yīng)對每個初始狀態(tài)呈線性;C.零狀態(tài)線性當(dāng)系統(tǒng)有多個輸入時,零狀態(tài)響應(yīng)對每個輸入呈線性。凡不具備上述特性的系統(tǒng)則稱為非線性系統(tǒng)。2.2 信號的描述與分類2.2.1連續(xù)時間信號和離散時間信號 按照函數(shù)時間取值的連續(xù)性劃分:確定信號可分為連續(xù)時間信號和離散時間信號,簡稱連續(xù)信號和離散信號。所謂連續(xù)時間信號,是指自變量的取值范圍是連續(xù)的,且對于一切自變量的取值,除了有若干不連續(xù)的點以外,信號都是有確定的值與
13、之對應(yīng)的。連續(xù)信號是指在所討論的時間內(nèi),對任意時刻除若干不連續(xù)點以外,信號都是有確定的值與之對應(yīng)的。連續(xù)信號是指在所討論的時間內(nèi),對任意時刻值除若干個不連續(xù)點外都有定義的信號,通常用f(t)表示。離散信號是指只在某些不連續(xù)時刻有定義,而在其他時刻沒有定義的信號。通常用f(tk)只在t、k=0,1,2,3,等離散時刻才給出函數(shù)值。2.2.2 周期信號與非周期信號 周期信號和非周期信號:按信號的周期性劃分,確定信號又可以分為周期信號和非周期信號。周期信號是指一個每隔一定時間T,周而復(fù)始且無始無終的信號,它們的表達式可寫為f(t)=f(t+nT);n=0,1,2,滿足此關(guān)系的最小T值成為信號的非周期
14、信號在時間上不具有周而復(fù)始的特性。非周期信號也可以看做一個周期T趨于無窮大的周期信號。2.2.3 能量信號與功率信號 能量信號與功率信號:信號按時間函數(shù)的可積性劃分,可以分為能量信號,功率信號和非功非能信號。信號看作是隨時間變化的電壓或電流,信號t(t)在1歐姆的電阻上的瞬時功率為,在時間區(qū)間所消耗的總能量定義為:信號f(t)可以是一個既非功率信號,又非能量信號,如單位斜坡信號就是一個例子。但一個信號不可能同時既是功率信號,又是能量信號。三 利用MATLAB實現(xiàn)信號分析3.1連續(xù)信號的表示和運算 一般說來周期信號都是功率信號,非周期信號或者能量信號,或者功率信號,或者既非能量信號又非功率信號。
15、屬于能量信號的非周期信號稱為脈沖信號,它在有限時間范圍內(nèi)有一定數(shù)值。嚴(yán)格地說,MATLAB并不能處理連續(xù)的信號。在MATLAB中,信號都是用連續(xù)信號的在相同的時間間隔點采樣值來近似地表信號。在MATLAB中連續(xù)信號可用向量或符號運算的功能來表示。在MATLAB中,用一個向量f即可以表示一個有限長度的序列。但是,這樣的向量并沒有包含其對應(yīng)的時間序號信息。所以,要完整的表示離散信號需要用兩個向量。用MATLAB表示離散序列并將其可視化時,要注意以下幾點:1、 與連續(xù)時間信號不同,離散時間信號無法用符號來表示。2、 由于在MATLAB中,矩陣的元素個數(shù)是有限的。因此,MATLAB無法表示無限序列。3
16、、 在繪制離散信號波形時,要使用專門的繪制離散數(shù)據(jù)的stem命令,而不是plot命令。3.2單位序列單位序列定義為:,下面是MATLAB繪制單位序列的子程序,其中為在時間上的位移量,則左移,則右移,、為時間序列的起始時間序列,調(diào)用該函數(shù)就可以繪出單位序列及其位移序列的波形圖。function dwxl(k1,k2,k0)k=k1:k2;n=length(k);f=zeros(1,n);f(1,-k0-k1+1)=1;stem(k,f,'filled');axis(k1,k2,0,1.5);title('單位序列')以dwxl.M文件名保存。調(diào)用dwxl(-5,5
17、,0);可得結(jié)果如下圖1所示 通過以上序列的求解方法可以容易的寫出求解單邊指數(shù)序列的MATLAB程序。程序如下:k=0:10;f=exp(-0.5*k);stem(k,f);axis(0,10,0,1);title('單邊指數(shù)序列')·四 卷積的概念與原理4.1 卷積原理信號的卷積是針對時域信號處理的一種分析方法。信號的卷積一般用于求取信號通過某系統(tǒng)后的響應(yīng)。在信號與系統(tǒng)中,我們通常求取某系統(tǒng)的單位沖激響應(yīng),所求得的h(n)可作為系統(tǒng)的時域表征。任一系統(tǒng)響應(yīng)可用卷積的方法求得:y(n)=x(n)*h(n)4.2卷積運算設(shè)兩個序列為x(n)和h(n),則x(n)和h(n
18、)的卷積和定義為:y(n)=x(m)h(n-m)=x(n)*h(n)其中,把卷積和用*來表示。卷積和的運算在圖形上可以分為四步:反折、移位、相乘、相加。反折:先將變量坐標(biāo)m上作出x(m)和h(m)以m=0的垂直軸為對稱軸反折成h(-m).移位:將h(-m)移位n,即得h(n-m).當(dāng)n為整數(shù)時,右移n位。當(dāng)n為負(fù)整數(shù)時,右移n位。相乘:再將h(n-m)和x(m)的相同m值的對應(yīng)點相乘。相加:把以上所有點的乘積疊加起來,即得y(n)值。對于兩個時限信號,按照上述的五個步驟,做卷積積分運算時,關(guān)鍵是正確確定不同情況下的積分限。只要正確地確定了積分限都能得到正確定積分結(jié)果。在MATLAB的內(nèi)部有函數(shù)
19、conv可以很容易地完成兩個信號卷積積分運算。其語法為:yn=conv(x,h)。其中x和h分別是兩個卷積運算的信號,yn為卷積結(jié)果。在MATLAB窗口中輸入以下內(nèi)容:>>x=2 0 7 10;>>h=5 -1 3 13;>>yn=conv(x,h)在屏幕上顯示結(jié)果如下:yn= 10 -2 41 69 11 121 130有時候,做卷積運算的兩個序列,可能有一個序列或者兩個序列都非常長,甚至是無限長,MATLAB處理這樣的序列時,總是把它看作是一個有限長序列,具體長度是由編程者確定。實際上,在信號與系統(tǒng)分析中所遇到的無限長序列,通常都是滿足絕對可積條件的信號
20、。因此,對信號采取這種取部分處理盡管存在誤差,但是通過選擇合理的信號長度,這種誤差是能夠減小到可以接受的程度。4.3 循環(huán)卷積循環(huán)卷積也稱圓周卷積。線性卷積是求離散系統(tǒng)響應(yīng)的主要方法之一。循環(huán)卷積的計算速度要遠遠快于線性卷積,如果選擇循環(huán)卷積的長度,則可以用循環(huán)卷積代替線性卷積。方法如下:(1)定義循環(huán)卷積的長度:選擇;(2)將兩個序列的長度都補足為C;將長為N1的序列x(n)延長到C,補C-N1個零;將長為N2的序列h(n)延長到C,補C-N2個零;(3)反轉(zhuǎn)x(n),周期延拓為序列x(n),取主周期;(4)循環(huán)移位:與線性卷積不同,循環(huán)卷積運算中采用的是循環(huán)移位,有限長序列x(n)的循環(huán)移
21、位定義為:其含義如下:表示x(n)的周期延拓序列x(n)的移位:是一個長度為N的有限序列。(5)將序列x與h進行循環(huán)移位生成的矩陣H的轉(zhuǎn)置矩陣相乘,即完成x(m)和h(n-m)所有對應(yīng)項相乘之后相加,完成循環(huán)卷積。五 利用MATLAB實現(xiàn)任意兩序列的循環(huán)卷積時域的圓周卷積在頻域上相當(dāng)于兩序列的DFT相乘,而DFT又有多種快速算法,因此與線性卷積相比,計算速度可以大大提高。5.1實現(xiàn)循環(huán)卷積的幾種方法本系統(tǒng)設(shè)計了三種方式來實現(xiàn)任意兩個序列的循環(huán)卷積,分別是定義法、直接調(diào)用MATLAB內(nèi)部函數(shù)法、快速卷積法。5.2 定義法根據(jù)循環(huán)卷積的定義及運算步驟:反折、移位、相乘、相加,用MATLAB語言編寫
22、出程序代碼如下。%循環(huán)卷積實現(xiàn)原理:y(n)=sum(x1(m)*x2(n-m) mod N)clear;close all; x1=input('請輸入序列x1=');x2=input('請輸入序列x2=');xn1=length(x1);xxn1=0:xn1-1;subplot(3,1,1);stem(xxn1,x1,'.');title('序列x1'); xn2=length(x2);xxn2=0:xn2-1;subplot(3,1,2);stem(xxn2,x2,'.');title('序列x2
23、39;); if(length(x1)>N)error('N輸入錯誤:N的長度必須大于輸入x1的長度');endif(length(x2)>N)error('N輸入錯誤:N的長度必須大于輸入x2的長度');endx1=x1,zeros(1,N-length(x1);x2=x2,zeros(1,N-length(x2);m=0:N-1;x=zeros(N,N);for n=0:N-1 x(:,n+1)=x2(mod(n-m),N)+1);end;yn=x1*x;subplot(3,1,3);stem(m,yn,'r','.
24、9;);title('序列x1和序列x2的循環(huán)卷積結(jié)果');定義法程序的 如下:將以上程序保存為juanji.m文件,在MATLAB中輸入序列x1=2 3 0 -5 6,序圖3 定義法實現(xiàn)的任意兩序列循環(huán)卷積結(jié)果5.3直接調(diào)用MATLAB內(nèi)部函數(shù)用MATLAB 語言編寫出的程序代碼如下。clear;close all;x1=input('請輸入序列x1=');x2=input('請輸入序列x2=');N=input('請輸入循環(huán)卷積的長度N=');y=conv(x1,x2);%x1與x2線性卷積subplot(2,1,1);%畫圖
25、的位置在2行2列這個矩陣的第1行1列處n=0:length(y)-1;stem(n,y,'.');%畫圖title('序列x1與序列x2的線性卷積結(jié)果');%標(biāo)題xlabel('n');ylabel('y(n)');%x、y軸 x11=fft(x1,N);%對x1傅里葉變換x12=fft(x2,N);%對x2傅里葉變換y11=x11.*x12;%乘y1=ifft(y11,N);%逆傅里葉變換subplot(2,1,2);n=0:length(y1)-1;stem(n,y1,'.');title('循環(huán)卷積結(jié)
26、果');xlabel('n');ylabel('y1(n)'); 將以上程序保存為hanshu.m文件,在MATLAB中輸入序列x1=6 15 -6 3 5 7 0 1,序列x2=7 1 2 9 4 3 20 6,輸入循環(huán)卷積的長度N=25得到結(jié)果如圖4所示。5.4 快速卷積法先將輸入的兩個序列x1和 x2周期延拓到C點,其中,N1為x1的長度,N2為x2的長度;C取值為2的整數(shù)冪,以便使用-2FFT算法。根據(jù)信號在時域與頻域關(guān)系,可以用FFT計算線性卷積。方法如下:(1)定義長度:選擇。(2)求兩個要卷積序列的N點頻譜函數(shù):求X(k)=FFTx(n)求H(k)=FFTh(n)(3)將兩個頻譜函數(shù)相乘求Y(k)=H(k)X(k)(4)對乘積進行IFFT變換 求y(n)=IFFT(Y(k)快速卷積結(jié)構(gòu)圖如下:X1(k
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織品質(zhì)量控制與追溯系統(tǒng)考核試卷
- 電聲器件在耳機與耳塞中的應(yīng)用考核試卷
- 機床功能部件在石油鉆采設(shè)備中的耐高溫性能考核試卷
- 糕點店經(jīng)營風(fēng)險與應(yīng)對策略考核試卷
- 私募股權(quán)投資醫(yī)療健康行業(yè)分析考核試卷
- 靜脈治療護理技術(shù)操作標(biāo)準(zhǔn)2023版解讀
- 3-2組合邏輯電路的設(shè)計
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)加減法測試題
- 內(nèi)蒙古醫(yī)科大學(xué)《室內(nèi)裝修工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省南通市海安市十校聯(lián)考2025屆初三畢業(yè)班聯(lián)考(二)數(shù)學(xué)試題試卷含解析
- 國企管理人員招聘考試題庫
- 托管老師員工手冊
- 中醫(yī)養(yǎng)生的健康體重
- (2024版)小學(xué)二年級孩子如何高效復(fù)習(xí)語文知識點
- 中石化公司招聘考試真題
- 統(tǒng)編版一年級語文下冊部編版第六單元單元教材解讀(素材)(課件)
- 乳腺結(jié)節(jié)手術(shù)后的護理
- 2024年口腔醫(yī)療相關(guān)項目招商引資方案
- 培訓(xùn)固定資產(chǎn)管理制度
- 電廠灰場環(huán)境風(fēng)險評估報告
- 原子核物理實驗方法課后習(xí)題(附答案)
評論
0/150
提交評論