![基于MATLAB的模擬濾波器設(shè)計要點_第1頁](http://file4.renrendoc.com/view/17bdf657ed91e42c8d7a93a7629e4472/17bdf657ed91e42c8d7a93a7629e44721.gif)
![基于MATLAB的模擬濾波器設(shè)計要點_第2頁](http://file4.renrendoc.com/view/17bdf657ed91e42c8d7a93a7629e4472/17bdf657ed91e42c8d7a93a7629e44722.gif)
![基于MATLAB的模擬濾波器設(shè)計要點_第3頁](http://file4.renrendoc.com/view/17bdf657ed91e42c8d7a93a7629e4472/17bdf657ed91e42c8d7a93a7629e44723.gif)
![基于MATLAB的模擬濾波器設(shè)計要點_第4頁](http://file4.renrendoc.com/view/17bdf657ed91e42c8d7a93a7629e4472/17bdf657ed91e42c8d7a93a7629e44724.gif)
![基于MATLAB的模擬濾波器設(shè)計要點_第5頁](http://file4.renrendoc.com/view/17bdf657ed91e42c8d7a93a7629e4472/17bdf657ed91e42c8d7a93a7629e44725.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于MATLAB的模擬濾波器設(shè)計引言第 頁(共34頁)第 頁(共34頁)第 頁(共34頁)基于MATLAB的模擬濾波器設(shè)計引言1.1選題背景1917年美國和德國科學(xué)家分別發(fā)明了LC濾波器,次年美國發(fā)明了第一個多路復(fù)用系統(tǒng)。50年代無源濾波在相頻技術(shù)日趨成熟,自60年代起由于微電子技術(shù)、信息技術(shù)、計算機技術(shù)、集成工藝和材料工業(yè)的發(fā)展,濾波器朝著低功耗、高精度、小體積、多功能、高穩(wěn)定性和價廉方向努力,這些成為70年代以后的主攻方向。RC有源濾波器、數(shù)字濾波器、開關(guān)電容濾波器和電荷轉(zhuǎn)移器等各種濾波器的發(fā)展很快,它們被單片集成化。80年代,主要致力于各類新型濾波器性能的研究,并逐漸擴大應(yīng)用范圍。90年
2、代至今主要致力于把各類濾波器應(yīng)用于各類產(chǎn)品中,幾乎在所有的工程技術(shù)領(lǐng)域中都會涉及到信號處理問題1,而濾波是信號處理的一種基本而重要的技術(shù),利用濾波可從復(fù)雜的信號中抑制不需要的部分,提取所需要的信號2。濾波器的優(yōu)劣直接決定著產(chǎn)品的優(yōu)劣,所以濾波技術(shù)一直是極為敏感和熱門的課題,對濾波器的研制也歷來為各國所重視。在當(dāng)今30多個數(shù)學(xué)類科技應(yīng)用軟件中,就軟件數(shù)學(xué)處理的原始內(nèi)核而言,可分為兩大類。一類是數(shù)值計算型軟件,如MATLAB,Xmath,Gauss等,這類軟件長于數(shù)值計算,對處理大批數(shù)據(jù)效率高;另一類是數(shù)學(xué)分析型軟件,Mathematica,Maple等,這類軟件以符號計算見長,能給出解析解和任意
3、精確解,其缺點是處理大量數(shù)據(jù)時效率較低。時至今日,經(jīng)過MathWorks公司的不斷完善,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺的功能強大的大型軟件。在歐美等高校,MATLAB已經(jīng)成為線性代數(shù),自動控制理論,數(shù)理統(tǒng)計,數(shù)字信號處理,時間序列分析,動態(tài)系統(tǒng)仿真等高級課程的基本教學(xué)工具。利用MATLAB具有較嚴(yán)謹(jǐn)?shù)目茖W(xué)計算和圖形界面顯示這一優(yōu)點,從而使濾波器設(shè)計結(jié)果顯示的更加直觀,且設(shè)計擴展性好,便于調(diào)節(jié)濾波器的性能。1.2目的和意義MATLAB中的圖形界面編程環(huán)境GUIDE為用戶開發(fā)軟件界面提供了強有力的工具,在圖形界面編程環(huán)境GUIDE下,設(shè)計好濾波器的設(shè)計工具界面后,對界面上各個控件
4、的回調(diào)函數(shù)進行編寫就能設(shè)計出交互式濾波器的分析設(shè)計軟件。利用MATLAB具有較嚴(yán)謹(jǐn)?shù)目茖W(xué)計算和圖形顯示這一優(yōu)點,從而使濾波器設(shè)計結(jié)果顯示的更加直觀,設(shè)計擴展性好,便于調(diào)節(jié)濾波器的性能。通過對模擬濾波器(包括巴特沃斯濾波器和切比雪夫濾波器)的設(shè)計原理和方法的研究,在此基礎(chǔ)上論述了模擬濾波器(包括低通、高通、帶通、帶阻)的設(shè)計3。1.3發(fā)展現(xiàn)狀及趨勢MATLAB以其強大的計算和繪圖功能、大量穩(wěn)定可靠的算法庫、簡潔高效的編程語言以及龐大的用戶群,成為數(shù)學(xué)計算工具方面事實上的標(biāo)準(zhǔn)4。幾乎所有的工程計算領(lǐng)域,MATLAB都有相應(yīng)的軟件工具箱。從20世紀(jì)90年代初期開始,MATLAB開始逐步引入到應(yīng)用代數(shù)
5、、數(shù)理統(tǒng)計、信號與系統(tǒng)、制動控制、數(shù)字信號處理、通信系統(tǒng)、動態(tài)系統(tǒng)仿真等課程中學(xué)習(xí)和運用,時至今日,經(jīng)過MathWorks公司的不斷完善,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺的功能強大大型軟件5。在近代電信設(shè)備和各類控制系統(tǒng)中,濾波器應(yīng)用極為廣泛。幾乎在所有的電子部件中使用最多,技術(shù)最為復(fù)雜的即為濾波器。濾波器的優(yōu)劣直接決定著產(chǎn)品的優(yōu)劣,所以對濾波器的研究和生產(chǎn)歷來為各國所重視。隨著電子工業(yè)的發(fā)展,對濾波器性能的要求越來越高。我國電子產(chǎn)品要實現(xiàn)大規(guī)模集成,濾波器集成化仍是重要課題。如何進一步實現(xiàn)濾波器的小型化、集成化和高效化是今后很長一段時間內(nèi)不變的研究和發(fā)展主題。經(jīng)過MathWo
6、rks公司的不斷完善,在設(shè)計研究單位和工業(yè)部門,MATLAB被廣泛用于科學(xué)研究和解決各種具體問題,對于濾波器的研究,能夠在MATLAB里找到合適的功能6。方案論證2.1濾波器設(shè)計原理2.1.1濾波器概述濾波器是通訊系統(tǒng)中的一種不可缺少的器件。濾波技術(shù)是信號分析,處理技術(shù)的重要分支。無論是信號的獲取,傳輸,還是信號的處理和交換都離不開濾波技術(shù),它對信號安全可靠和有效靈活地傳遞是至關(guān)重要的。在所有的電子系統(tǒng)中,使用最多,技術(shù)最為復(fù)雜的應(yīng)該是濾波器了。濾波器的優(yōu)劣直接決定著產(chǎn)品的優(yōu)劣,所以,濾波技術(shù)一直是極為敏感和熱門的課題,對濾波器的研制也歷來為各國所重視。濾波器可廣義地理解為一個信號選擇系統(tǒng)。濾
7、波器的功能是讓某些頻率的信號比較順利的通過,而另外頻率的信號受到較大抑制與衰減。濾波器中,把信號能夠通過的頻率范圍,稱為通頻帶或通帶;反之,信號受到很大衰減或完全被抑制的頻率范圍稱為阻帶;通帶和阻帶之間的分界頻率稱為截止頻率;理想濾波器在通帶內(nèi)的電壓增益為常數(shù),在阻帶內(nèi)的電壓增益為零;帶通濾波器兩個截至頻率的差值為帶寬(BW);實際濾波器的通帶和阻帶之間存在一定頻率范圍的過渡帶7。2.1.2模擬濾波器的工作原理模擬濾波器是對模擬信號實行線性濾波的一種線性時不變系統(tǒng),如圖1所示。在時域內(nèi),它的動態(tài)特性可以用系統(tǒng)的單位沖激函數(shù)的響應(yīng)h(t)來描述,也就是該濾a波系統(tǒng)在任何時刻對輸入單位沖激信號xC
8、)=6(t)的輸出響應(yīng)yC)二hC)。這個函數(shù)aaa從時域上反映了該濾波系統(tǒng)的傳輸特性。對于任意輸入信號xC),系統(tǒng)的輸出yC)可aa以卷積表示:yC)=JhG)x(/-P)dPTOC o 1-5 h za_aa=JxG)h(/_T)dT(1)一8aa上式表明在對線性濾波器系統(tǒng)進行時域分析時,采用了疊加原理,先將任意輸入信號波形分成不同時間的窄脈沖之和,再分別求出各個脈沖通過濾波器之后的響應(yīng),xC)x仮并進行線性疊加從而得到總的輸出信號。模擬濾波器h(t),H(s)a圖1模擬濾波器原理在頻域分析時,線性濾波器的轉(zhuǎn)移函數(shù)H(S)等于系統(tǒng)的單位沖激函數(shù)的響應(yīng)ah(t)的拉普拉斯變換;aA、HIJh
9、.e_stdt(2)al一)丿很明顯,當(dāng)s=j,上式就是傅立葉變換的表達式,它反映了濾波器的傳輸特性對各種頻率的響應(yīng),也就是濾波器的頻率響應(yīng)函數(shù)H(加),它決定著濾波特性。當(dāng)a濾波器輸入信號xC)與輸出信號yC)的拉普拉斯變換,得aaYC)=HC)XC)(3)aaa這表明兩信號卷積的變換等于各自變換的乘積。在頻譜關(guān)系上,一個輸入信號的頻譜X(jo),經(jīng)過濾波器的作用后,被變換成H(jS)X(妙)的頻譜。因此,根據(jù)不aaa同的濾波要求來選定H(jo),就可以得到不同類型的模擬濾波器。還可以看出,濾a波器的濾波過程就是完成信號xC)與它的單位沖激函數(shù)響應(yīng)hC)之間的數(shù)學(xué)卷積運aa算過程8。2.1.
10、3模擬濾波器的設(shè)計模擬濾波器按幅度特征可以分成低通、高通、帶通和帶阻濾波器。它們的幅頻特性如圖2所示,但我們設(shè)計濾波器時,總是先設(shè)計低通濾波器,再通過頻率變換將低通濾波器轉(zhuǎn)換成希望類型的濾波器。利用頻率變換設(shè)計模擬濾波器的步驟為:給定模擬濾波器的性能指標(biāo),如截止頻率o或上、下邊界頻率O,O等。012確定濾波器階數(shù)基于MATLAB的模擬濾波器設(shè)計方案論證方案論證第 頁(共34頁)第 頁(共34頁)第 頁(共34頁)(3)設(shè)計模擬低通原型濾波器。(4)按頻率變換設(shè)計模擬濾波器(低通、高通、帶通、帶阻)。G和G,其中G和G分別稱為通帶截止psps模擬低通濾波器的設(shè)計指標(biāo)有R,p頻率和阻帶截止頻率。R
11、是通帶Q中的最大衰減系數(shù),R是阻帶Q三G的最小衰減ps系數(shù),R和R一般用dB表示。對于單調(diào)下降的幅度特性,可表示成:psR二101gp|H(j0)|2Hjp)F(4)R=10lgsH(j0)|2aH(jG)|2as)(5)如果Q=0處幅度已歸一化為一,即|hCo)=1,a和a表示為sR=-10lg|H(jG)|2pap(6)R=-10lg|H(jG)2sas(7)以上技術(shù)指標(biāo)用圖3表示,圖中稱為3dB截止頻率,因H(jG)=丄,-20|H(jG)=3dBac2ac圖3低通濾波器的幅度特性濾波器的技術(shù)指標(biāo)給定以后,需要設(shè)計一個傳輸函數(shù)HC),希望其幅度平方a函數(shù)滿足給定的指標(biāo)R和R,一般濾波器的
12、單位沖激響應(yīng)為實數(shù),因此psH(jO)|2二H(a)H(-s)Iaaas=jQ=H(jQ)H*(jQ)aa如果能由R,Q,R,Q求出|H(jQ”,那么就可以求出所需的H(s),對ppSsaa于上面介紹的典型濾波器,其幅度平方函數(shù)有自己的表達式,可以直接引用9。巴特沃斯與切比雪夫濾波器2.2.1巴特沃斯濾波器(9)當(dāng)2=Q時,|H(jQ)=lca2巴特沃斯濾波器是最基本的逼近方法形式之一。它的幅頻特性模平方為H(jQ)|2=)2a.Q1+()2NQc式中N是濾波器的階數(shù)。當(dāng)0=0時,|H(jQ)=1;aQ是3dB截止頻率。c不同階數(shù)N的巴特沃斯濾波器特性如圖4所示,這一幅頻特性具有下列特點:最大
13、平坦性:可以證明:在0=0點,它的前(2N-1)階導(dǎo)數(shù)都等于0這表明巴特沃斯濾波器在0=0附近一段范圍內(nèi)是非常平直的,它以原點的最大平坦性來逼近理想低通濾波器?!白钇巾憫?yīng)”即由此而來。通帶,阻帶下降的單調(diào)性。這種濾波器具有良好的相頻特性。3dB的不變性:隨著N的增加,頻帶邊緣下降越陡峭,越接近理想特性,但不管N是多少,幅頻特性都通過-3dB點。圖4不同階數(shù)N的巴特沃斯濾波器特性MATLAB中設(shè)計巴特沃斯模擬濾波器的函數(shù)10:buttord功能:用于計算巴特沃斯模擬濾波器的階數(shù)N和3dB截止頻率wc。格式:N,wc=buttord(wp,ws,Rp,Rs,s)buttap功能:用于計算濾波器的零
14、點z,極點p,增益k。格式:z,p,k=buttap(n)zp2tf功能:將模擬原型濾波器函數(shù)設(shè)計出的零點z,極點p,增益k形式轉(zhuǎn)換為傳遞函數(shù)形式格式:b,a=zp2tf(z,p,k)lp2hp功能:模擬低通濾波器到模擬高通濾波器的變換。格式:bt,at=lp2hp(b,a,Wo)lp2bp功能:模擬低通濾波器到模擬帶通濾波器的變換。格式:bt,at=lp2bp(b,a,Wo,Bw)lp2bs功能:模擬低通濾波器到模擬帶阻濾波器的變換。格式:bt,at=lp2bs(b,a,Wo,Bw)freqs功能:求幅頻響應(yīng)和相頻響應(yīng)格式:H,f=freqs(b,a,w)2.2.2切比雪夫濾波器巴特沃斯濾波
15、器的頻率特性曲線,無論在通帶和阻帶都是頻率的單調(diào)函數(shù)。當(dāng)通帶邊界處滿足指標(biāo)要求時,通帶內(nèi)肯定會有余量。因此,更有效的設(shè)計方法應(yīng)該是將精確度均勻地分布在整個通帶內(nèi)。這可通過選擇具有等波紋特性的逼近函數(shù)來達到。切比雪夫濾波器的振幅特性就是具有這種等波紋特性。它有兩種型式:振幅特性在通帶內(nèi)是等波紋的,在阻帶內(nèi)是單調(diào)的切比雪夫I型濾波器;振幅特性在通帶內(nèi)是單調(diào)的,在阻帶內(nèi)是等波紋的切比雪夫II型濾波器。采用何種型式切比雪夫濾波器取決于實際用途11。這種濾波器的幅頻特性模平方為:(10)式中8是決定通帶內(nèi)起伏的等波紋參數(shù),T6)是第一類切比雪夫多項式。N圖5(a)是按式(10)畫出的切比雪夫等波紋濾波器
16、的幅頻特性,圖6(b)是通帶內(nèi)起伏與T(Q)的關(guān)系。N切比雪夫濾波器的濾波特性具有下列特點:所有曲線在Q=Q時通過鼻點,因而把Q定義為切比雪夫濾波器的截止角1+2c頻率?;贛ATLAB的模擬濾波器設(shè)計基于MATLAB的模擬濾波器設(shè)計方案論證第 頁(共34頁)第 #頁(共34頁)第 頁(共34頁)(2)(3)(4)在通帶內(nèi)丨Q/Q|1,特性呈單調(diào)下降,下降速度為20NdB/dec。N為奇數(shù),H(jO)=l;N為偶數(shù),H(jO)=。通帶內(nèi)誤差分布是均勻的,aJ1+2實際上這種逼近稱為最佳一致逼近。由于濾波器通帶內(nèi)有起伏,因而使通帶內(nèi)的相頻特性也有相應(yīng)的起伏波動。即相位是非線性的,這給信號傳輸時帶
17、來線性畸變,所以在要求群時延為常數(shù)時不宜采用這種濾波器。ChbbyshevI型ChbbyshevI型阻帶內(nèi)是平滑的,而通帶具有等波紋起伏特性13。MATLAB中設(shè)計巴特沃斯模擬濾波器的函數(shù):cheb1ord功能:用于計算切比雪夫I型模擬濾波器的階數(shù)n格式:n,Wn=cheb1ord(wp,ws,Rp,Rs,s)cheby1功能:確定階數(shù)為n的切比雪夫I型模擬濾波器的分子、分母多項式格式:b,a=cheby1(n,Rp,Wn,s);freqs功能:求幅頻響應(yīng)和相頻響應(yīng)格式:H,f=freqs(b,a,w)ChbbyshevII型ChbbyshevII型通帶內(nèi)是平滑的,而阻帶具有等波紋起伏特性。因
18、此,在階數(shù)N的計算公式上是相同的,而-3dB截止頻率則不同。cMATLAB中設(shè)計巴特沃斯模擬濾波器的函數(shù):cheb2ord功能:用于計算切比雪夫II型模擬濾波器的階數(shù)n格式:n,Wn=cheb2ord(wp,ws,Rp,Rs,s)cheby2功能:確定階數(shù)為n的切比雪夫II型模擬濾波器的分子、分母多項式格式:b,a=cheby2(n,Rp,Wn,s);freqs功能:求幅頻響應(yīng)和相頻響應(yīng)格式:H,f=freqs(b,a,w)2.3運行環(huán)境及實現(xiàn)技術(shù)在Matlab中,圖形用戶界面(graphicaluserinterface,GUI)(如圖6所示)是Matlab中一個專用于GUI程序設(shè)計的向?qū)гO(shè)
19、計器,而GUI是由各種圖形對象,如圖形窗口、圖軸、菜單、按鈕、文本框等構(gòu)建的用戶界面,是人機交互的有效工具和方法。通過GUIDE可以很方便地設(shè)計出各種符合要求的圖形用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化,比如實現(xiàn)計算、繪圖等。GUIDE將用戶保存設(shè)計好的圖形用戶界面保存在一個FIG資源文件中,同時自動生成包含圖形用戶界面初始化和組件界面布局控制代碼的M文件,這個M文件為實現(xiàn)回調(diào)函數(shù)的編寫提供了一個參考框架。FIG文件是一個二進制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創(chuàng)建圖形窗口時保存的屬性。該文件最主要的功能是對象句柄的保
20、存。M文件包含GUI設(shè)計、控制函數(shù)及控件的回調(diào)函數(shù),主要用來控制GUI展開時的各種特征。該文件基本上可以分為GUI初始化和回調(diào)函數(shù)兩個部分,控件的回調(diào)函數(shù)可根據(jù)用戶與GUI的具體交互行為分別調(diào)用16。本設(shè)計主要是先設(shè)計MATLAB中GUI界面設(shè)計。進行設(shè)計時,首先單擊面板左邊所需的控件,然后在右邊的圖形界面編輯區(qū)中再次單擊某一恰當(dāng)位置,這時將在該位上為圖形界面添加相應(yīng)的控件?!盀V波器設(shè)計軟件”圖形界面(如圖7所示)的完成后,點擊guide界面上方的Run按鈕,會生成一個FIG文件,一個M文件,其中FIG文件就是界面的圖形,M文件是界面的回調(diào)函數(shù),在M文件里每個控件的回調(diào)函數(shù)都已經(jīng)自動生成,要做
21、的工作就是在文件框架下定義某些特殊要求的狀態(tài)并補充完整回調(diào)函數(shù),使單擊控件時激活回調(diào)程序完成一定的功能。方案論證方案論證第 #頁(共34頁)第 頁(共34頁)圖6GUI設(shè)計的圖形界面圖7“濾波器設(shè)計軟件”GUI界面設(shè)計基于MATLAB的模擬濾波器設(shè)計設(shè)計論述第 頁(共34頁)第 頁(共34頁)濾波器設(shè)計軟件”回調(diào)函數(shù)編寫設(shè)計總框圖如圖8所示:圖8設(shè)計總框圖設(shè)計論述3.1設(shè)計綜合要求要實現(xiàn)的功能:(1)能夠?qū)崿F(xiàn)人機交互,便于操作;能夠選擇巴特沃斯(Butterworth)、切比雪夫I(ChebyshevI)濾波器、切比雪夫II(ChebyshevII)濾波器;在下拉菜單FilterType中選擇
22、濾波器類型,能夠選擇Lowpass、Highpass、Bandpass、Bandstop四種類型;在設(shè)計濾波器階數(shù)時,可選擇自定義階數(shù)和利用最小階數(shù)設(shè)計濾波器;在參數(shù)輸入中,可輸入截止頻率Fc、濾波器通帶臨界頻率(Fpl、Fp2)、濾波器阻帶臨界頻率(Fst1、Fst2)、通帶內(nèi)的最大衰減Rp、通帶內(nèi)的最小衰減Rs;當(dāng)用戶選擇(或輸入)濾波器的參數(shù)時,運行后能夠及時顯示設(shè)計好的濾波器的幅頻特性和相頻特性圖?!盀V波器設(shè)計”軟件的總體設(shè)計GUI界面設(shè)計總框圖如圖9所示。圖9GUI界面設(shè)計總框圖“濾波器設(shè)計”軟件的詳細(xì)設(shè)計3.3.1GUI各控件簡介用戶欲啟動GUI操作,可以在命令窗口中輸入guide
23、命令。當(dāng)用戶在guide中打開一個GUI時,該GUI將顯示在Layout編輯器中,Layout編輯器是所有g(shù)uide工具的控制面板。在布局編輯器件中可以很方便地改變GUI中網(wǎng)格窗口的大小,只需要單擊網(wǎng)格區(qū)域的右下角,當(dāng)鼠標(biāo)變?yōu)榧^形式時,拖動鼠標(biāo),即可適時改變窗口大小。用戶可以使用三種方法打開屬性查看器:(1)在布局窗口中雙擊某個控件;(2)在View菜單中選擇PropertyInspector選項;(3)右擊某個控件并從彈出的快捷菜單中選擇InspectorProperties選項。當(dāng)運行GUI時,M文件創(chuàng)建一個包含所有GUI對象(如控件,菜單和坐標(biāo)軸)的句柄結(jié)構(gòu),句柄結(jié)構(gòu)作為每一個響應(yīng)的輸
24、入來處理。用戶使用句柄結(jié)構(gòu)可以實現(xiàn)如下操作:(1)在各響應(yīng)之間實現(xiàn)數(shù)據(jù)共享;(2)訪問GUI數(shù)據(jù)。假如用戶欲取得變量X的數(shù)據(jù)可以想將句柄結(jié)構(gòu)的一個域設(shè)為X,然后在使用guidata函數(shù)保存該句柄,如下所示:然后在使用guidata函數(shù)保存該句柄,如下所示:handlescurrent_data=X;guidata(hObject,handle);用戶可以在其他任何響應(yīng)中重新得到該變量值,使用的操作如下:X=handlescurrent_data;用戶還可以利用句柄獲取GUI控件的任意數(shù)據(jù)。用戶想要使用GUI中的另一個控件(比如一個按鈕)來在當(dāng)前所選的某個菜單項實現(xiàn)某個操作,那么用戶可以在該按鈕
25、的響應(yīng)輸入如下命令:all_choices=get(handles.my_menu,string)current_choice=all_choiceget(handles.my_menu,Value)用戶可以給GUI的M文件的如下部分增加程序代碼:(1)打開函數(shù)(openingfunction),該函數(shù)可在GUI可見之前實施操作。輸出函數(shù)(outputfunction),在必要的時候向命令行輸出數(shù)據(jù)。(3)響應(yīng)(callbacks),在用戶激活GUI的響應(yīng)控件時實施操作。打開函數(shù)包含有在GUI可見之前進行操作的代碼,用戶可以在打開函數(shù)中訪問GUI的所有控件,因為所有GUI中的對象都在調(diào)用打開函
26、數(shù)之前就已經(jīng)創(chuàng)建。如果用戶需要在訪問GUI之前實現(xiàn)某些操作(如創(chuàng)建數(shù)據(jù)或圖形),那么可以通過在打開函數(shù)中添加代碼來實現(xiàn)【17。如:對于一個文件名為my_gui的GUI來說,它的打開函數(shù)的定義語句如下:functionmy_gui_OpeningFcn(hObject,eventdata,handles,varargin)輸出函數(shù)將輸出結(jié)果返回給命令行。這一點在用戶需要將某個變量傳遞給另一個GUI時尤其使用。GUI在輸出函數(shù)中生成如下代碼:%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=my_gui_Ou
27、tputFcn(hObjcet,eventdata,handles)%GetdefaultcommandlineoutputfromhandlesstructureVarargout1=handles.output;按鈕(RadioButtons)的響應(yīng):在圖形界面中添加該控件之后,該控件將在指定位置添加按鈕,按鈕的標(biāo)識字符由屬性String控制,而返回值由Value值控制。在GUI的M文件中使用如下形式的代碼來編制Radio按鈕的響應(yīng)程序:if(get(hObject,Value)=get(hObject,Max)%thenradiobuttonisselected-takeapproria
28、teactionelse%radiobuttonisnotselected-takeapproriateactionend“復(fù)選框”控件(CheckBoxes)的響應(yīng):在圖形界面中添加該控件之后,該控件提供復(fù)選功能,將顯示文本字符串及選擇框。在GUI的M文件中使用如下形式的代碼來編制“復(fù)選框”控件的響應(yīng)程序:functioncheckbox1_Callback(hObject,eventdata,handles)if(get(hObject,Value)=get(hObject,Max)%thencheckboxischecked-takeapproriateactionelse%checkb
29、oxisnotchecked-takeapproriateactionend“文本框”控件(EditText)的響應(yīng):在圖形界面中添加該控件之后,該控件的屬性相當(dāng)于其他語言中的文本框?qū)傩?,允許用戶動態(tài)地編輯或是輸入文本字符串。如果需要獲取用戶在文本框中輸入的字符串,可以在響應(yīng)程序中輸入如下代碼:functionedittext1_Callback(hObject,eventdata,handles)user_string=get(hObject,string);%proceedwithcallback“濾波器設(shè)計”軟件界面的設(shè)計1、Filterdesign下拉菜單在下拉菜單Filterdesi
30、gn中選擇Butterworth、ChebyshevI等濾波器,程序和效果圖(圖10)如下:functionFilterDesign_Callback(hObject,eventdata,handles)AutoRun_value=get(handles.AutoRun,Value);if(AutoRun_value=1)AutoChoose(handles)end設(shè)計論述設(shè)計論述基于MATLAB的模擬濾波器設(shè)計第 #頁(共34頁)第 頁(共34頁)第 頁(共34頁)FilterChooseFilterDesignButterworthFilterTypeButterworthCheybysh
31、evlDisplayTypeCheybyshev2Linear圖10Filterdesign下拉菜單選項2、FilterType下拉菜單在下拉菜單FilterType中選擇濾波器類型選擇低通或者高通濾波器時,隱藏相應(yīng)的帶通和帶阻的第二個臨界頻率,使其頻率參數(shù)不能輸入,程序和效果圖(圖11、圖12)如下:functionFilterType_Callback(hObject,eventdata,handles)%讀取此時設(shè)計的濾波器的類型,“Lowpass、Highpass、Bandpass、BandstopFilterType_value=get(handles.FilterType,Valu
32、e);%當(dāng)選擇Lowpass或者Highpass,屏蔽相應(yīng)的臨界頻率的顯示if(FilterType_value=1)|(FilterType_value=2)set(handles.Fp2,visible,off);set(handles.Fs2,visible,off);set(handles.text17,visible,off);set(handles.text19,visible,off);set(handles.text6,visible,off);set(handles.text10,visible,off);else%當(dāng)選擇Bandpass或者Bandstop,使相應(yīng)的臨界頻率
33、的顯示,使參數(shù)能夠輸入if(FilterType_value=3)|(FilterType_value=4)set(handles.Fp2,visible,on);set(handles.Fs2,visible,on);set(handles.text17,visible,on);set(handles.text19,visible,on);set(handles.text6,visible,on);set(handles.text10,visible,on);endendParametersInpi.jtFrequ已ncySpecificationsParametersInputFreque
34、ncySpecifications圖11低通、高通濾波器頻率參數(shù)輸入3、MinOrder和CustomOrde按鈕圖12帶通、帶阻濾波器頻率參數(shù)輸入在設(shè)計濾波器階數(shù)時,可選擇自定義階數(shù)和利用最小階數(shù)設(shè)計濾波器(1)按鈕MinOrder選擇使用最小階數(shù)設(shè)置時,屏蔽自定義階數(shù)的輸入,如圖13functionMinOrder_Callback(hObject,eventdata,handles)MinOrder_value=get(handles.MinOrder,Value);if(MinOrder_value=1)set(handles.Order,visible,off);elseset(ha
35、ndles.Order,visible,on);end(2)按鈕CustomOrder選擇自定義階數(shù)時,顯示階數(shù)輸入框,如圖14functionCustomOrderButton_Callback(hObject,eventdata,handles)CustomOrderButton_value=get(handles.CustomOrderButton,Value);if(CustomOrderButton_value=0)set(handles.Order,visible,off);elseset(handles.Order,visible,on);end(3)其中涉及Run控件中的程序如
36、下:顯示最小階數(shù)運行結(jié)果及分析運行結(jié)果及分析基于MATLAB的模擬濾波器設(shè)計第l9頁(共34頁)第l9頁(共34頁)第 頁(共34頁)set(handles.MinOrderDisplay,string,num2str(n)當(dāng)選擇了自定義階數(shù)時,讀取自定義階數(shù)if(MinOrder_value=0)n=str2double(get(handles.Order,String)end圖13使用最小階數(shù)設(shè)計Filter圖14使用自定義階數(shù)設(shè)計Filter4、Fp1、Fp2、Fst1、Fst2文本編輯框functionFp1_Callback(hObject,eventdata,handles)Fp1
37、_value=str2double(get(handles.Fp1,String);Fp2、Fst1、Fst2的回調(diào)函數(shù)同理編程5、Run按鈕根據(jù)輸入的參數(shù)顯示設(shè)計的濾波器的幅頻特性和相頻特性圖,其程序如下functionRun_Callback(hObject,eventdata,handles)%點擊Run立即運行AutoChoose,m文件,實現(xiàn)濾波器設(shè)計程序AutoChoose(handles)6、AutoRun按鈕當(dāng)選擇了AutoRun按鈕時,能夠根據(jù)所選的IIR的濾波器(Butterworth、ChebyshevI等)、FIR的窗口選項、圖形顯示類型(Linear、Logarith
38、mic)立即顯示濾波器的幅頻特性和相頻特性圖?;卣{(diào)函數(shù)程序如下:functionFilterDesign_Callback(hObject,eventdata,handles)AutoRun_value=get(handles.AutoRun,Value);%當(dāng)選擇了Filter(Butterworth、ChebyshevI等)中一種Filter運行AutoChoose,m文件if(AutoRun_value=1)AutoChoose(handles)end7、Quit按鈕退出濾波器設(shè)計窗口,其程序如下:functionQuit_Callback(hObject,eventdata,handl
39、es)%點擊Quti按鈕退出Close8、AutoChoose.m程序的編寫(見附錄2)運行結(jié)果及分析4.1軟件運行結(jié)果以設(shè)計模擬低通濾波器為例,利用Butterworth濾波器進行設(shè)計其3dB截止頻率Fc=1000Hz,F(xiàn)p1=200Hz,F(xiàn)s1=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如圖15、16所示:r-PFdkEHrrgT1圖15Butterworth低通濾波器(n=5)圖16Butterworth低通濾波器(n=7)模擬低通濾波器:利用ChebyshevI濾波器進行設(shè)計Fpl=200Hz,Fsl=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如圖17、18
40、所示:運行結(jié)果及分析運行結(jié)果及分析基于MATLAB的模擬濾波器設(shè)計第 #頁(共34頁)第 頁(共34頁)第 頁(共34頁)圖17ChebyshevI低通濾波器(n=5)圖18ChebyshevI低通濾波器(n=7)模擬高通濾波器:用Butterworth濾波器進行設(shè)計Fc=2000Hz,F(xiàn)p1=800HzFsl=500Hz,Rp=3dB,Rs=30dB,n=5,如圖19所示:圖19Butterworth高通濾波器模擬帶通濾波器:用ChebyshevI濾波器進行設(shè)計Fp1=400Hz,Fp2=800Hz,Fs1=200Hz,Fs2=1000Hz,Rp=3dB,Rs=30dB,n=5,如圖20所示
41、:圖20ChebyshevI帶通濾波器模擬帶阻濾波器:ChebyshevII濾波器進行設(shè)計Fpl=400Hz,Fp2=1200Hz,Fsl=600Hz,Fs2=1000Hz,Rp=3dB,Rs=30dB,n=5,如圖21所示:圖21ChebyshevII帶阻濾波器結(jié)束語結(jié)束語基于MATLAB的模擬濾波器設(shè)計第 #頁(共34頁)第 頁(共34頁)第 頁(共34頁)4.2運行結(jié)果分析由運行結(jié)果顯示的幅頻響應(yīng)可看出,切比雪夫濾波器的振幅特性具有這種等波紋特性。它有兩種型式:振幅特性在通帶內(nèi)是等波紋的,在阻帶內(nèi)是單調(diào)的切比雪夫I型濾波器;振幅特性在通帶內(nèi)是單調(diào)的,在阻帶內(nèi)是等波紋的切比雪夫II型濾波器
42、。隨著N的增加,頻帶邊緣下降越陡峭,越接近理想特性。設(shè)計Butterworth濾波器時,先設(shè)計低通濾波器,再通過頻率變換將低通濾波器轉(zhuǎn)換成高通、帶通、帶阻濾波器。由運行結(jié)果顯示的幅頻響應(yīng)可看出Butterworth幅頻特性具有下列特點:(1)最大平坦性。(2)通帶,阻帶下降的單調(diào)性。這種濾波器具有良好的相頻特性。3dB的不變性:隨著N的增加,頻帶邊緣下降越陡峭,越接近理想特性,但不管N是多少,幅頻特性都通過3dB點。結(jié)束語MATLAB以其強大的計算和繪圖功能、大量穩(wěn)定可靠的算法庫、簡潔高效的編程語言,所以利用MATLAB具有較嚴(yán)謹(jǐn)?shù)目茖W(xué)計算和圖形顯示這一優(yōu)點,從而使濾波器設(shè)計結(jié)果顯示的更加直觀
43、,而且對濾波器的精度也有了很大的提高,設(shè)計擴展性好,便于調(diào)節(jié)濾波器的性能。本文首先介紹了模擬濾波器的工作原理及設(shè)計思路。然后重點介紹了模擬濾波器的設(shè)計和仿真,系統(tǒng)研究了模擬濾波器(包括巴特沃斯濾波器和切比雪夫濾波器)的設(shè)計原理和方法。先設(shè)計模擬低通濾波器,再通過頻率變換將模擬低通濾波器轉(zhuǎn)換成模擬高通、帶通、帶阻濾波器。在此基礎(chǔ)上,描述了如何用MATLAB的圖形用戶界面來設(shè)置濾波器的設(shè)計界面及回調(diào)函數(shù)的編寫。利用MATLAB具有較嚴(yán)謹(jǐn)?shù)目茖W(xué)計算和圖形顯示這一優(yōu)點,從而使濾波器設(shè)計結(jié)果顯示的更加直觀,設(shè)計擴展性好,便于調(diào)節(jié)濾波器的性能。最后設(shè)計了一個基于MATLAB平臺的有多個濾波器的類型及參數(shù)可
44、供選擇的圖形用戶界面,通過運行可以顯示出模擬濾波器(包括巴特沃斯濾波器和切比雪夫濾波器)的幅頻響應(yīng)和相頻響應(yīng)曲線。通過本次設(shè)計,學(xué)習(xí)了巴特沃斯模擬濾波器和切比雪夫模擬濾波器設(shè)計的原理與方法,學(xué)習(xí)了MATLAB中GUI界面設(shè)計的操作和回調(diào)函數(shù)的編寫。在今后的學(xué)習(xí)或工作中,我將繼續(xù)努力,爭取能設(shè)計出操作更加方便,運行速度更加快速的方案,來用MATLAB實現(xiàn)各種濾波器的幅頻響應(yīng)和相頻響應(yīng)曲線的顯示。在實際完成論文的過程中,由于受個人的知識、經(jīng)驗和能力的限制,文中肯定難免存在不足之處,懇請大家提出批評和指正。參考文獻金波.信號與系統(tǒng)基礎(chǔ)M.武漢:華中科技大學(xué)出版社,2006:183202劉益成.數(shù)字信
45、號處理M.北京:電子工業(yè)出版社,2004:123176金波.信號與系統(tǒng)實驗教程M.武漢:華中科技大學(xué)出版社,2008:90145施陽.MATLAB語言工具箱M.西安:西北工業(yè)大學(xué)出版社,1998:93178趙紅怡,張常年.數(shù)字信號處理及其MATLAB實現(xiàn)M.北京:化學(xué)工業(yè)出版社,2002:113125王宏.Matlab6.5及其在信號處理中的應(yīng)用M.北京:清華大學(xué)出版社,2004:123175吳大正.信號與線性系統(tǒng)分析M.第3版.北京:高等教育出版社,1998:102152梁紅,梁杰,陳躍斌.信號與系統(tǒng)分析及Matlab實現(xiàn)M.北京:電子工業(yè)出版社,2007:93146陳思.巴特沃斯低通濾波器
46、的簡化快速設(shè)計J.信陽師范學(xué)院學(xué)報(自然科學(xué)版),1997,10(3)甘俊英,胡異丁.基于Matlab的信號與系統(tǒng)實驗指導(dǎo)M.北京:清華大學(xué)出版社,2007:133162樂正友.信號與系統(tǒng)M.北京:清華大學(xué)出版社,2004:14316512胡光銳.信號與系統(tǒng)M.上海:上海交通大學(xué)出版社,1995:83128陳后金.信號與系統(tǒng)M.第二版.北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2005:126147吳大正,高西全.Matlab在電子信息課程中的應(yīng)用M.北京:電子工業(yè)出版社,2002:135178燕慶明信號與系統(tǒng)教程M.北京:高等教育出版社,2004:9313521IC中國電子網(wǎng)Z. HYPER
47、LINK /app/analog/201007/61639.htm /app/analog/201007/61639.htm電子開發(fā)網(wǎng)Z. HYPERLINK /html/EDAjishu/2007/0509/2051.html /html/EDAjishu/2007/0509/2051.html基于MATLAB的模擬濾波器設(shè)計附錄1第 頁(共34頁)第 頁(共34頁)致謝在這次課題研究及論文編寫中,老師給了我大量的建議及指導(dǎo),提供了課題研究的方向,在他的幫助下,課題的疑難問題能夠得以成功解決,課題能夠如期順利地完成。同時,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和實事求是的科研精神在課題研究中時刻影響著我,這將成
48、為我在以后學(xué)習(xí)工作中的榜樣,激勵著我不斷進步。在此特別感謝老師的悉心指導(dǎo)!通過這次畢業(yè)設(shè)計,我除了深入地學(xué)到了更多相關(guān)的專業(yè)知識之外,更重要的是經(jīng)歷了畢業(yè)設(shè)計這個過程,熟悉了一般課題研究的整個過程,為今后更深入的學(xué)習(xí)和工作奠定堅實的基礎(chǔ)。再次對在實驗及論文撰寫過程中,給予我很大幫助的老師和同學(xué)們表示誠摯的謝意。附錄:functionvarargout=Filter(varargin)%FILTERM-fileforFilter.figgui_Singleton=1;gui_State=struct(gui_Name,mfilename,.gui_Singleton,gui_Singleton,
49、.gui_OpeningFcn,Filter_OpeningFcn,.gui_OutputFcn,Filter_OutputFcn,.gui_LayoutFcn,.gui_Callback,);ifnargin&ischar(varargin1)gui_State.gui_Callback=str2func(varargin1);endifnargoutvarargout1:nargout=gui_mainfcn(gui_State,varargin:);elsegui_mainfcn(gui_State,varargin:);end%ExecutesjustbeforeFilterismad
50、evisible.functionFilter_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=Filter_OutputFcn(hObject,eventdata,handles)vara
51、rgout1=handles.output;functionFc_Callback(hObject,eventdata,handles)%Hints:get(hObject,String)returnscontentsofFcastext%str2double(get(hObject,String)returnscontentsofFcasadouble%Executesduringobjectcreation,aftersettingallproperties.functionFc_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsu
52、suallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFp1_Callback(hObject,eventdata,handles)Fp1_value=str2double(get(handles.Fp1,String);%Hints:get(hObject,String)return
53、scontentsofFp1astext%str2double(get(hObject,String)returnscontentsofFp1asadouble%Executesduringobjectcreation,aftersettingallproperties.functionFp1_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColo
54、r),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFp2_Callback(hObject,eventdata,handles)Fp2_value=str2double(get(handles.Fp2,String);%Hints:get(hObject,String)returnscontentsofFp2astext%str2double(get(hObject,String)returnscontentsofFp2asadouble%Executesduringob
55、jectcreation,aftersettingallproperties.functionFp2_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFs1_Callba
56、ck(hObject,eventdata,handles)Fs1_value=str2double(get(handles.Fs1,String);%Hints:get(hObject,String)returnscontentsofFs1astext%str2double(get(hObject,String)returnscontentsofFs1asadouble%Executesduringobjectcreation,aftersettingallproperties.functionFs1_CreateFcn(hObject,eventdata,handles)%Hint:edit
57、controlsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFs2_Callback(hObject,eventdata,handles)Fs2_value=str2double(get(handles.Fs2,String);%Executesduringobjectcr
58、eation,aftersettingallproperties.functionFs2_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionRp_Callback(hObj
59、ect,eventdata,handles)%Hints:get(hObject,String)returnscontentsofRpastext%str2double(get(hObject,String)returnscontentsofRpasadouble%Executesduringobjectcreation,aftersettingallproperties.functionRp_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCan
60、dCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionRs_Callback(hObject,eventdata,handles)%Hints:get(hObject,String)returnscontentsofRsastext%str2double(get(hObject,String)returnscontentsofRsasadouble%Executesdurin
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教務(wù)主任聘任合同樣本
- 單項木工承包合同
- 中外采購與供應(yīng)合同范本
- 專業(yè)水處理設(shè)備維護合同細(xì)則
- 三人合伙經(jīng)營合同范本
- 不孕不育治療服務(wù)合同范文
- 三人合作經(jīng)營合同協(xié)議書范文
- 上海股權(quán)轉(zhuǎn)讓合同樣本
- 專利使用權(quán)轉(zhuǎn)讓合同書
- 上海市化妝品品牌授權(quán)經(jīng)營合同
- 農(nóng)產(chǎn)品貯運與加工考試題(附答案)
- 學(xué)校財務(wù)年終工作總結(jié)4
- 2025年人民教育出版社有限公司招聘筆試參考題庫含答案解析
- 康復(fù)醫(yī)學(xué)治療技術(shù)(士)復(fù)習(xí)題及答案
- 《血管性血友病》課件
- 2025年汽車加氣站作業(yè)人員安全全國考試題庫(含答案)
- 2024年司法考試完整真題及答案
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 2024-2025學(xué)年人教版七年級數(shù)學(xué)上冊期末達標(biāo)測試卷(含答案)
- 2024年安全員-C證考試題庫及答案(1000題)
- 網(wǎng)絡(luò)反詐知識競賽參考題庫100題(含答案)
評論
0/150
提交評論