新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Matlab GUI的模擬帶通濾波器的設(shè)計(jì)

基于Matlab GUI的模擬帶通濾波器的設(shè)計(jì)

作者: 時(shí)間:2010-07-15 來源:網(wǎng)絡(luò) 收藏

4應(yīng)用程序M文件的設(shè)計(jì)

包含許多可以使軟件終端與用戶界面進(jìn)行交互的用戶界面組件,實(shí)現(xiàn)的任務(wù)之一就是控制組件如何響應(yīng)用戶的行為。通過創(chuàng)建應(yīng)用程序M文件為控制程序提供一個(gè)框架。所有代碼(包括回調(diào)函數(shù))都包含在應(yīng)用程序M文件中,即完成了圖形界面的設(shè)計(jì)后,應(yīng)用程序設(shè)計(jì)的主要工作是控件回調(diào)函數(shù)的設(shè)計(jì)。下面討論程序設(shè)計(jì)流程及控件回調(diào)函數(shù)的設(shè)計(jì)。

4.1 程序設(shè)計(jì)流程

軟件運(yùn)行時(shí),系統(tǒng)首先初始化。接著判斷輸入的濾波器參數(shù)及其類型是否正確,不正確重新輸入,正確即可選擇相應(yīng)的功能菜單,實(shí)現(xiàn)相應(yīng)的功能。程序具體流程圖如圖3所示。

4.2 控件回調(diào)函數(shù)設(shè)計(jì)

該軟件的控件回調(diào)函數(shù)包括“確定”按鈕控件回調(diào)函數(shù)、“清除”按鈕控件回調(diào)函數(shù)、濾波器類型選擇控件回調(diào)函數(shù)、“分析”菜單下各子菜單功能回調(diào)函數(shù)和“計(jì)算”菜單下各子菜單功能控回調(diào)函數(shù)的設(shè)計(jì)。限于篇幅,僅討論“分析”菜單下各個(gè)菜單功能回調(diào)函數(shù)和“計(jì)算”菜單下各功能回調(diào)函數(shù)的設(shè)計(jì)。

4.2.1 “分析”菜單下的各子菜單功能回調(diào)函數(shù)設(shè)計(jì)

在“分析”菜單下應(yīng)包含“幅頻特性”、“相頻特性”、“階躍響應(yīng)”、“脈沖響應(yīng)”、“零極點(diǎn)圖”子菜單,分別用來實(shí)現(xiàn)幅頻特性曲線、相頻特性曲線、階躍響應(yīng)、脈沖響應(yīng)、零極點(diǎn)圖的繪制。其中,“幅頻特性”菜單用來繪制給定參數(shù)的濾波器的幅頻特性曲線,在程序設(shè)計(jì)過程中首先使用中的axes函數(shù),得到坐標(biāo)軸控件的句柄,以便繪制特性曲線。在得到用戶輸入的設(shè)計(jì)指標(biāo)值后,利用if else語(yǔ)句來判斷用戶所選擇的是哪一種濾波器類型,在階數(shù)和截止頻率的計(jì)算中,利用信號(hào)處理工具箱中的cheblord和cheb2ord函數(shù)來計(jì)算,再用chebyl和theby2函數(shù)來計(jì)算轉(zhuǎn)移函數(shù)的分子、分母,設(shè)計(jì)出用戶所要求的濾波器。在計(jì)算濾波器幅值時(shí),利用freqs函數(shù)計(jì)算出轉(zhuǎn)移函數(shù)的響應(yīng)。在繪制濾波器幅頻特性曲線時(shí),利用plot函數(shù)來完成,即在plot函數(shù)的參數(shù)中設(shè)置相關(guān)值,以完成幅頻特性曲線的繪制。為了更好地觀察到濾波器的設(shè)計(jì)是否達(dá)到相關(guān)的設(shè)計(jì)要求,利用line函數(shù)在坐標(biāo)上標(biāo)識(shí)出通帶最大損耗、阻帶最小損耗等點(diǎn),這樣可以直觀地觀察到所設(shè)計(jì)出的濾波器是否符合用戶提出的要求,其具體程序如下:



在“分析”菜單下“相頻特性”子菜單用來繪制給定參數(shù)的濾波器的相頻特性曲線。相頻特性曲線的在程序設(shè)計(jì)過程與幅頻特性曲線的程序設(shè)計(jì)比較相似,只是在求得幅值后加一相位計(jì)算函數(shù)angle來求相位角。在plot函數(shù)中將縱坐標(biāo)參數(shù)換為求出的相位角變量即可完成相頻特性曲線的繪制。

對(duì)于“階躍響應(yīng)”回調(diào)函數(shù)的程序設(shè)計(jì),要將計(jì)算出的階躍響應(yīng)繪制在坐標(biāo)軸控件界面上,不能利用信號(hào)處理工具箱中step函數(shù)直接求得。因?yàn)槿粲迷摵瘮?shù)會(huì)使繪制出的階躍響應(yīng)曲線在一個(gè)新打開的窗口上,而軟件在界面設(shè)計(jì)時(shí),所求濾波器的所有特性曲線都共用一個(gè)坐標(biāo)軸來繪制;在程序設(shè)計(jì)時(shí)利用tf函數(shù)將計(jì)算出的濾波器轉(zhuǎn)移函數(shù)的分子、分母系數(shù)生成轉(zhuǎn)移函數(shù),再利用階躍響應(yīng)函數(shù)step對(duì)求出的轉(zhuǎn)移函數(shù)變量求解出階躍響應(yīng)值;最后利用plot函數(shù)繪制出所求濾波器的階躍響應(yīng)曲線,這樣即可完成階躍響應(yīng)曲線在坐標(biāo)軸上的繪制。

“脈沖響應(yīng)”回調(diào)函數(shù)的程序設(shè)計(jì)與“階躍響應(yīng)”回調(diào)函數(shù)的程序設(shè)計(jì)十分相近,只是將上述程序中的階躍響應(yīng)函數(shù)step換成脈沖響應(yīng)函數(shù)impluse,并在對(duì)應(yīng)的時(shí)間做相應(yīng)的調(diào)整即可完成脈沖響應(yīng)回調(diào)函數(shù)的編寫。

“零極點(diǎn)圖”回調(diào)函數(shù)的程序設(shè)計(jì)與以上兩個(gè)子菜單的回調(diào)函數(shù)設(shè)計(jì)大致相同,程序的設(shè)計(jì)結(jié)構(gòu)與前面幾個(gè)菜單的回調(diào)函數(shù)的設(shè)計(jì)基本一致。在求得轉(zhuǎn)移函數(shù)的分子、分母系數(shù)后,利用tf2zp函數(shù)求出所設(shè)計(jì)出的濾波器的零點(diǎn)、極點(diǎn)、增益,再用real函數(shù)和imag函數(shù)求出零點(diǎn)、極點(diǎn)的實(shí)部和虛部,最后利用繪圖函數(shù)plot繪制出系統(tǒng)的零極點(diǎn)圖。

低通濾波器相關(guān)文章:低通濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


高通濾波器相關(guān)文章:高通濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理


關(guān)鍵詞: Matlab GUI 模擬 帶通濾波器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉