【正文】
數(shù)字濾波器的設(shè)計(jì)與仿真【摘 要】面對(duì)龐雜繁多的原始信號(hào), 如何提取所需信號(hào)、抑制不需要的信號(hào)這就需要使用濾波器。濾波器的作用主要是選擇所需頻帶的信號(hào)內(nèi)容而抑制不需要的其他頻帶的信號(hào)內(nèi)容。數(shù)字濾波器因其精度高、可靠性好、靈活性大等優(yōu)點(diǎn), 在語(yǔ)音信號(hào)處理、信號(hào)頻譜估計(jì)、信號(hào)去噪、無(wú)線通信中的數(shù)字變頻以及圖像處理等工程實(shí)際應(yīng)用中都很廣泛。根據(jù)其沖擊響應(yīng)函數(shù)的時(shí)域特性可將數(shù)字濾波器分為IIR(有限長(zhǎng)沖擊響應(yīng))和FIR(無(wú)限長(zhǎng)沖擊響應(yīng))。作為強(qiáng)大的計(jì)算軟件, MATLAB提供了編寫圖形用戶界面的功能。所謂圖形用戶界面, 簡(jiǎn)稱為GUI, 是由各種圖形對(duì)象, 如圖形窗口菜單按鈕、文本框等構(gòu)建的用戶界面。MATALB 可以創(chuàng)建圖形用戶界面GUI ( GraphicalUser Interface) ,它是用戶和計(jì)算機(jī)之間交流的工具。MATLAB 將所有GUl 支持的用戶控件都集成在這個(gè)環(huán)境中并提供界面外觀、屬性和行為響應(yīng)方式的設(shè)置方法,隨著版本的提高,這種能力還會(huì)不斷加強(qiáng)。而且具有強(qiáng)大的繪圖功能,可以輕松的獲得更高質(zhì)量的曲線圖。關(guān)鍵詞:MATLAB;GUI ;IIR;濾波器數(shù)字濾波器的設(shè)計(jì)與仿真Abstract Facing the huge range of original signal, how to extract the required signal 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 advantages, in the speech signal processing, signal spectrum estimation, signal denoising, the number of wireless munications in frequency as well as image processing and other projects are wide practical application. Impulse response functions in accordance with its timedomain characteristics can be divided 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 socalled graphical user interface, referred to as the GUI, by a variety of graphic object, such as the graphics 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 puter tools. MATLAB support for all users GUl controls are integrated in this environment and provide the interface appearance 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 higherquality curve.Keywords: MATLAB;GUI;IIR;filterMATLAB課程設(shè)計(jì)報(bào)告 基于MATLAB GUI的“濾波器設(shè)計(jì)軟件”設(shè)計(jì) 目 錄1 設(shè)計(jì)任務(wù) 12 MATLAB GUI的簡(jiǎn)介 23 濾波器設(shè)計(jì)原理 3 3 IIR數(shù)字濾波器 4 IIR數(shù)字濾波器設(shè)計(jì)原理 4 IIR濾波器設(shè)計(jì)思想 5 IIR濾波器設(shè)計(jì)編程實(shí)現(xiàn) 64 基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)思路及實(shí)現(xiàn) 124. 1 GUI界面設(shè)計(jì)概述 12 “濾波器設(shè)計(jì)軟件”設(shè)計(jì)所實(shí)現(xiàn)任務(wù) 14 基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)實(shí)現(xiàn) 16 “濾波器設(shè)計(jì)軟件”GUI界面設(shè)計(jì) 16 “濾波器設(shè)計(jì)軟件”回調(diào)函數(shù)編寫 17 22 運(yùn)行和結(jié)果顯示 285 設(shè)計(jì)總結(jié)和心得 33 設(shè)計(jì)總結(jié) 33 設(shè)計(jì)心得 34Abstract 35參考文獻(xiàn) 361設(shè)計(jì)任務(wù)1 設(shè)計(jì)目的 GUI設(shè)計(jì)工具應(yīng)用平面2 設(shè)計(jì)要求要求:“濾波器設(shè)計(jì)軟件”設(shè)計(jì)要有人機(jī)交互界面。濾波器設(shè)計(jì)的類型、參數(shù)均有多個(gè)值可供選擇。當(dāng)用戶選擇(或輸入)濾波器的參數(shù)時(shí),能夠及時(shí)顯示設(shè)計(jì)好的濾波器的頻譜。該軟件可設(shè)計(jì)FIR或IIR型濾波器至少一種。2 MATLAB GUI的簡(jiǎn)介 MATLAB 是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分?! ATLAB是矩陣實(shí)驗(yàn)室(Matrix Laboratory)的簡(jiǎn)稱,和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域?! ATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,F(xiàn)ORTRAN等語(yǔ)言完相同的事情簡(jiǎn)捷得多,并且mathwork也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++ ,JAVA的支持。可以直接調(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫(kù)中方便自己以后調(diào)用。 MATALB 可以創(chuàng)建圖形用戶界面GUI ( GraphicalUser Interface) ,它是用戶和計(jì)算機(jī)之間交流的工具。MATLAB 將所有GUl 支持的用戶控件都集成在這個(gè)環(huán)境中并提供界面外觀、屬性和行為響應(yīng)方式的設(shè)置方法,隨著版本的提高,這種能力還會(huì)不斷加強(qiáng)。而且具有強(qiáng)大的繪圖功能,可以輕松的獲得更高質(zhì)量的曲線圖。3 濾波器設(shè)計(jì)原理隨著信息時(shí)代和數(shù)字世界的到來(lái),數(shù)字信號(hào)處理已成為當(dāng)今一門極其重要的學(xué)科和技術(shù)領(lǐng)域。數(shù)字信號(hào)處理在通信、語(yǔ)音、圖像,自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。在數(shù)字信號(hào)處理中,數(shù)字濾波器占有極其重要的地位?,F(xiàn)代數(shù)字濾波器可以用軟件或設(shè)計(jì)專用的數(shù)字處理硬件兩種方式來(lái)實(shí)現(xiàn),用軟件來(lái)實(shí)現(xiàn)數(shù)字濾波器優(yōu)點(diǎn)是隨著濾波器參數(shù)的改變,很容易改變?yōu)V波器的性能。根據(jù)數(shù)字濾波器單脈沖響應(yīng)的時(shí)域特性可將數(shù)字濾波器分為兩種, 即IIR (Infinite Impulse Response)無(wú)限長(zhǎng)脈沖響應(yīng)數(shù)字濾波器和FIR (Finite Impulse Response)有限長(zhǎng)脈沖響應(yīng)數(shù)字濾波器。從功能上分類, 可分為低通、高通、帶通、帶阻濾波器。 IIR數(shù)字濾波器 IIR數(shù)字濾波器設(shè)計(jì)原理濾波器的設(shè)計(jì)質(zhì)上是尋找一個(gè)既能物理實(shí)現(xiàn),又能滿足給定頻率特性指標(biāo)要求的系統(tǒng)傳輸函數(shù)。IIR濾波器一般采用遞歸型的結(jié)構(gòu),系統(tǒng)的輸入與輸出服從N階差分方程: 相應(yīng)的傳輸函數(shù)為:設(shè)計(jì)IIR數(shù)字濾波器就是要確定傳輸函數(shù)中的系數(shù)、或零極點(diǎn)增益、A,使濾波器的頻率特性滿足給定的性能指標(biāo)要求。設(shè)計(jì)原理主要包括兩個(gè)方面:一是根據(jù)設(shè)計(jì)指標(biāo),先設(shè)計(jì)出相應(yīng)的模擬濾波器再通過(guò)脈沖響應(yīng)不變法或雙線性變換法轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字濾波器;二是選擇一種優(yōu)準(zhǔn)則,如最小均方準(zhǔn)則,再在, 先最誤差此準(zhǔn)則下求出濾波器傳輸函數(shù)的系數(shù)。根據(jù)設(shè)計(jì)理論,在MATLAB環(huán)境下設(shè)計(jì)IIR數(shù)字濾波器主要有四種方法:一是典型設(shè)計(jì)法;二是完全設(shè)計(jì)法;三是最優(yōu)設(shè)計(jì)法;四是工具設(shè)計(jì)法。由于完全設(shè)計(jì)法程序簡(jiǎn)單,我們?cè)谶@里利用完全設(shè)計(jì)法設(shè)計(jì)濾波器。所謂數(shù)字濾波器,是指輸入,輸出均為數(shù)字信號(hào),通過(guò)一定運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比例或者濾除某些頻率成分的硬件。 實(shí)質(zhì)上就是一個(gè)由有限精度算法實(shí)現(xiàn)的線性時(shí)不變離散系統(tǒng)。 它的基本工作原理是利用離散系統(tǒng)的特性對(duì)系統(tǒng)輸入信號(hào)進(jìn)行加工和變換, 改變輸入序列的頻譜或信號(hào)波形, 讓有用的頻率分量通過(guò), 抑制無(wú)用的信號(hào)分量輸出,根據(jù)其頻率特性同樣可以分為低通,高通,帶通,帶阻。如果要處理的信號(hào)是模擬信號(hào),就可以通過(guò) A/D 或者 D/A 轉(zhuǎn)換,在信號(hào)形式上進(jìn)行匹配轉(zhuǎn)換,同樣可以使用數(shù)字濾波器對(duì)模擬信號(hào)進(jìn)行濾波[1]。數(shù)字濾波器濾波的數(shù)學(xué)表達(dá)式: (11) 如果濾波器的輸入輸出信號(hào)都是離散信號(hào),那么該濾波器的脈沖響應(yīng)也一定是離散信號(hào),這樣的濾波器就成為了數(shù)字濾波器。其頻域特性為: (12) 其中分別是數(shù)字濾波器的輸出序列和輸入序列的頻域響應(yīng),是數(shù)字濾波器的頻域響應(yīng)。 可以看見(jiàn)按照輸入信號(hào)的頻譜特點(diǎn)和處理信號(hào)的目的適當(dāng)選擇濾波器的頻域響應(yīng), 使得濾波后的輸出信號(hào)滿足設(shè)計(jì)性能要求, 就是濾波器的濾波原理。 IIR數(shù)字濾波器傳輸特性 IIR 數(shù)字濾波器的系統(tǒng)函數(shù)可以表示為: (13) 式中H(Z)稱為N階 IIR 濾波器函數(shù),它是一種遞歸型的濾波器。 數(shù)字濾波器的技術(shù)要求 我們通常設(shè)計(jì)的數(shù)字濾波器一般屬于選頻濾波器, 我們的目的是要設(shè)計(jì)一個(gè)因果可實(shí)現(xiàn)的濾波器,另外買也要考慮到成本和復(fù)雜性問(wèn)題,因此實(shí)用中通帶和阻帶都允許一定的誤差容限,即通帶不一定是完全水平的,阻帶也不可能完全衰減到零[2]。而且,通帶和阻帶之間還要設(shè)置一定帶寬的過(guò)渡帶。如下圖表示低通濾波器的技術(shù)要求:圖 低通濾波器特性 low pass filter39。s characteristic圖中,分別表示通帶截止頻率和阻帶截止頻率,通帶頻率范圍為0≤ w≤ p w ,通帶中要求,阻帶截止頻率范圍 ,再阻帶中要求,從到 稱為過(guò)渡帶,在這個(gè)頻帶內(nèi),幅度響應(yīng)從通帶平滑的下落到阻帶。2 MATLAB簡(jiǎn)介 MATLAB 是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括 MATLAB 和SIMULINK兩大部分。 MATLAB 是矩陣實(shí)驗(yàn)室 (Matrix Laboratory) 的簡(jiǎn)稱, 和Mathematica、Maple 并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB 可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。 MATLAB 對(duì)許多專門的領(lǐng)域都開發(fā)了功能強(qiáng)大的模塊集和工具