【正文】
基于 MATLAB 的 FIR 數(shù)字濾波器設(shè)計(jì) 摘要: 在數(shù)字信號(hào)處理的基本方法中,濾波是應(yīng)用非常廣泛的一個(gè)環(huán)節(jié),數(shù)字濾波器的理論與相關(guān)設(shè)計(jì)也一直是人們研究的重點(diǎn)之一。其中 FIR數(shù)字濾波器是數(shù)字濾波器系統(tǒng)中常見(jiàn)的濾波器, FIR濾波器具有嚴(yán)格的相位特性,同時(shí)系統(tǒng)函數(shù)的極點(diǎn)加固定在原點(diǎn)上,因而是穩(wěn)定的。 MATLAB語(yǔ)言具有強(qiáng)大的圖形繪制功能,因此本論文在 MATLAB環(huán)境下,分別通過(guò)采用窗函數(shù)法、頻率抽樣設(shè)計(jì)法來(lái)設(shè)計(jì) FIR數(shù)字濾波器。仿真結(jié)果表明,在 MATLAB環(huán)境下,可以根據(jù)要求的濾波器的特性 ,通過(guò)調(diào)整設(shè)計(jì)參數(shù) ,最終達(dá) 到濾波器的最優(yōu)設(shè)計(jì)。 關(guān)鍵詞 :MATLAB;數(shù)字濾波器; FIR;窗函數(shù);頻率抽樣 The Design and Simulation of Fir Digital Filter Based On MATLAB Abstract: in digital signal processing in the basic method, filter is very extensive a link, digital filters theory and related design also has always been one of the key research. Including FIR digital filters is digital filter system in mon filter, FIR filter has strict phase characteristic, and the system function in the original point with fixed pole, is stable. MATLAB language has powerful graphics drawing function, therefore this paper respectively in MATLAB environment, by using window function method, frequency sampling design method to design FIR digital filters. The simulation results indicate that the MATLAB environment, can according to requirements of the filter by adjusting the characteristics, design parameters, and finally reach the optimal design of the filter. Keywords: MATLAB; digital; filter; FIR; Window Function; Frequency sampling 目 錄 一、引言 ................................................................................................. 1 二、 FIR 濾波器簡(jiǎn)介 .............................................................................. 2 (一) FIR 濾波器的種類(lèi) ............................................................... 2 FIR 濾波器 ................................................... 2 芯片 FIR 濾波器 ........................................................... 2 FIR 濾波器 ............................................................... 2 (二) FIR 數(shù)字濾波器的特性 ...................................................... 3 三、 MATLAB 簡(jiǎn)介 ................................................................................ 4 (一)基本功能 .............................................................................. 4 (二) MATLAB 語(yǔ)言中的幾個(gè)函數(shù)介紹 ..................................... 5 四、 FIR 濾波器的設(shè)計(jì) .......................................................................... 6 (一)窗函數(shù)法 .............................................................................. 6 (二)用窗函數(shù)設(shè)計(jì) FIR 濾波器 ................................................. 6 (三)頻率抽樣法 .......................................................................... 8 (四)利用頻率抽樣法設(shè)計(jì) FIR 濾波器 .................................... 11 (五) FIR 濾波器的實(shí)現(xiàn) ............................................................. 12 ............................................................. 12 ................................................................. 14 (六) FIR 數(shù)字濾波器的 MATLAB 設(shè)計(jì) .................................. 15 ............................................................................. 15 ............................................................................. 16 五、 FIR 數(shù)字濾波器的仿真實(shí)例 ......................................................... 17 六、結(jié)論 ............................................................................................... 20 七、參考文獻(xiàn) ....................................................................................... 22 致謝 .......................................................................... 錯(cuò)誤 !未定義書(shū)簽。 附錄 ....................................................................................................... 24 1 一、引言 隨著信息和數(shù)字技術(shù)的發(fā)展,數(shù)字信號(hào)已成為當(dāng)今極其重要的學(xué) 科和技術(shù)領(lǐng)域之一。它在通信、語(yǔ)音、圖像、自動(dòng)控制等眾多領(lǐng)域得到了廣泛的應(yīng)用。在數(shù)字信號(hào)處理的基本方法中,濾波是應(yīng)用非常廣泛的一個(gè)環(huán)節(jié),數(shù)字濾波器的理論與相關(guān)設(shè)計(jì)也一直是人們研究的重點(diǎn)之一。數(shù)字濾波器 (digital filter)是由數(shù)字乘法器、加法器和延時(shí)單元組成的一種裝置, 在通信、圖像、語(yǔ)音、雷達(dá)等許多領(lǐng)域都有著十分廣泛的應(yīng)用。按所通過(guò)信號(hào)的頻段分為低通、高通、帶通和帶阻濾波器四種,根據(jù)數(shù)字濾波器沖激響應(yīng)的時(shí)域特征,可將數(shù)字濾波器分為長(zhǎng)沖激響應(yīng) (IIR)濾波器和有限長(zhǎng)沖激響應(yīng) (FIR)濾波器兩種。其中FIR 濾波器具有嚴(yán)格的相位特性,同時(shí)系統(tǒng)函數(shù)的極點(diǎn)加固定在原點(diǎn)上,因而是穩(wěn)定的。 MATLAB 是第四代計(jì)算機(jī)語(yǔ)言,是目前公認(rèn)的國(guó)際上最流行的科學(xué)與工程計(jì)算的軟件工具。強(qiáng)大的設(shè)計(jì)功能是 MATLAB 在濾波器設(shè)計(jì)更方便快捷。由于 MATLAB 具有強(qiáng)大運(yùn)算功能,所以 MATLAB的數(shù) 字濾波器設(shè)計(jì)法可以快速有效的設(shè)計(jì)由軟件組成的常規(guī)的上述數(shù)字濾波器,其特點(diǎn)是設(shè)計(jì)方便、快捷,極大的減輕了工作量。 2 二、 FIR 濾波器簡(jiǎn)介 FIR(Finite Impulse Response)濾波器:有限長(zhǎng)單位沖激響應(yīng)濾波器,是數(shù)字信號(hào)處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時(shí)具有嚴(yán)格的線性相頻特性,同時(shí)其單位抽樣響應(yīng)是有限長(zhǎng)的,因而濾波器是穩(wěn)定的系統(tǒng)。因此, FIR 濾波器在通信、圖像處理、模式識(shí)別等領(lǐng)域都有著廣泛的應(yīng)用。 (一) FIR 濾波器的種類(lèi) FIR 濾波器 使用單片通用數(shù)字濾波器集成電路,這種電路使用簡(jiǎn)單,但是由于字長(zhǎng)和階數(shù)的規(guī)格較少,不易完全滿足實(shí)際需要。雖然可采用多片擴(kuò)展來(lái)滿足要求,但會(huì)增加體積和功耗,因而在實(shí)際應(yīng)用中受到限制。 芯片 FIR 濾波器 使用 DSP 芯片。 DSP 芯片有專(zhuān)用的數(shù)字信號(hào)處理函數(shù)可調(diào)用,實(shí)現(xiàn) FIR 濾波器相對(duì)簡(jiǎn)單,但是由于 程序順序執(zhí)行,速度受到限制。而且,就是同一公司的不同系統(tǒng)的 DSP 芯片,其編程指令也會(huì)有所不同,開(kāi)發(fā)周期較長(zhǎng)。 FIR 濾波器 使用可編 程邏輯器件, FPGA/ CPLD。 FPGA 有著規(guī)整的內(nèi)部邏3 輯塊整列和豐富的連線資源,特別適合用于細(xì)粒度和高并行度結(jié)構(gòu)的FIR 濾波器的實(shí)現(xiàn),相對(duì)于串行運(yùn)算主導(dǎo)的通用 DSP 芯片來(lái)說(shuō),并行性和可擴(kuò)展性都更好。 (二) FIR 數(shù)字濾波器的特性 有限長(zhǎng)單位沖激響應(yīng) (FIR)濾波器的系統(tǒng)函數(shù)只有零點(diǎn),除原點(diǎn)外,沒(méi)有極點(diǎn),因而 FIR濾波器總是穩(wěn)定的。如果它的有限長(zhǎng)單位沖激響應(yīng)是非因果的,總能夠通過(guò)適當(dāng)?shù)匾莆坏玫揭蚬膯挝粵_激響應(yīng),所以 FIR濾波器不存在穩(wěn)定性和是否可實(shí)現(xiàn)的問(wèn)題。它的另一個(gè)突出的優(yōu)點(diǎn)是在滿足一定的對(duì) 稱(chēng)條件下,可以實(shí)現(xiàn)嚴(yán)格的線性相位,這一點(diǎn)在 IIR數(shù)字濾波器中是難做到的。由于線性相位特性在工程實(shí)際中具有非常重要的意義,如在數(shù)據(jù)通信、圖像處理等應(yīng)用領(lǐng)域,往往要求信號(hào)在傳輸和處理過(guò)程中不能有明顯的相位失真,因而線性相位的 FIR濾波器得到了廣泛應(yīng)用。 4 三、 MATLAB 簡(jiǎn)介 MATLAB 是矩陣實(shí)驗(yàn)室( Matrix Laboratory)的簡(jiǎn)稱(chēng),是美國(guó)MathWorks 公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,主要包括MATLAB 和 Simulink 兩大部分。 (一)基本功能 MATLAB 是由美國(guó) mathworks 公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如 C、 Fortran)的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。 MATLAB和 Mathematica、 Maple 并稱(chēng)為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類(lèi)科技應(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 的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB 來(lái)解算問(wèn)題要比用 C, FORTRAN 等語(yǔ)言完成相同的事情簡(jiǎn)捷得多,并且 MATLAB也吸收了像 Maple 等軟件的優(yōu)點(diǎn),使 MATLAB5 成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新 的版本中也加入了對(duì) C, FORTRAN,C++, JAVA 的支持??梢灾苯诱{(diào)用,用戶也可以將自己編寫(xiě)的實(shí)用程序?qū)氲?MATLAB 函數(shù)庫(kù)中方便自己以后調(diào)用,此外許 MATLAB愛(ài)好者都編寫(xiě)了一些經(jīng)典的程序,用戶可以直接進(jìn)行下載就可以用。 (二) MATLAB 語(yǔ)言中的幾個(gè)函數(shù)介紹 函數(shù),利用該函數(shù),在給定階數(shù) N 后,可以運(yùn)算出Butterworth 模擬濾波器原型,其傳輸函數(shù)為: ()[ (1 ) ] [ ( 2 ) ] [ ( ) ]a kHs s p s p s p n? ? ? ? (31) 函數(shù),利用它實(shí)現(xiàn)雙線性變換,將 S 域變換