基于MATLAB GUI的濾波器設計軟件設計

上傳人:少*** 文檔編號:65221318 上傳時間:2022-03-23 格式:DOC 頁數(shù):49 大小:1.62MB
收藏 版權(quán)申訴 舉報 下載
基于MATLAB GUI的濾波器設計軟件設計_第1頁
第1頁 / 共49頁
基于MATLAB GUI的濾波器設計軟件設計_第2頁
第2頁 / 共49頁
基于MATLAB GUI的濾波器設計軟件設計_第3頁
第3頁 / 共49頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于MATLAB GUI的濾波器設計軟件設計》由會員分享,可在線閱讀,更多相關(guān)《基于MATLAB GUI的濾波器設計軟件設計(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、數(shù)字濾波器的設計與仿真 【摘 要】 面對龐雜繁多的原始信號, 如何提取所需信號、抑制不需要的信號這就需要使用濾波器。濾波器的作用主要是選擇所需頻帶的信號內(nèi)容而抑制不需要的其他頻帶的信號內(nèi)容。數(shù)字濾波器因其精度高、可靠性好、靈活性大等優(yōu)點, 在語音信號處理、信號頻譜估計、信號去噪、無線通信中的數(shù)字變頻以及圖像處理等工程實際應用中都很廣泛。根據(jù)其沖擊響應函數(shù)的時域特性可將數(shù)字濾波器分為IIR(有限長沖擊響應)和FIR(無限長沖擊響應)。作為強大的計算軟件, MATLAB提供了編寫圖形用戶界面的功能。所謂圖形用戶界面, 簡稱為GUI, 是由各種圖形對象, 如圖形窗口菜單按鈕、文本框等構(gòu)建的用

2、戶界面。 MATALB 可以創(chuàng)建圖形用戶界面GUI ( GraphicalUser Interface) ,它是用戶和計算機之間交流的工具。MATLAB 將所有GUl 支持的用戶控件都集成在這個環(huán)境中并提供界面外觀、屬性和行為響應方式的設置方法,隨著版本的提高,這種能力還會不斷加強。而且具有強大的繪圖功能,可以輕松的獲得更高質(zhì)量的曲線圖。 關(guān)鍵詞:MATLAB;GUI ;IIR;濾波器 數(shù)字濾波器的設計與仿真 Abstract Facing the huge range of original signal, how to extract the required sign

3、al and suppress unwanted signals which need to use the filter. The role of filters is to select the desired signal frequency band and suppress the contents of the other bands do not need the contents of the signal. Digital filters because of their high accuracy, reliability, and flexibility advantag

4、es, in the speech signal processing, signal spectrum estimation, signal de-noising, the number of wireless communications in frequency as well as image processing and other projects are wide practical application. Impulse response functions in accordance with its time-domain characteristics can be d

5、ivided into digital filter IIR (finite impulse response) and FIR (infinite impulse response). As a powerful software, MATLAB provides a graphical user interface to prepare the function. The so-called graphical user interface, referred to as the GUI, by a variety of graphic object, such as the graphi

6、cs window menu button, text box, such as building a user interface.    MATALB can create a graphical user interface GUI (GraphicalUser Interface), it is between user and computer tools. MATLAB support for all users GUl controls are integrated in this environment and provide the interface appearanc

7、e and behavior in response to the way attribute settings methods, with the improved version, this capability will continue to strengthen. And a powerful graphics capabilities, can easily access to higher-quality curve. Keywords: MATLAB;GUI;IIR;filter MATLAB課程設計報告 基于MA

8、TLAB GUI的“濾波器設計軟件”設計 目 錄 1 設計任務 1 2 MATLAB GUI的簡介 2 3 濾波器設計原理 3 3.1濾波器概述 3 3.2 IIR數(shù)字濾波器 4 3.2.1 IIR數(shù)字濾波器設計原理 4 3.2.2 IIR濾波器設計思想 5 3.2.3 IIR濾波器設計編程實現(xiàn) 6 4 基于Matlab GUI的數(shù)字濾波器設計思路及實現(xiàn) 12 4. 1 GUI界面設計概述 12 4.2 “濾波器設計軟件”設計所實現(xiàn)任務 14 4.3 基于Matlab GUI的數(shù)字濾波器設計實現(xiàn) 1

9、6 4.3.1 “濾波器設計軟件”GUI界面設計 16 4.3.2 “濾波器設計軟件”回調(diào)函數(shù)編寫 17 4.3.3AutoChoose.m程序的編寫 22 4.4 運行和結(jié)果顯示 28 5 設計總結(jié)和心得 33 5.1 設計總結(jié) 33 5.2 設計心得 34 Abstract 35 參考文獻 36 1設計任務 1 設計目的 1.鞏固所學習過的關(guān)于數(shù)字信號處理的濾波器的設計 2.學習使用MATLAB GUI設計工具應用平面 2 設計要求 要求:“濾波器設計軟件”設計 1、要有人機交互界面。 2、濾波器設計的類型、參數(shù)均有多個值可供選擇。 3、當用戶選擇

10、(或輸入)濾波器的參數(shù)時,能夠及時顯示設計好的濾波器的頻譜。 4、該軟件可設計FIR或IIR型濾波器至少一種。 2 MATLAB GUI的簡介   MATLAB 是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。   MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方

11、面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領(lǐng)域。   MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完相同的事情簡捷得多,并且mathwork也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++ ,JAVA的支持??梢灾苯诱{(diào)用,用戶也可以將自己編寫的實用程序?qū)氲組ATLAB函數(shù)庫中方

12、便自己以后調(diào)用。 MATALB 可以創(chuàng)建圖形用戶界面GUI ( GraphicalUser Interface) ,它是用戶和計算機之間交流的工具。MATLAB 將所有GUl 支持的用戶控件都集成在這個 環(huán)境中并提供界面外觀、屬性和行為響應方式的設置方法,隨著版本的提高,這種能力還會不斷加強。而且具有強大的繪圖功能,可以輕松的獲得更高質(zhì)量的曲線圖。 3 濾波器設計原理 3.1濾波器概述 隨著信息時代和數(shù)字世界的到來,數(shù)字信號處理已成為當今一門極其重要的學科和技術(shù)領(lǐng)域。數(shù)字信號處理在通信、語音、圖像,自動控制、雷達、軍事、航空航天、醫(yī)療和家用電

13、器等眾多領(lǐng)域得到了廣泛的應用。在數(shù)字信號處理中,數(shù)字濾波器占有極其重要的地位?,F(xiàn)代數(shù)字濾波器可以用軟件或設計專用的數(shù)字處理硬件兩種方式來實現(xiàn),用軟件來實現(xiàn)數(shù)字濾波器優(yōu)點是隨著濾波器參數(shù)的改變,很容易改變?yōu)V波器的性能。根據(jù)數(shù)字濾波器單脈沖響應的時域特性可將數(shù)字濾波器分為兩種, 即IIR (Infinite Impulse Response)無限長脈沖響應數(shù)字濾波器和FIR (Finite Impulse Response)有限長脈沖響應數(shù)字濾波器。從功能上分類, 可分為低通、高通、帶通、帶阻濾波器。 3.2 IIR

14、數(shù)字濾波器 3.2.1 IIR數(shù)字濾波器設計原理 濾波器的設計質(zhì)上是尋找一個既能物理實現(xiàn),又能滿足給定頻率特性指標要求的系統(tǒng)傳輸函數(shù)。IIR濾波器一般采用遞歸型的結(jié)構(gòu),系統(tǒng)的輸入與輸出服從N階差分方程: 相應的傳輸函數(shù)為: 設計IIR數(shù)字濾波器就是要確定傳輸函數(shù)中的系數(shù)、或零極點增益、、A,使濾波器的頻率特性滿足給定的性能指標要求。設計原理主要包括兩個方面:一是根據(jù)設計指標,先設計出相應的模擬濾波器再通過脈沖響應不變法或雙線性變換法轉(zhuǎn)換成對應的數(shù)字濾波器;二是選擇一種優(yōu)準則,如最小均方準則,再在 , 先最誤差此準則下求出濾波器傳輸函數(shù)的系數(shù)。根據(jù)設計理論,在MA

15、TLAB環(huán)境下設計IIR數(shù)字濾波器主要有四種方法:一是典型設計法;二是完全設計法;三是最優(yōu)設計法;四是工具設計法。由于完全設計法程序簡單,我們在這里利用完全設計法設計濾波器。 2、所謂數(shù)字濾波器,是指輸入,輸出均為數(shù)字信號,通過一定運算關(guān)系改變輸入信號所含 頻率成分的相對比例或者濾除某些頻率成分的硬件。 實質(zhì)上就是一個由有限精度算法實現(xiàn)的線性時不變離散系統(tǒng)。 它的基本工作原理是利用離散系統(tǒng)的特性對系統(tǒng)輸入信號進行加工和變換, 改變輸入序列的頻譜或信號波形, 讓有用的頻率分量通過, 抑制無用的信號分量輸出,根據(jù)其頻率特性同樣可以分為低通,高通,帶通,帶阻。如果要處理的信號是模擬信號,就可以通

16、過 A/D 或者 D/A 轉(zhuǎn)換,在信號形式上進行匹配轉(zhuǎn)換,同樣可以使用數(shù)字濾波器對模擬信號進行濾波[1]。 數(shù)字濾波器濾波的數(shù)學表達式: (1-1) 如果濾波器的輸入輸出信號都是離散信號,那么該濾波器的脈沖響應也一定是離散信 號,這樣的濾波器就成為了數(shù)字濾波器。其頻域特性為: (1-2) 其中分別是數(shù)字濾波器的輸出序列和輸入序列的頻域響應,是數(shù)字濾波器的頻域響應。 可以看見按照輸入信號的頻譜特點和處理信號的目的適當選擇濾波 器的頻域響應, 使得濾波后的輸出信號滿足設計性能要求, 就是濾波器的濾波

17、原理。 1.1 IIR數(shù)字濾波器傳輸特性 IIR 數(shù)字濾波器的系統(tǒng)函數(shù)可以表示為: (1-3) 式中H(Z)稱為N階 IIR 濾波器函數(shù),它是一種遞歸型的濾波器。 1.2 數(shù)字濾波器的技術(shù)要求 我們通常設計的數(shù)字濾波器一般屬于選頻濾波器, 我們的目的是要設計一個因果可實現(xiàn) 的濾波器,另外買也要考慮到成本和復雜性問題,因此實用中通帶和阻帶都允許一定的誤差 容限,即通帶不一定是完全水平的,阻帶也不可能完全衰減到零[2]。而且,通帶和阻帶之間 還要設置一定帶寬的過渡帶。如下圖表示低通濾波器的技術(shù)要求: 圖 1.2.1 低

18、通濾波器特性 Figure1.2.1 low pass filter's characteristic 圖中,分別表示通帶截止頻率和阻帶截止頻率,通帶頻率范圍為0≤ w≤ p w , 通帶中要求,阻帶截止頻率范圍 ,再阻帶中要求,從到 稱為過渡帶,在這個頻帶內(nèi),幅度響應從通帶平滑的下落到阻帶。 2 MATLAB簡介 MATLAB 是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括 MATLAB 和SIMULINK兩大部分。 MATLAB 是矩陣實驗室 (Matrix Laboratory

19、) 的簡稱, 和Mathematica、Maple 并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB 可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領(lǐng)域。 MATLAB 對許多專門的領(lǐng)域都開發(fā)了功能強大的模塊集和工具箱。一般來說,它們都是由特定領(lǐng)域的專家開發(fā)的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經(jīng)把工具箱延伸到了科學研究和工程應用的諸多領(lǐng)域,諸如數(shù)據(jù)采集、數(shù)據(jù)庫接口、概率統(tǒng)

20、計、樣條擬合、優(yōu)化算法、偏微分方程求解、神經(jīng)網(wǎng)絡、小波分析、信號處理、圖像處理、系統(tǒng)辨識、控制系統(tǒng)設計、LMI 控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿真、嵌入式系統(tǒng)開發(fā)、定點仿真、DSP 與通訊、電力系統(tǒng)仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。本文將利用其中的信號處理工具箱來設計IIR 數(shù)字濾波器。 3 IIR數(shù)字濾波器的幾種設計方法 3.1 程序設計法 IIR 數(shù)字濾波器設計的一般方法是先設計低通模擬濾波器,進行頻率變換,將其轉(zhuǎn)換為相應的(高通,帶通等)模擬濾波器,在轉(zhuǎn)換為高通,帶通或帶阻數(shù)字濾波器,由

21、模擬濾波器設計數(shù)字濾波器的方法。這是因為模擬濾波器設計方法已經(jīng)很成熟,它不僅有完整的設計公式,還有完善的圖表供查閱,另外,還有一些典型的濾波器類型可供我們使用。對設計的全過程的各個步驟,MATLAB 都提供了了相應的工具箱函數(shù),使 IIR 數(shù)字濾波器設計變得非常簡單。 3.1.1設計方法 程序設計法[3]是基于MATLAB 中相應的工具箱函數(shù)來實現(xiàn)的, IIR 數(shù)字濾波器的設計步驟可由圖3.1.1所示的流程圖來表示。 這個圖也清晰的表示了5類 20個信號處理工具箱函數(shù)的作用, 圖 3.1.1 濾波器設計流程 Figure3.1.1 flow of filter’s

22、 design 在 MATLAB 中,模擬濾波器的系統(tǒng)函數(shù): (3-1) 數(shù)字濾波器的系統(tǒng)函數(shù): (3-2) 在實際工程中,需要的設計結(jié)果是系數(shù)向量B 和 A,用B 和A 來綜合濾波器的硬件實現(xiàn)結(jié)構(gòu)或軟件運算結(jié)構(gòu),為了直觀的看出設計結(jié)果,本文的實例均以濾波器幅頻響應曲線作為設計結(jié)果輸出。如果需要濾波器系數(shù),在運行程序后,只要在 MATLAB命令窗口鍵入系數(shù)向量名,則相應的系數(shù)就顯示出來了。 3.1.2程序設計及分析 1) 設計高通和帶通BUTTERWORTH數(shù)字濾波器 我們給出四階歸一化BUTTERWOTH模擬濾波器的系統(tǒng)函數(shù) (3-3) 用雙線性變換法從 Ha(s)

23、設計四階帶通 BUTTERWOTH 數(shù)字濾波器,并圖示,設計采樣周期T=1s,指標: 本例主要涉及三個問題: ①由數(shù)字濾波器指標求相應的模擬濾波器指標; ②模擬濾波器頻率變換(因為已給定階數(shù)和模擬濾波器的歸一化低通原型) ; ③由相應的模擬濾波器到數(shù)字濾波器(雙線性變換法) 。 由于調(diào)用 bilinear 函數(shù)將模擬濾波器轉(zhuǎn)換成數(shù)字濾波器[4] 非常容易,并且有效抑制頻率失真的問題,本例給定了數(shù)字濾波器指標,所以首先要設計處與該指標相應的四階BUTTERWORTH 模擬濾波器,然后調(diào)用 bilinear 函數(shù)將其轉(zhuǎn)換為數(shù)字濾波器即可,應當特別注意的是,對于雙線性變換法,由

24、數(shù)字邊界頻率求相應的模擬邊界頻率時,一定要考慮預畸變矯正。只有這樣,最終設計結(jié)果才能滿足所給指標。 設計高通數(shù)字濾波器時,相應的模擬高通濾波器3dB 截止頻率為 (3-4) 設計帶通數(shù)字濾波器時,相應的模擬濾波器的3dB截止頻率為 (3-5) 調(diào)用 MATLAB頻率變換函數(shù)lp2lp,lp2hp,lp2bp,分別實現(xiàn)從模擬低通到模擬低通,高通帶通,帶阻的頻率變換。[Bt,At]=lp2hp(B,A,wc) ,將系數(shù)向量為B 和A的模擬濾波器歸一化低通原型(3Db)截止頻頻為1rad/s) ,變

25、換成3dB截止頻率為wc的高通模擬濾波器,返回高通模擬濾波器系數(shù)向量Bt和At。[Bt,At]=lp2bp(B,A,wo,Bw)將系數(shù)向量為 B 和 A 的模擬濾波器歸一化低通原型變換成中心頻率為 wo,帶寬為 Bw 的帶通模擬濾波器,返回帶通模擬濾波器的系數(shù)向量 Bt 和At。其中,wo= uc lc? ? , lc uc w B ? ? ? = ,由以上原理我們來編寫如下程 %用雙線性變換法設計數(shù)字高通和帶通濾波器 clear; close all T=1;wch=pi/2; %T:采樣間隔,wch:數(shù)字高通3dB 截止 Wlc =

26、0.35*pi; wuc=0.65*pi; %wlc,wuc;數(shù)字高通 3dB 截止頻率 B=1;A=[1,2.6131,3.4142,2.6131,1]; [h,w]=freqs(B,A,512); %求原歸一化模擬濾波器的頻率響應 subplot(3,2,1);plot(w,20*log10(abs(h))); %畫模擬濾波器幅頻特性 grid;axis([0,10,-90,0]) xlabel('w/ '); title('模擬低通幅度(dB)') %(1)設計高通 omegach=2*tan(wch/

27、2)/T; %預畸變求模擬高通 3dB 截止頻率 [Bhs,Ahs]=lp2hp(B,A,omegach); %模擬域低通轉(zhuǎn)換為高通系數(shù) [Bhz,Ahz]=bilinear(Bhs,Ahs,1/T); %模擬轉(zhuǎn)換位數(shù)字高通系數(shù)變量 [h,w]=freqz(Bhz,Ahs,512); %求畫出數(shù)字濾波器幅頻特性 Subplot(3,2,3);plot(w/pi,20*log10(abs(h))); grid;axis([0,1,-150,0]) xlabel('w/ ')

28、;title ('數(shù)字濾波器幅度(dB)')%(2)設計帶通 omegalc=2*tan(wlc/2)/T; %預畸變求濾波器通帶低端截止頻率 omegauc=2*tan(wuc/2)/T; %預畸變求濾波器通帶高端截止頻率 wo=sqrt(omegalc*omegauc);Bw=omegauc-omegalc; [Bbs,Abs]=lp2bp(B,A,wo,Bw); %模擬域低通轉(zhuǎn)換為帶通系數(shù) [Bbz,Abz]=bilinear(Bbs,Abs,1/T); %模擬轉(zhuǎn)換為數(shù)字帶

29、通系數(shù)變量 [h,w]=freqz(Bbz,Abz,512); %求并畫出數(shù)字濾波器幅頻特性 subplot(3,2,4);plot(w/pi,20*log10(abs(h))); grid;axis([0,1,-150,0]) xlabel('w/pi ');title ('數(shù)字濾波器幅度(dB)') 程序運行結(jié)果如圖3.1.2, 3.1.3 ,3.1.4所示分別表示模擬低通幅度,數(shù)字高通幅度和數(shù)字帶通幅度特性。 、 圖 3.

30、1.2 模擬低通幅度 Figure 3.1.2 analog lowpass filter’s range 圖 3.1.3 數(shù)字高通幅度 Figure3.1.3 digital high pass filter’s range 圖 3.1.4 數(shù)字帶通幅度 Figure3.1.4 digital band pass filter’s range 3.1.3 結(jié)論 從以上一系列函數(shù)設計中,我們由MATLAB 函數(shù)來設計濾波器是次優(yōu)化的,它的設計步驟為:1 先選擇設計方法;2 猜測濾波器參數(shù),后進行設計;3 觀察

31、濾波器的響應,判斷其是否符合要求;4反復這一嘗試與失敗過程直到符合要求。這種設計方法,很顯然在設計要求上進行權(quán)衡分析是不是很有效,它更多時候是憑借設計者的經(jīng)驗來設計的,需要反復的檢驗, 并且編程的過程很繁瑣, 工作量是比較大的, 因此我們下面將探討更優(yōu)化的設計方法。 3.2 基于信號處理用戶界面設計 IIR數(shù)字濾波器 基于 MATLAB函數(shù)的濾波器設計完成后,需要對已設計的濾波器的頻率響應要進行校核。要得到幅頻、相頻響應特性,運算量也是很大的。而利用 MATLAB 強大的信號處理界面工具進行計算機輔助設計,可以快速有效地設計數(shù)字濾波器,大大地簡化了計算量。 3.2.1 FDATO

32、OL設計 IIR數(shù)字濾波器 我們將以一個 IIR 濾波器的設計實例來具體說明使用 MATLAB 工具箱的方便。要求設計 Chebyshev1 型低通濾波器滿足指標,首先在 Response Type 中選擇 Bandpass 高通濾波器, 然后在下面的Desigh Method中選擇IIR類型, 并且指定Filter Order項中的階數(shù)SpecifyOrder=10,由于是設計 chebyshev 濾波器,其下面 Option 就不必選擇。 然后在 FrequencySpecifications中選擇Unit為Hz,給出采樣頻率 Fs=1000, ;最后在 Magnitude Sp

33、ecification中選擇Unit為 dB,Apass=1。 設置完成后點擊 Design Filter即可得到所設計的IIR 濾波器。通過菜單選項Analysis可以在特性區(qū)看到所設計的幅頻響應、相頻響應、沖擊響應和零極點配置等特性。設計完成后將結(jié)果保存,封裝為 filterl.fda 文件,下面是運用 FDATool 設計濾波器:其中幅頻特性如圖3.2.1所示 圖 3.2.1 FDA設計主界面 Figure3.2.1 main contact surface of FDA design 圖 3.2.2 相頻特性 Figuer3

34、.2.2 phase-frequency characteristic 圖 3.2.3 沖激響應特性 Figure3.2.1 Impulse response characteristic 3.2.2 結(jié)論 從以上這些界面中我們可以清晰明了的看到設計的該濾波器的幅頻, 相頻和沖擊響應特性:我們能夠分析到,圖 3.2.1 中 Chebshev1 型濾波器具有等紋波的通頻帶、阻帶衰減的特性,總之,使用FDATOOL工具包設計和分析濾波器,是非常方便易行的,而且交互性良好,不需要極其復雜的程序編制就可以實現(xiàn)。 而且我們在最后的仿真模型設計中將載入這一模塊進行信號濾波。

35、4 基于 FDESIGN更加優(yōu)化的設計方法 4.1 FDESIGN設計方法 FDESIGN 是一種面向?qū)ο蟮臑V波器設計方法。這種設計方法的設計思路是: 1 載入需要處理的信號源 2 根據(jù)需要,設計相應的數(shù)字濾波器,對信號進行濾波,顯示濾波后效果 3 分析濾波后信號的頻譜,如果未達到要求,可以修改濾波參數(shù)重復試驗 4.2 基于 SPTOOL設計 IIR數(shù)字濾波器(面向?qū)ο笤O計) SPTOOL是FDESIGN設計法中常用的工具箱,它包含了信號處理工具箱中的大部分函數(shù),可以方便快捷地完成對信號、濾波器及頻譜的分析、設計和瀏覽,因此只需要操作界面就可以載入,觀察,分析,和打

36、印數(shù)字信號,分析和設計數(shù)字濾波器[5]。首先在 MATLAB命令窗口輸入sptool命令:在命令窗中寫入以下命令 Fs=500;t = (0:500)/Fs; f=sin(2*pi*t*40)+sin(3*pi*t*50)+sin(2*pi*t*100); 此時,變量Fs、t、s將顯示在 workspace列表中,如圖4.2.1所示;我們按照以下步驟操作: 1)點擊菜單File/Import將信號f導入并取名為f。 2)單擊Filters列表下的New,按照參數(shù)要求設計出濾波器filt1。 3)將濾波器filt1應用到f信號序列。分別在Signals、Filter

37、s、Spectra 列 表中選擇 f、filt1、mtlbse auto 單擊 Filters列表下的Apply按鈕,在彈出的Apply Filter對話框中將輸出信號命名為信號3。 4)進行頻譜分析。在 Signals 中選濾波后的信號信號 3,單擊 Spectra 下的 Create 按鈕在彈出的 Spectra Viewer 界面中選擇 Method 為 FFT,Nfft=512,單擊 Apply 按鈕生成濾波后信號的頻譜。 圖 4.2.1 SPTOOL主界面 Figure4.2.1 SPTOOL main contact surface

38、 圖 4.2.2 IIR 低通濾波器設計指標 Figure4.2.2 IIR low pass filter's design target 圖 4.2.3 模擬信號源 f Figure4.2.3 analog signal source f 圖 4.2.4 濾波后的信號 3 Figure4.2.4 signal 3 after filted 圖 4.2.5 濾波后經(jīng)過FFT處理后的頻譜 Figure4.2.5 frequency spectrum after filted, through FFT pro

39、cessing 分別選中原信號 f、濾波后信號 3,信號 3 的頻譜 ,單擊各自列表下方的 View 按鈕,即可觀察他們的波形,如圖 4.4 所示。低通濾波器 filt1 使輸入信號 f 中頻率為 40hz 的正弦波信號通過,而將頻率為75hz和100hz的正弦波信號大大衰減。在圖 4.2.5中我們能很清楚的看到濾出的信號3集中在40HZ的頻率區(qū),說明濾波的效果比較理想。這樣濾波后的信號波形非常清楚的展現(xiàn)在用戶面前。 3 結(jié)論 SPTOOL界面提供了簡單,直觀的,更加優(yōu)化的數(shù)字處理方式。我們可以根據(jù)原信號的特點,在 SPTOOL 界面中設計我們所需要的濾波器的特性,來對原信

40、號進行處理,它能有效滿足信號處理要求,是一種更加靈活的濾波器設計方式,因此我們常常會選擇這種更加優(yōu)化的方式來設計濾波器。 5 IIR數(shù)字濾波器的仿真 5.1 SIMULINK仿真框圖設計 建立信號傳輸仿真模塊,我們首先打開 SIMULINK 工具箱,并且建立一個 Model,在這個空白Model中進行環(huán)節(jié)庫及框圖的建立, 在 SIMULINK菜單下找到Source, 雙擊Source圖標,將正弦信號源和常量信號源拉到Model中,然后分別找到DSP 離散正弦信號源,乘法器和加法器以及示波器,然后把需要用來設計 IIR 數(shù)字濾波器的模塊 FDATOOL 都拉到Mod

41、el中,把環(huán)節(jié)都布好后,把各環(huán)節(jié)的端口按框圖連接起來。 5.2 參數(shù)設定及載入 FDATOOL文件 下面就來仿真 2.4.1 中信號處理的模型,以框圖的方式直觀地現(xiàn)實信號處理的過程,信號源為f= sin(2*pi*t*40)+sin(3*pi*t*50)+sin(2*pi*t*100), 在DSP 離散信號模塊中設定參數(shù)分別為40HZ,75HZ,100HZ,在 simulink環(huán)境中,將2.3.1 中封裝好的filterl.fda濾波器文件載入FDATOOL中,生成仿真框圖和濾波效果如圖所示。 圖 5.2.1 仿真模型 Figure 5.2.1 simul

42、ation model 圖 5.2.2 濾波效果 Figure 5.2.2 filting’s effect 3.2.2 IIR濾波器設計思想 IIR濾波器設計思想是:利用已有的模擬濾波器設計理論,首先根據(jù)設計指標設計一個合適的模擬濾波器,然后再通過脈沖響應不變法或雙線性變換法,完成從模擬到數(shù)字的變換。常用的模擬濾波器有巴特沃斯(Butterworth)濾波器、切比雪夫(Chebyshev) 濾波器、橢圓(Ellipse)濾波器、貝塞爾(Bessel)濾波器等,這些濾波器各有特點,供不同設計要求選用。濾波器的模擬數(shù)字變換,通常是復變

43、函數(shù)的映射變換,也必須滿足一定的要求 由于數(shù)字濾波器傳輸函數(shù)只與頻域的相對值有關(guān),故在設計時可先將濾波器設計指標進行歸一化處理,設采樣頻率為Fs,歸一化頻率的計算公式是: 利用完全設計法設計數(shù)字濾波器的步驟: (1)將設計指標歸一化處理。 (2)根據(jù)歸一化頻率,確定最小階數(shù)N 和頻率參數(shù)Wn??晒┻x用的階數(shù)選擇函數(shù)有:buttord,cheblord,cheb2ord,ellipord 等。 (3)運用最小階數(shù)N 設計模擬低通濾波器原型。根據(jù)最小階數(shù)直接設計模擬低通濾波器原型,用到的函數(shù)有:butter, chebyl,cheby2, ellip 和bessel。如[B

44、,A] = butter(N,Wn,'type') 設計'type'型巴特沃斯(Butterworth)濾波器filter。N為濾波器階數(shù),Wc為截止頻率, type決定濾波器類型, type= high,設計高通IIR濾波器,ftype= stop,設計帶阻IIR濾波器。 (4)再用freqz 函數(shù)驗證設計結(jié)果。 3.2.3 IIR濾波器設計編程實現(xiàn) 例如選擇設計IIR的Butterworth低通濾波器,其Fs=22050Hz,F(xiàn)p1=3400Hz, Fs1=5000Hz,Rp=2dB,Rs=20dB 程序和效果圖(圖2)如下: F

45、s=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;%設計指標 wp1=2*Fp1 /Fs;ws1=2*Fs1 /Fs;%求歸一化頻率 % 確定butterworth 的最小階數(shù)N 和頻率參數(shù)Wn [n,Wn]=buttord(wp1,ws1,Rp,Rs); [B,A] = butter(N,Wn);%確定傳遞函數(shù)的分子、分母系數(shù) [h,f]=freqz(b,a,Nn,Fs_value);%生成頻率響應參數(shù) plot(f,20*log(abs(h))) %畫幅頻響應圖 plot(f,angle(h)); %畫相頻響應圖 %[N, Wn] = butto

46、rd(Wp, Ws, Rp, Rs) 確定butterworth 的N 和Wn %[N, Wn] = cheblord ( (Wp, Ws, Rp, Rs) 確定Chebyshev濾波器的N 和Wn %[N, Wn] = cheb2ord (Wp, Ws, Rp, Rs) 確定Chebyshev2濾波器的N 和Wn %[N, Wn] = ellipord (Wp, Ws, Rp, Rs) 確定橢圓(Ellipse) 濾波器 的N 和Wn %[B,A] = butter(N,Wn,'type') 設計'type'型巴特沃斯(Butterworth)濾波器filter. %[B,A] =

47、 cheby1 (N,R,Wn, 'type') 設計'type'型切比雪夫Ⅰ濾波器filter. %[B,A] = cheby2(N,R,Wn, 'type') 設計'type'型切比雪夫Ⅱ濾波器filter. %[B,A] = ellip(N,Rp,Rs,Wn, 'type') 設計'type' 型橢圓filter. 圖 2 Butterworth低通濾波器 4 基于Matlab GUI的數(shù)字濾波器設計思路及實現(xiàn) 4. 1 GUI界面設計概述 GUI設計面板是GUI設計工具應用

48、的平面,面板上部提供了菜單和常用工具按鈕,左邊提供了多種如命令按鈕、單選按鈕、可編輯文本框、靜態(tài)文本框、彈出式菜單等。進行設計時, 首先單擊面板左邊所需的控件, 然后在右邊的圖形界面編輯區(qū)中再次單擊某一恰當位置, 這時將在該位上為圖形界面添加相應的控件。一個圖形界面的完成, 除了設計其外觀外, 還有相當?shù)囊徊糠质峭ㄟ^屬性的設來完成的。因此在設置這些屬性時, 要注意下面幾個常用又很重要的屬性設置: 1、控件風格和外觀 ??? ??(1)BackgroundColor:設置控件背景顏色,使用[R G B]或顏色定義。 ??? ??(2)CData:在控件上顯示的真彩色圖像,使用矩陣表示。

49、 ??? ??(3)ForegroundColor:文本顏色。 ??? ??(4)String屬性:控件上的文本,以及列表框和彈出菜單的選項。 ??? ??(5)Visible:控件是否可見。 ???2、對象的常規(guī)信息 ??? ??(1)Enable屬性: 表示此控件的使能狀態(tài),設置為on”,表示可選,為“off”時則表示不可選。 ??? ??(2)Style:控件對象類型。 ??? ??(3)Tag:控件表示(用戶定義)。 ??? ??(4)TooltipString屬性:提示信息顯示。當鼠標指針位于此控件上時,顯示提示信息。 ??? ??(5)UserData:用戶指定數(shù)據(jù)

50、。 ??? ??(6)Position:控件對象的尺寸和位置。 ??? ??(7)Units:設置控件的位置及大小的單位 ??? ??(8)有關(guān)字體的屬性,如 FontAngle, FontName等。 ??? 3、控件回調(diào)函數(shù)的執(zhí)行 ??? ??(1)BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項:即Cancel:取消中斷事件,queue:排隊(默認設置)。 ??? ??(2)ButtonDownFcn屬性:按鈕按下時的處理函數(shù)。 ??? ? (3)CallBack屬性:是連接程序界面整個程序系統(tǒng)的實質(zhì)性功能的紐帶。該屬性值應該為一個可以直接求值的字符串,在該對象被選中和

51、改變時,系統(tǒng)將自動地對字符串進行求值。 ??? ??(4)CreateFcn:在對象產(chǎn)生過程中執(zhí)行的回調(diào)函數(shù)。 ??? ? (5)DeleteFcn:刪除對象過程中執(zhí)行的回調(diào)函數(shù)。 ??? ??(6)Interruptible屬性:指定當前的回調(diào)函數(shù)在執(zhí)行時是否允許中斷,去執(zhí)行其他的函數(shù)。 ??? 4、控件當前狀態(tài)信息 ??? ??(1)ListboxTop:在列表框中顯示的最頂層的字符串的索引。 ??? ??(2)Max:最大值。 ??? ??(3)Min:最小值。 ??? ??(4)Value:控件的當前值。 應用MATLAB制作這樣一個過程是非常方便的, 我們可以通過G

52、UI操作來看到。該環(huán)境下要設計一個界面友好的仿真軟件,一般應完成以下兩個步驟: (1)GUI界面設計。主要是通過不同的文本框、按鈕等許多工具的使用,設計出一個圖形用戶界面。要清楚這個圖形界面的功能是什么,即在圖形界面上的操作會引發(fā)什么樣的結(jié)果。 (2)回調(diào)函數(shù)的設計。用戶應根據(jù)設計好的圖形界面的功能,針對各個不同的圖形對象來編寫出能夠?qū)崿F(xiàn)該功能的函數(shù)代碼,確保這個圖形界面能夠完成所預定的功能。 4.2 “濾波器設計軟件”設計所實現(xiàn)任務 “濾波器設計軟件”設計所實現(xiàn)任務如下: 1、能夠?qū)崿F(xiàn)人機交互 2、在下拉Digital Filter菜單里選擇IIR和FIR濾波器設計 3、

53、當選擇IIR濾波器時,能夠選擇巴特沃斯(Butterworth)、切比雪夫Ⅰ(ChebyshevⅠ)濾波器、切比雪夫Ⅱ(ChebyshevⅡ)濾波器、橢圓(Ellipse)濾波器 4、當選擇FIR濾波器是,能夠選擇Boxar、Bartlett、Blackman、Hanning、Hamming、Kaiser窗口設計濾波器 5、在下拉菜單Filter Type中選擇濾波器類型,能夠選擇Lowpass、Highpass、Bandpass、Bandstop四種類型 6、在下拉菜單Display Type中選擇圖形顯示類型,能夠選擇Linear、Logarithmic兩種類型 7、在設計濾波器階

54、數(shù)時,可選擇自定義階數(shù)和利用最小階數(shù)設計濾波器,并顯示最小階數(shù) 8、在參數(shù)輸入中,可輸入抽樣頻率Fs、濾波器通帶臨界頻率(Fp1、Fp2)、濾波器阻帶臨界頻率(Fst1、Fst2)、通帶內(nèi)的最大衰減Rp、通帶內(nèi)的最小衰減Rs 9、設計的濾波器的幅頻響應和幅頻響應顯示在界面中 MATLAB中的屬性控制非常多, 要設置哪些對象的屬性, 哪些可以不設置, 都需針對具體問題具體分析解決。接下來再通過控件布置編輯器來設置控件的對齊方式及間距等, 以完善界面功能。按要求設計好的“濾波器設計軟件”主面板見圖4, 共包括5個區(qū)域: (1)圖形區(qū):用于顯示各模塊的仿真曲線 (2)參數(shù)設區(qū):由個靜

55、態(tài)文本框和個編輯框以及類型選擇按紐組成, 實時的進行系統(tǒng)參數(shù)的設定和濾波器原型的選定 (3)對象模型區(qū):由下拉菜單選定數(shù)字濾波器類型, 當用戶的輸人參數(shù)發(fā)生變化時, 可通過單擊響應的“ Run”按鈕, 實現(xiàn)設計結(jié)果的實時刷新與顯示 (4)數(shù)據(jù)顯示區(qū):對應于圖形顯示結(jié)果, 實時顯示濾波器階次和分子分母多項式系數(shù)。 圖 4 “濾波器設計軟件”主面板 4.3 基于Matlab GUI的數(shù)字濾波器設計實現(xiàn) 4.3.1 “濾波器設計軟件”GUI界面設計 在matlab命令行窗口中輸入guide或點擊matlab界面上面的菜單中的圖標,打開gui設計的圖形界面如圖5 。然后拖入

56、所要的圖形控件,按需要修改外觀和空間屬性,直至滿足要求,如圖6。設置屬性點擊guide界面上方的Run按鈕,會生成一個fig文件,一個m文件,其中fig文件就是界面的圖形,m文件是界面的回調(diào)函數(shù),在m文件里每個控件的回調(diào)函數(shù)都已經(jīng)自動生成,控件要做的工作就是在文件框架下定義某些特殊要求的狀態(tài)并補充完整回調(diào)函數(shù)場, 使單擊控件時激活回調(diào)程序完成一定的功能。 圖 5 GUI設計的圖形界面 圖6 “濾波器設計軟件”GUI界面設計 4.3.2 “濾波器設計軟件”回調(diào)函數(shù)編寫 設計總框圖如圖7所示 圖7 設計

57、總框圖 1、Digital Filter下拉菜單 在下拉Digital Filter菜單里選擇IIR和FIR濾波器設計 選擇IIR或者FIR屏蔽相應的選項,當選擇IIR選項時,使FIR的Windows的選擇窗口不能使用,程序和效果圖(圖8 、圖9 )如下: function DigitalFilter_Callback(hObject, eventdata, handles) %讀取此時選擇的濾波器選擇,“IIR、FIR” DigitalFilter_value=get(handles.DigitalFilter,'Value'); %當選擇了IIR時,使

58、窗口選項屏蔽 if(DigitalFilter_value==1) set(handles.FilterDesign,'enable','on'); set(handles.Windows,'enable','off') %當選擇了FIR時,使IIR的濾波器(Butterworth、 ChebyshevⅠ等)選項屏蔽 else set(hand

59、les.FilterDesign,'enable','off'); set(handles.Windows,'enable','on') end 圖8 IIR濾波器選擇 圖 9 FIR濾波器選擇 2、Filter Type下拉菜單 在下拉菜單Filter Type中選擇濾波器類型 選擇低通或者高通濾波器時,隱藏相應的帶通和帶阻的第二個臨界頻率,使其頻率參數(shù)不能輸入,程序和效果圖(圖10 、圖11 )如下: function Fil

60、terType_Callback(hObject, eventdata, handles) %讀取此時設計的濾波器的類型,“Lowpass、Highpass、Bandpass、Bandstop” FilterType_value=get(handles.FilterType,'Value'); %當選擇Lowpass或者Highpass,屏蔽相應的臨界頻率的顯示 if((FilterType_value==1)||(FilterType_value==2)) set(handles.Fp2,'v

61、isible','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 %當選擇Bandpass或者Bandstop,使相

62、應的臨界頻率的顯示,使參數(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');

63、 end end 圖10低通、高通濾波器頻率參數(shù)輸入 圖11 低通、高通濾波器頻率參數(shù)輸入 3、Min Order和Custom Orde按鈕 在設計濾波器階數(shù)時,可選擇自定義階數(shù)和利用最小階數(shù)設計濾波器,并顯示最小階數(shù) ,這里涉及的控件Min Order和Custom Order,其回調(diào)函數(shù)如下: (1)按鈕Min Order 選擇使用最小階數(shù)設置時,屏蔽自定義階數(shù)的輸入,如圖12: function MinOrder_Callback(hOb

64、ject, eventdata, handles) MinOrder_value=get(handles.MinOrder,'Value'); if(MinOrder_value==1) set(handles.Order,'visible','off'); else set(handles.Order,'visible','on');

65、 end (2)按鈕Custom Order 選擇自定義階數(shù)時,顯示階數(shù)輸入框,如圖13 function CustomOrderButton_Callback(hObject, eventdata, handles) CustomOrderButton_value=get(handles.CustomOrderButton,'Value'); if(CustomOrderButton_value==0) set(handles.Order,'visibl

66、e','off'); else set(handles.Order,'visible','on'); end (3)其中涉及Run控件中的程序如下: ①顯示最小階數(shù) set(handles.MinOrderDisplay,'string',num2str(n)) ②當選擇了自定義階數(shù)時,讀取自定義階數(shù) if(MinOrder_value==0) n=str2double(get(handles.Order,'String')) end 圖12 使用最小階數(shù)設計Filter 圖13 使用自定義階數(shù)設計Filter 4、Fp1、Fp2、Fst1、Fst2文本編輯框 參數(shù)輸入時,在輸入抽樣頻率Fs的前提下,判斷濾波器通帶臨界頻率(Fp1、Fp2)、濾波器阻帶臨界頻率(Fst1、Fst2)的歸一化頻率wp1、 wp2、ws1、ws1是否在[0,1]之間,如不正確顯示錯誤對話框,其程序和效果

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!