《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)及其應(yīng)用
基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)及其應(yīng)用
來源:微型機(jī)與應(yīng)用2012年第14期
柴西林1, 邵照勇2
(1. 西北師范大學(xué) 知行學(xué)院,甘肅 蘭州730070; 2. 中國(guó)石油蘭州石化分公司電儀事業(yè)部,
摘要: 基于數(shù)字信號(hào)處理原理,在分析數(shù)字濾波器設(shè)計(jì)理論和Matlab編程技術(shù)及其GUI圖形用戶界面設(shè)計(jì)的基礎(chǔ)上,開發(fā)了具有交互式特點(diǎn)的數(shù)字濾波器軟件,界面操作簡(jiǎn)單方便,可以根據(jù)需要選擇濾波器類型,輸入相關(guān)參數(shù),然后選擇相應(yīng)的功能按鈕,就可以得到濾波器的特性參數(shù),并進(jìn)行濾波器的性能分析,打破了以往濾波器設(shè)計(jì)過程中大量繁瑣的數(shù)值計(jì)算問題,為數(shù)字濾波器的設(shè)計(jì)和應(yīng)用提供了一個(gè)有效的輔助工具。
Abstract:
Key words :

摘  要: 基于數(shù)字信號(hào)處理原理,在分析數(shù)字濾波器設(shè)計(jì)理論和Matlab編程技術(shù)及其GUI圖形用戶界面設(shè)計(jì)的基礎(chǔ)上,開發(fā)了具有交互式特點(diǎn)的數(shù)字濾波器軟件,界面操作簡(jiǎn)單方便,可以根據(jù)需要選擇濾波器類型,輸入相關(guān)參數(shù),然后選擇相應(yīng)的功能按鈕,就可以得到濾波器的特性參數(shù),并進(jìn)行濾波器的性能分析,打破了以往濾波器設(shè)計(jì)過程中大量繁瑣的數(shù)值計(jì)算問題,為數(shù)字濾波器的設(shè)計(jì)和應(yīng)用提供了一個(gè)有效的輔助工具。
關(guān)鍵詞: 數(shù)字信號(hào)處理; 數(shù)字濾波器; Matlab GUI圖像處理; 語音信號(hào)處理

    數(shù)字濾波器通常通過一定的運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比例或者濾除某些頻率成分來實(shí)現(xiàn)濾波,其應(yīng)用非常廣泛。然而, 在傳統(tǒng)數(shù)字濾波器的設(shè)計(jì)過程中需要大量繁瑣的數(shù)值計(jì)算,如果手工計(jì)算則費(fèi)時(shí)費(fèi)力。目前,數(shù)字濾波器的設(shè)計(jì)常借助計(jì)算機(jī),利用Matlab軟件來實(shí)現(xiàn)。Matlab中的圖形界面編程環(huán)境GUIDE為用戶開發(fā)軟件界面提供了強(qiáng)有力的工具。本文在Matlab GUI基礎(chǔ)上開發(fā)了數(shù)字濾波器的設(shè)計(jì)分析軟件,并設(shè)計(jì)開發(fā)了應(yīng)用于圖像處理和語音信號(hào)處理模塊。用戶在使用時(shí)只需輸入要設(shè)計(jì)的濾波器所需參數(shù)值,選擇要設(shè)計(jì)的濾波器類型,即在分析濾波器特性時(shí)選擇相應(yīng)功能按鈕就能得出對(duì)應(yīng)的特性。該工具解決了用戶在設(shè)計(jì)數(shù)字濾波器時(shí)大量繁瑣的數(shù)值計(jì)算,不僅可以作為研究設(shè)計(jì)數(shù)字濾波器的輔助工具,還可以作為相關(guān)課程的輔助教學(xué)軟件。
1 Matlab GUI設(shè)計(jì)工具簡(jiǎn)介
      Matlab是一個(gè)面向科學(xué)與工程的計(jì)算軟件,它將不同領(lǐng)域的計(jì)算用函數(shù)的形式提供給用戶;用戶在使用時(shí),只需調(diào)用這些函數(shù)并賦予實(shí)際參數(shù)就能解決實(shí)際問題[1]。它涉及數(shù)值分析、自動(dòng)控制、信號(hào)處理、圖像處理、小波分析及神經(jīng)網(wǎng)絡(luò)等幾十個(gè)領(lǐng)域的計(jì)算和圖形顯示。在Matlab中設(shè)計(jì)數(shù)字濾波器軟件的工具有GUI與FDATool,兩個(gè)工具都可以設(shè)計(jì)出數(shù)字濾波器。FDATool工具可以快速設(shè)計(jì)各種類型的濾波器,但是這個(gè)工具界面單一,用戶無法根據(jù)需要來設(shè)計(jì)滿意的界面。而圖形用戶界面GUI(Graphical User Inter-face)的設(shè)計(jì)是非常靈活的,它主要是一個(gè)界面設(shè)計(jì)工具集,Matlab將所有GUI支持的控件都集成在這個(gè)環(huán)境中,并可進(jìn)行各項(xiàng)屬性設(shè)置[2];用戶設(shè)計(jì)好的圖形用戶界面保存后生成一個(gè).fig文件,同時(shí)自動(dòng)生成包含圖形用戶界面初始化和組件界面布局控制代碼的M文件,為實(shí)現(xiàn)回調(diào)函數(shù)的編寫提供了一個(gè)參考框架,包含GUI設(shè)計(jì)、控制函數(shù)及控件的回調(diào)函數(shù),主要用來控制GUI展開時(shí)的各種特征[3]。對(duì)于熟練編程者,不需要GUI向?qū)В苯泳帉慚程序即可生成人機(jī)交互的有效圖形用戶界面。
2 數(shù)字濾波器的設(shè)計(jì)理論
2.1系統(tǒng)設(shè)計(jì)主流程及主界面

       系統(tǒng)設(shè)計(jì)主流程如圖1所示,系統(tǒng)主功能操作界面設(shè)計(jì)如圖2所示。

2.2 數(shù)字濾波器的設(shè)計(jì)步驟
 (1)確定指標(biāo):在設(shè)計(jì)一個(gè)濾波器之前,必須首先根據(jù)實(shí)際的工程需要確定濾波器的技術(shù)指標(biāo)。通常選擇數(shù)字濾波器實(shí)現(xiàn)選頻操作。因此,指標(biāo)的形式一般在頻域中給出幅度和相位響應(yīng)。幅度指標(biāo)主要以兩種方式給出:①絕對(duì)指標(biāo),它提供對(duì)幅度響應(yīng)函數(shù)的要求,一般應(yīng)用于FIR濾波器的設(shè)計(jì);②相對(duì)指標(biāo),它以分貝值的形式給出要求,在工程實(shí)際應(yīng)用中,這種指標(biāo)最受歡迎。對(duì)于相位響應(yīng)指標(biāo)形式,通常希望系統(tǒng)在通頻帶內(nèi)有線性相位。運(yùn)用線性相位響應(yīng)指標(biāo)進(jìn)行濾波器設(shè)計(jì)具有如下優(yōu)點(diǎn):①只包含實(shí)數(shù)算法,不涉及復(fù)數(shù)運(yùn)算;②不存在延遲失真,只有固定數(shù)量的延遲;③長(zhǎng)度為N的濾波器(階數(shù)為N-1),計(jì)算量為N/2數(shù)量級(jí)。因此,本文中濾波器的設(shè)計(jì)就以線性相位FIR濾波器的設(shè)計(jì)為例。
 (2)逼近:確定了技術(shù)指標(biāo)后,就可以建立目標(biāo)數(shù)字濾波器模型。通常采用理想的數(shù)字濾波器模型。之后,利用數(shù)字濾波器的設(shè)計(jì)方法,設(shè)計(jì)出一個(gè)實(shí)際濾波器模型來逼近給定的目標(biāo)。
 (3)性能分析和計(jì)算機(jī)仿真:上兩步的結(jié)果是得到以差分、系統(tǒng)函數(shù)或沖激響應(yīng)描述的濾波器。根據(jù)這個(gè)描述就可以分析其頻率特性和相位特性,以驗(yàn)證設(shè)計(jì)結(jié)果是否滿足指標(biāo)要求;或者利用計(jì)算機(jī)仿真實(shí)現(xiàn)設(shè)計(jì)的濾波器,再分析濾波結(jié)果來判斷。
2.3 IIR數(shù)字濾波器的Matlab設(shè)計(jì)
    Matlab信號(hào)處理工具箱提供了幾個(gè)直接設(shè)計(jì)IIR數(shù)字濾波器的函數(shù),這些函數(shù)把IIR數(shù)字濾波器典型設(shè)計(jì)中的復(fù)雜實(shí)現(xiàn)過程集成為一個(gè)整體,為設(shè)計(jì)IIR數(shù)字濾波器帶來了極大的方便[4]。主要函數(shù)有:(1)函數(shù)butter:設(shè)計(jì)Butterworth濾波器,其特性是通帶內(nèi)的幅度響應(yīng)最大限度的平滑,但損失了截止頻率處的下降斜度。(2)函數(shù)chebyl:設(shè)計(jì)Chebyshev I型濾波器,其通帶內(nèi)為等波紋,阻帶內(nèi)為單調(diào)。Chebyshev I型濾波器的下降斜度比II型大,但其代價(jià)是通帶內(nèi)波紋較大。(3)函數(shù)cheby2:設(shè)計(jì)Chebyshev II型濾波器,其通帶內(nèi)為單調(diào),阻帶內(nèi)等波紋。Chebyshev II型濾波器的下降斜度比I型小,但其阻帶內(nèi)波紋較大。(4)函數(shù)ellip:設(shè)計(jì)橢圓濾波器,與前幾種濾波器相比,ellip函數(shù)可以得到下降斜度更大的濾波器,得到通帶和阻帶均為等波紋;一般情況下,橢圓濾波器能以最低的階實(shí)現(xiàn)指定的性能指標(biāo)。以上4種函數(shù)都可以設(shè)計(jì)低通、高通、帶通和帶阻的數(shù)字和模擬濾波器。
    IIR數(shù)字濾波器在系統(tǒng)中界面設(shè)計(jì)如圖3所示,其中左方為濾波器類型、通帶選擇及參數(shù)輸入?yún)^(qū),可以根據(jù)需要在Butterworth型、Chebyshev I型、Chebyshev II型和橢圓濾波器4種類型中選擇任意一種濾波器,并且可以在低通、高通、帶通和帶阻4種通帶中選擇任意一種,然后輸入相關(guān)參數(shù),點(diǎn)擊“運(yùn)行”按鈕,就可以設(shè)計(jì)出相應(yīng)的IIR數(shù)字濾波器;右上方曲線為濾波器的幅頻響應(yīng)圖,右下方曲線為濾波器的相頻響應(yīng)圖。圖3為Chebyshev I型帶通IIR數(shù)字濾波器在系統(tǒng)中的設(shè)計(jì)實(shí)現(xiàn),其他類型IIR數(shù)字濾波器設(shè)計(jì)界面與之類似。


2.4 FIR數(shù)字濾波器的Matlab設(shè)計(jì)
    FIR濾波器通常采用窗函數(shù)法設(shè)計(jì)。窗函數(shù)法設(shè)計(jì)FIR濾波器的基本思想是:根據(jù)給定的濾波器技術(shù)指標(biāo),選擇濾波器長(zhǎng)度N和窗函數(shù)ω(n),使其具有最窄寬度的主瓣和最小的旁瓣,其核心是從給定的頻率特性,通過加窗確定有限長(zhǎng)單位脈沖響應(yīng)序列h(n)[5]。工程中常用的窗函數(shù)共有7種,即矩形窗(Boxcar)、三角窗(Triang)、巴特利特(Bartlett)窗、漢寧(Hanning)窗、漢明(Hamming)窗、布萊克曼(Blackman)窗和凱塞(Kaiser)窗。
     FIR數(shù)字濾波器設(shè)計(jì)界面如圖4所示,其中左邊為濾波器類型、通帶選擇及參數(shù)輸入?yún)^(qū),可以根據(jù)需要在Boxcar、Triang、Bartlett、Hanning、 Hamming、 Blackman和Kaiser等7種窗函數(shù)中選擇任意一種設(shè)計(jì)濾波器,并且可以在低通、高通、帶通和帶阻4種通帶中選擇任意一種,然后輸入相關(guān)參數(shù),點(diǎn)擊“運(yùn)行”按鈕,就可以設(shè)計(jì)出相應(yīng)的FIR數(shù)字濾波器;右上方曲線為濾波器的幅頻響應(yīng)圖,右下方曲線為濾波器的相頻響應(yīng)圖。圖4為Kaiser型高通FIR數(shù)字濾波器在系統(tǒng)中的設(shè)計(jì)實(shí)現(xiàn),其他類型FIR數(shù)字濾波器設(shè)計(jì)界面與之類似。

3 數(shù)字濾波器的應(yīng)用設(shè)計(jì)
3.1數(shù)字濾波器在圖像處理中的應(yīng)用

    設(shè)圖像信號(hào)f(x,y)通過線性不變系統(tǒng)h(x,y)的結(jié)果是g(x,y),即g(x,y)=f(x,y)*h(x,y),根據(jù)卷積定理,在頻域上應(yīng)有G(u,v)=F(u,v)*H(u,v)。其中,G(u,v)、F(u,v)、H(u,v)分別是g(x,y)、f(x,y)和h(x,y)的傅里葉變換[6]。頻域增強(qiáng)的主要步驟是:(1)計(jì)算圖像的傅里葉變換;(2)將其與一個(gè)根據(jù)要求設(shè)計(jì)的轉(zhuǎn)移函數(shù)相乘; (3)再將其結(jié)果進(jìn)行傅里葉反變換得到增強(qiáng)的圖像。實(shí)際上,圖像的能量大部分集中在幅頻的低頻和中頻段,而圖像的邊緣和噪聲對(duì)應(yīng)于高頻部分。因此,數(shù)字濾波器在圖像處理中主要應(yīng)用于低通和高通濾波,低通濾波能降低高頻成分幅度,過濾噪聲,以減弱噪聲的影響,以增強(qiáng)圖像;而高通濾波使圖中各區(qū)域的邊界得到較顯著增強(qiáng)的同時(shí)濾掉了低頻分量,使圖中原來較平滑區(qū)域內(nèi)部的灰度動(dòng)態(tài)范圍被壓縮,因而整幅圖像變得比較昏暗,但圖像的輪廓卻十分明顯。
    數(shù)字濾波器在圖像處理中的應(yīng)用設(shè)計(jì)界面,可以根據(jù)需要在低通、高通濾波器之間選擇,然后調(diào)入要處理圖像,點(diǎn)擊“處理圖像”按鈕,即可看到圖像濾波效果。圖5為數(shù)字濾波器在圖像處理方向的低通應(yīng)用設(shè)計(jì)界面,右上圖為原始圖像,右下圖為加入了噪聲后的圖像,左下圖為經(jīng)過低通濾波后的圖像。從圖5可以看出,低通濾波器能有效地過濾圖像中的高頻加性噪聲,增強(qiáng)圖像。

 

 

3.2 數(shù)字濾波器在語音信號(hào)處理中的應(yīng)用
    在將數(shù)字濾波器用于語音信號(hào)處理時(shí),首先,Matlab中,用wavread函數(shù)對(duì)語音信號(hào)進(jìn)行采樣,記住采樣頻率和采樣點(diǎn)數(shù);然后用隨機(jī)函數(shù)(rand或randn)產(chǎn)生噪聲加入到語音信號(hào)中,模仿語音信號(hào)被污染,并對(duì)其進(jìn)行頻譜分析;再用所設(shè)計(jì)的各濾波器分別對(duì)加噪的語音信號(hào)進(jìn)行濾波,該模塊FIR濾波器默認(rèn)的設(shè)計(jì)方法為窗函數(shù)法,IIR濾波器默認(rèn)的設(shè)計(jì)方法為雙線性變換法;最后,用函數(shù)sound對(duì)聲音進(jìn)行回放,即可感覺濾波前后的聲音有所變化。
    數(shù)字濾波器在語音信號(hào)處理中的應(yīng)用設(shè)計(jì)界面如圖6所示,可以根據(jù)需要在窗函數(shù)法、雙線性變換法之間選擇一種設(shè)計(jì)方法,然后在低通、高通之間選擇一種濾波器類型,再調(diào)入要處理語音信號(hào),點(diǎn)擊相關(guān)功能按鈕,即可得到處理結(jié)果。圖6上部圖像為原語音信號(hào)的時(shí)域、頻域波形圖,中部圖像為加噪后的語音信號(hào)的時(shí)域、頻域波形圖,下部圖像為經(jīng)過低通濾波后的語音信號(hào)的時(shí)域、頻域波形圖。加噪后的語音信號(hào)回放時(shí)與原語音信號(hào)有明顯的不同,其伴隨較尖銳的干擾嘯叫聲。從加噪后的語音信號(hào)的頻譜圖中可以看出其頻譜在整個(gè)頻域范圍內(nèi)分布均勻,這正是干擾所造成的。通過濾波前后的對(duì)比,低通濾波后的效果最好,高通濾波后的效果最差。由此可見,語音信號(hào)主要分布在低頻,而噪聲主要分布在高頻。

    本文在數(shù)字濾波器設(shè)計(jì)理論的基礎(chǔ)上,設(shè)計(jì)了基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)及其在圖像和語音信號(hào)中應(yīng)用的軟件。在IIR數(shù)字濾波器的設(shè)計(jì)中,分別應(yīng)用了Butterworth型、ChebysheveⅠ型、ChebysheveⅡ型及橢圓型濾波器四種形式,可分別對(duì)低通、高通、帶通和帶阻4種濾波器形式進(jìn)行仿真;在FIR數(shù)字濾波器的設(shè)計(jì)中, 分別應(yīng)用了Boxcar型、Triang型、Bartlett型、Hanning型、 Hamming型、 Blackman型和Kaiser型濾波器,可分別對(duì)低通、高通、帶通和帶阻4種濾波器形式進(jìn)行仿真。可以在軟件界面上隨時(shí)選擇濾波器設(shè)計(jì)類型、修改濾波器設(shè)計(jì)參數(shù),得到其不同的仿真特性。數(shù)字濾波器在圖像處理的應(yīng)用設(shè)計(jì)中,可以根據(jù)需要在低通、高通濾波器之間選擇,然后調(diào)入要處理的圖像,點(diǎn)擊功能按鈕,即可看到圖像濾波效果。數(shù)字濾波器在語音信號(hào)處理的應(yīng)用設(shè)計(jì)中,可以根據(jù)需要在窗函數(shù)法、雙線性變換法之間選擇一種設(shè)計(jì)方法,然后在低通、高通之間選擇一種濾波器類型,再調(diào)入要處理語音信號(hào),點(diǎn)擊相關(guān)功能按鈕,即可得到處理結(jié)果。如何將該課題的研究與實(shí)際的數(shù)字濾波器設(shè)計(jì)及其應(yīng)用整合在一起, 使該軟件具有更大的實(shí)用價(jià)值,將是下一步面臨的重要工作。
參考文獻(xiàn)
[1] 賈建科,韓團(tuán)軍,朱寧洲.基于Matlab GUI的模擬帶通濾波器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,33(10):58-62.
[2] 李海濤,鄧櫻.Matlab程序設(shè)計(jì)教程[M].北京:高等教育出版社,2002.
[3] 施曉紅,周佳.精通GUI圖形界面編程[M]. 北京:北京大學(xué)出版社,2003.
[4] 唐向宏,岳恒立,鄭雪峰.Matlab及在電子信息類課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2009.
[5] 鄭君里, 應(yīng)啟珩, 楊為理. 信號(hào)與系統(tǒng)(下冊(cè))[M]. 2版.北京:高等教育出版社,2000.
[6] 胡廣書.數(shù)字信號(hào)處理[M].北京:清華大學(xué)出版社,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。