《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > 基于Matlab GUI的模擬帶通濾波器的設計
基于Matlab GUI的模擬帶通濾波器的設計
摘要: 本文在Matlab GUI基礎上設計了針對Chebyshev型模擬帶通濾波器的設計分析軟件。用戶在使用時只需輸入要設計的濾波器設計指標值,選擇要設計的濾波器類型,即可在分析濾波器特性時只需選擇相應菜單就能得出對應的特性。
Abstract:
Key words :

  模擬帶通濾波器在信號的檢測和傳輸過程中起著很重要的作用,但在傳統模擬帶通濾波器的設計過程中需要大量繁瑣的數值計算,如果手工計算則費時費力。也有許多公司開發了相關的濾波器設計軟件,如 AnsoftDesigner,Filterlab等,但是它們大多數使用起來不容易上手,而且價格比較昂貴。Matlab中的圖形界面編程環境 GUIDE為用戶開發軟件界面提供了強有力的工具。在圖形界面編程環境GUIDE下,設計好濾波器的設計工具界面后,對界面上各個控件的回調函數進行編寫就能設計出交互式濾波器的分析設計軟件。

  本文在Matlab GUI基礎上設計了針對Chebyshev型模擬帶通濾波器的設計分析軟件。用戶在使用時只需輸入要設計的濾波器設計指標值,選擇要設計的濾波器類型,即可在分析濾波器特性時只需選擇相應菜單就能得出對應的特性。該工具解決了用戶在設計Chebyshev型模擬帶通濾波器時大量繁瑣的數值計算,不僅可以作為研究設計Chebyshev型模擬帶通濾波器的輔助工具,還可以作為設計濾波器等相關課程的輔助教學軟件。

  1 模擬帶通濾波器的設計理論

  目前,模擬高通濾波器、帶通濾波器和帶阻濾波器的設計方法都是先將要設計的濾波器技術指標通過某種頻率轉換關系轉換成模擬低通濾波器的技術指標,并依據這些技術指標設計出低通濾波器的轉移函數,然后再依據頻率轉換關系變成所要設計的濾波器的轉移函數。工程實際中,設計高通、帶通、帶阻濾波器的常用方法是借助低通原型濾波器,經頻率變換和元件變換得到。

  對于模擬帶通濾波器的設計,首先是將要設計的模擬帶通濾波器的技術指標通過頻率變換關系,轉換成模擬低通濾波器的技術指標,其次根據這些技術指標設計出低通切比雪夫濾波器轉移函數,最后再依據頻率轉換關系變成模擬低通切比雪夫濾波器,其具體設計流程如圖1所示。

設計流程

  2 Matlab GUI設計工具簡介

  在Matlab中,圖形用戶界面(graphical user interface,GUI)是Matlab中一個專用于GUI程序設計的向導設計器,而GUI是由各種圖形對象,如圖形窗口、圖軸、菜單、按鈕、文本框等構建的用戶界面,是人機交互的有效工具和方法。通過GUIDE可以很方便地設計出各種符合要求的圖形用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產生某種動作或變化,比如實現計算、繪圖等。GUI設計既能以基本的Matlab程序設計為主,也能以鼠標為主,利用 GUIDE工具進行設計,也可綜合以上兩種方法進行設計。GUIDE主要是一個界面設計工具集。Matlab將所有GUl支持的用戶控件都集成在這個環境中并提供界面外觀、屬性和行為相應方式的設置方法。GUIDE將用戶保存設計好的圖形用戶界面保存在一個FIG資源文件中,同時自動生成包含圖形用戶界面初始化和組件界面布局控制代碼的M文件,這個M文件為實現回調函數的編寫提供了一個參考框架。FIG文件是一個二進制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創建圖形窗口時保存的屬性。該文件最主要的功能是對象句柄的保存。M文件包含GUI設計、控制函數及控件的回調函數,主要用來控制 GUI展開時的各種特征。該文件基本上可以分為GUI初始化和回調函數2個部分,控件的回調函數可根據用戶與GUI的具體交互行為分別調用。

  3 軟件界面設計

  在軟件設計時,通過文本編輯框控件來接收用戶輸入的濾波器設計指標值,考慮到分析濾波器時輸出的參數較多,如果用一一對應的文本框來接收輸出的參數值,則使軟件界面在設計中難以布局,并影響了界面的美觀,所以只用一個文本編輯框控件來實現多個參數的輸出。在濾波器類型選擇控件方面,因為只用2種濾波器來進行選擇設計,所以使用兩個單選按鈕,以實現濾波器類型的選擇;在濾波器特性曲線分析和參數計算方面,利用圖形界面設計工具 GUIDE提供的菜單編輯器來設計出分析、計算菜單,并加入相應的功能子菜單。繪制輸出濾波器的特性曲線時使用一個坐標軸來實現各個特性曲線的繪制,這樣可以使軟件界面簡潔明了。最后對參數輸入和參數輸出區進行功能區域劃分,利用控件工具箱中的框架按鈕,將參數的輸入與輸出區劃分,利用控件工具箱中文本標簽對上面相應控件的功能命名。將設計好的界面文件保存運行,就可以看到軟件在運行時顯示出的實際效果。設計的界面如圖2所示,設計出的軟件界面由4個部分組成:菜單欄、參數輸入區、參數輸出區、繪圖區。

設計的界面

  其中,設計的分析菜單包括濾波器的幅頻特性、相頻特性、階躍響應、脈沖相應和零極點子菜單,計算菜單包括階數、零點、極點、增益、轉移函數(分子)和轉移函數(分母)子菜單。

   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繪制出系統的零極點圖。

  4.2.2  “計算”菜單下各功能回調函數的編寫

  “計算”菜單下包含了“階數”、“零點”、“極點”、“增益”、“轉移函數分子系數”。其中,“轉移函數分母系數”菜單分別用來計算所設計的濾波器階數、零點、極點、增益、轉移函數分子系數、轉移函數分母系數;“階數”菜單用來計算所輸入參數濾波器的階數,并將它輸出到輸出參數框。在程序的設計中,首先判斷用戶所選擇濾波器的類型,然后將計算出的參數用set函數輸出到輸出文本區。因為極點、零點值可能為復數,而文本編輯框的數據類型為數值型,所以在輸出時,利用num2str函數將得到的值進行格式轉化,以防止出現復數值只能顯示出實部來。“階數”菜單程序如下:

  “階數”菜單程序

“階數”菜單程序

   “階數”、“零點”、“極點”、“增益”、“轉移函數分子系數”、“轉移函數分母系數”子菜單中回調函數的程序設計基本一樣,只是在輸出值時參數名稱不同。將階數子菜單程序中set語句的“n”換成相應菜單對應的變量名即可實現相應的功能。在完成了各個控件的回調函數編寫后,對軟件的功能進行逐一調試,以保證每項功能都能正確響應用戶的操作。

 

  4.3  代碼優化

  在調試完軟件的各項功能后,應對所設計的軟件代碼進行優化。打開軟件中使用次數比較多的程序段,利用Matlab中的程序執行耗時剖析功能函數 profile指令對程序中執行耗時情況進行分析,之后進行改進,以提高執行效率。打開設計出的軟件主程序M文件,對已經優化過且使用次數較多的程序段,應另外編寫成函數形式,供需要的控件回調函數調用,在需要調用的相關控件回調函數下只需要填寫相應的函數名稱就能實現其相應的功能。

  對于在界面設計時沒有用到的控件,對應生成的代碼可以直截刪去。最后在Matlab環境下,運行該程序,即可實現模擬帶通濾波器的設計和性能分析。利用該軟件對模擬帶通濾波器進行了分析,其部分結果如圖4、圖5所示。

部分結果

  圖4為切比雪夫2型模擬帶通濾波器的幅頻特性和極點分析計算結果;圖5為切比雪夫 1型模擬帶通濾波器零極點分析計算結果。分析結果表明,該軟件有助于模擬帶通濾波器的分析設計。

切比雪夫2型模擬帶通濾波器的幅頻特性和極點分析計算結果

  5  結  語

  該文在分析模擬濾波器設計理論的基礎上,設計了基于Matlab GUI的模擬帶通濾波器設計軟件。利用該軟件可以分析濾波器的幅頻特性、相頻特性和零,極點分布特性等。如何將該課題的研究與實際的模擬濾波器設計整合在一起,將是下一步面臨的重要工作。同時也可利用該設計方法設計功能更大的濾波器分析設計軟件,使該軟件具有更大的實用價值。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久福利电影| 亚洲欧美另类中文字幕| 亚洲视频在线观看网站| 亚洲激情成人在线| 黄色精品一区| 国产专区综合网| 国产午夜精品全部视频在线播放| 国产精品日韩专区| 国产精品国产馆在线真实露脸 | 国产一区二区三区在线播放免费观看 | 亚洲国产高清高潮精品美女| 激情六月婷婷久久| 在线成人中文字幕| 在线视频观看日韩| 亚洲成色www8888| 91久久久久久| 亚洲精品一区二区三区99| 亚洲欧洲精品一区二区三区不卡 | 一区二区三区四区五区视频 | 国产精品毛片大码女人| 国产精品久久久久久影视| 国产精品久久久久一区二区| 国产精品视频一二三| 国产欧美日韩在线视频| 国产日韩精品在线播放| 国产最新精品精品你懂的| 在线观看日韩欧美| 亚洲精品国产精品国产自| 亚洲伦伦在线| 亚洲欧美精品| 亚洲第一天堂av| 亚洲人成网站在线播| 日韩亚洲综合在线| 亚洲欧美一区二区三区久久 | 韩国一区电影| 亚洲黄色免费网站| 亚洲伦理精品| 亚洲欧美激情四射在线日 | 久久久在线视频| 欧美jizz19性欧美| 欧美视频精品一区| 国产日韩视频| 亚洲国产黄色| 在线亚洲精品福利网址导航| 性欧美大战久久久久久久久| 亚洲激情在线| 亚洲午夜电影在线观看| 久久国产色av| 欧美精品一区二区三区在线播放 | 久久综合国产精品| 欧美乱妇高清无乱码| 国产精品乱码一区二三区小蝌蚪 | 极品av少妇一区二区| 99精品欧美一区二区三区| 香蕉国产精品偷在线观看不卡| 亚洲日本成人网| 午夜综合激情| 欧美黄色一区二区| 国产伦精品一区二区三区免费| 影音先锋日韩精品| 亚洲视频在线一区| 亚洲国产婷婷香蕉久久久久久| 亚洲一区二区视频| 久久青草欧美一区二区三区| 欧美日韩一区二区免费在线观看| 国产午夜精品一区二区三区视频| 91久久夜色精品国产网站| 午夜久久久久| 一区二区欧美日韩视频| 久久久精品视频成人| 国产精品a级| 亚洲第一在线综合网站| 亚洲永久免费精品| 日韩午夜精品| 久久中文精品| 国产精品揄拍500视频| 亚洲精品一二三区| 亚洲国产另类久久精品| 欧美在线观看一区二区三区| 欧美黑人在线观看| 狠狠色狠狠色综合日日91app| 中日韩午夜理伦电影免费| 最新日韩精品| 久久免费视频一区| 国产精品免费电影| 亚洲精品在线一区二区| 亚洲国产成人av| 久久精品国产亚洲5555| 国产精品日韩专区| 一区二区欧美视频| 亚洲精品在线观看视频| 久久久久久久91| 国产精品自拍在线| 亚洲图片欧洲图片av| 在线一区欧美| 欧美屁股在线| 91久久精品国产91久久| 亚洲福利视频二区| 欧美在线亚洲在线| 国产精品久久午夜| 一区二区三区欧美亚洲| 宅男噜噜噜66国产日韩在线观看| 欧美国产一区视频在线观看| 黄色综合网站| 久久超碰97人人做人人爱| 久久9热精品视频| 国产欧美日韩在线| 午夜精品在线观看| 久久精品国产免费观看| 国产精品综合色区在线观看| 亚洲一区二区av电影| 亚洲欧美成人一区二区在线电影| 欧美日韩综合精品| 99日韩精品| 亚洲午夜国产成人av电影男同| 欧美三级欧美一级| 99精品国产高清一区二区| 一区二区欧美精品| 欧美日韩中文在线| 一本一道久久综合狠狠老精东影业 | 亚洲欧洲精品一区二区三区波多野1战4 | 欧美亚洲成人免费| 一区二区三区高清不卡| 亚洲一区二区成人| 欧美视频日韩| 亚洲一区在线播放| 欧美一区二区视频在线观看| 国产网站欧美日韩免费精品在线观看| 欧美一二三区精品| 久久免费国产精品| 亚洲成色777777在线观看影院| 亚洲伦伦在线| 欧美日韩高清免费| 在线一区二区三区四区五区| 欧美一区二区三区四区在线 | 国产精品久久久久久久浪潮网站| 亚洲图色在线| 久久国产成人| 影音先锋久久久| 一区二区三区导航| 国产精品你懂得| 亚洲欧美视频一区| 久热国产精品视频| 亚洲激情午夜| 亚洲午夜羞羞片| 国产九区一区在线| 亚洲国产精品一区二区三区| 欧美国产精品日韩| 一本色道久久88亚洲综合88| 午夜精品久久久久久久99水蜜桃| 国产一区二区毛片| 最新中文字幕一区二区三区| 欧美日韩国产在线播放| 亚洲欧美日韩另类| 男人的天堂亚洲在线| 日韩视频不卡| 久久国产精品免费一区| 亚洲电影免费观看高清完整版在线 | 亚洲欧美在线一区二区| 国内外成人在线| 一本久久综合亚洲鲁鲁五月天| 国产精品日本欧美一区二区三区| 久久av免费一区| 欧美日韩dvd在线观看| 亚洲欧美三级伦理| 欧美高清在线观看| 亚洲午夜精品久久久久久浪潮| 久久婷婷亚洲| 夜夜嗨av一区二区三区网页| 欧美一级视频| 亚洲国产精品精华液2区45| 亚洲专区免费| 伊人久久婷婷| 亚洲在线观看免费视频| 狠狠干综合网| 亚洲免费在线视频一区 二区| 狠狠色狠狠色综合| 亚洲欧美国产不卡| 亚洲国产成人av| 欧美一区二区成人| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美日韩国产一区二区| 亚洲大胆美女视频| 欧美亚洲视频一区二区| 亚洲精品国产精品乱码不99按摩| 久久国产精彩视频| 日韩一二三区视频| 久久综合中文字幕| 亚洲欧美日韩国产精品| 99精品视频免费全部在线| 一区二区免费在线视频| 国产一区久久| 亚洲一区二区免费在线| 国内精品嫩模av私拍在线观看| 一本一本久久a久久精品牛牛影视| 国产日产欧产精品推荐色 | 久久综合国产精品| 亚洲影院免费观看| 欧美精品激情| 亚洲国产欧美久久|