基于Matlab GUI的模擬帶通濾波器的設計
4應用程序M文件的設計
GUI包含許多可以使軟件終端與用戶界面進行交互的用戶界面組件,GUI實現的任務之一就是控制組件如何響應用戶的行為。Matlab通過創建應用程序M文件為GUI控制程序提供一個框架。所有代碼(包括回調函數)都包含在應用程序M文件中,即完成了圖形界面的設計后,應用程序設計的主要工作是控件回調函數的設計。下面討論程序設計流程及控件回調函數的設計。
4.1 程序設計流程
軟件運行時,系統首先初始化。接著判斷輸入的濾波器參數及其類型是否正確,不正確重新輸入,正確即可選擇相應的功能菜單,實現相應的功能。程序具體流程圖如圖3所示。
4.2 控件回調函數設計
該軟件的控件回調函數包括“確定”按鈕控件回調函數、“清除”按鈕控件回調函數、濾波器類型選擇控件回調函數、“分析”菜單下各子菜單功能回調函數和“計算”菜單下各子菜單功能控回調函數的設計。限于篇幅,僅討論“分析”菜單下各個菜單功能回調函數和“計算”菜單下各功能回調函數的設計。
4.2.1 “分析”菜單下的各子菜單功能回調函數設計
在“分析”菜單下應包含“幅頻特性”、“相頻特性”、“階躍響應”、“脈沖響應”、“零極點圖”子菜單,分別用來實現幅頻特性曲線、相頻特性曲線、階躍響應、脈沖響應、零極點圖的繪制。其中,“幅頻特性”菜單用來繪制給定參數的濾波器的幅頻特性曲線,在程序設計過程中首先使用Matlab中的axes函數,得到坐標軸控件的句柄,以便繪制特性曲線。在得到用戶輸入的設計指標值后,利用if else語句來判斷用戶所選擇的是哪一種濾波器類型,在階數和截止頻率的計算中,利用信號處理工具箱中的cheblord和cheb2ord函數來計算,再用chebyl和theby2函數來計算轉移函數的分子、分母,設計出用戶所要求的濾波器。在計算濾波器幅值時,利用freqs函數計算出轉移函數的響應。在繪制濾波器幅頻特性曲線時,利用plot函數來完成,即在plot函數的參數中設置相關值,以完成幅頻特性曲線的繪制。為了更好地觀察到濾波器的設計是否達到相關的設計要求,利用line函數在坐標上標識出通帶最大損耗、阻帶最小損耗等點,這樣可以直觀地觀察到所設計出的濾波器是否符合用戶提出的要求,其具體程序如下:
在“分析”菜單下“相頻特性”子菜單用來繪制給定參數的濾波器的相頻特性曲線。相頻特性曲線的在程序設計過程與幅頻特性曲線的程序設計比較相似,只是在求得幅值后加一相位計算函數angle來求相位角。在plot函數中將縱坐標參數換為求出的相位角變量即可完成相頻特性曲線的繪制。
對于“階躍響應”回調函數的程序設計,要將計算出的階躍響應繪制在坐標軸控件界面上,不能利用信號處理工具箱中step函數直接求得。因為若用該函數會使繪制出的階躍響應曲線在一個新打開的窗口上,而軟件在界面設計時,所求濾波器的所有特性曲線都共用一個坐標軸來繪制;在程序設計時利用tf函數將計算出的濾波器轉移函數的分子、分母系數生成轉移函數,再利用階躍響應函數step對求出的轉移函數變量求解出階躍響應值;最后利用plot函數繪制出所求濾波器的階躍響應曲線,這樣即可完成階躍響應曲線在坐標軸上的繪制。
“脈沖響應”回調函數的程序設計與“階躍響應”回調函數的程序設計十分相近,只是將上述程序中的階躍響應函數step換成脈沖響應函數impluse,并在對應的時間做相應的調整即可完成脈沖響應回調函數的編寫。
“零極點圖”回調函數的程序設計與以上兩個子菜單的回調函數設計大致相同,程序的設計結構與前面幾個菜單的回調函數的設計基本一致。在求得轉移函數的分子、分母系數后,利用tf2zp函數求出所設計出的濾波器的零點、極點、增益,再用real函數和imag函數求出零點、極點的實部和虛部,最后利用繪圖函數plot繪制出系統的零極點圖。
低通濾波器相關文章:低通濾波器原理
電源濾波器相關文章:電源濾波器原理
高通濾波器相關文章:高通濾波器原理 數字濾波器相關文章:數字濾波器原理
評論