【正文】
基于 MATLAB 的 FIR 數字濾波器設計 摘要: 在數字信號處理的基本方法中,濾波是應用非常廣泛的一個環(huán)節(jié),數字濾波器的理論與相關設計也一直是人們研究的重點之一。其中 FIR數字濾波器是數字濾波器系統(tǒng)中常見的濾波器, FIR濾波器具有嚴格的相位特性,同時系統(tǒng)函數的極點加固定在原點上,因而是穩(wěn)定的。 MATLAB語言具有強大的圖形繪制功能,因此本論文在 MATLAB環(huán)境下,分別通過采用窗函數法、頻率抽樣設計法來設計 FIR數字濾波器。仿真結果表明,在 MATLAB環(huán)境下,可以根據要求的濾波器的特性 ,通過調整設計參數 ,最終達 到濾波器的最優(yōu)設計。 關鍵詞 :MATLAB;數字濾波器; FIR;窗函數;頻率抽樣 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 濾波器簡介 .............................................................................. 2 (一) FIR 濾波器的種類 ............................................................... 2 FIR 濾波器 ................................................... 2 芯片 FIR 濾波器 ........................................................... 2 FIR 濾波器 ............................................................... 2 (二) FIR 數字濾波器的特性 ...................................................... 3 三、 MATLAB 簡介 ................................................................................ 4 (一)基本功能 .............................................................................. 4 (二) MATLAB 語言中的幾個函數介紹 ..................................... 5 四、 FIR 濾波器的設計 .......................................................................... 6 (一)窗函數法 .............................................................................. 6 (二)用窗函數設計 FIR 濾波器 ................................................. 6 (三)頻率抽樣法 .......................................................................... 8 (四)利用頻率抽樣法設計 FIR 濾波器 .................................... 11 (五) FIR 濾波器的實現(xiàn) ............................................................. 12 ............................................................. 12 ................................................................. 14 (六) FIR 數字濾波器的 MATLAB 設計 .................................. 15 ............................................................................. 15 ............................................................................. 16 五、 FIR 數字濾波器的仿真實例 ......................................................... 17 六、結論 ............................................................................................... 20 七、參考文獻 ....................................................................................... 22 致謝 .......................................................................... 錯誤 !未定義書簽。 附錄 ....................................................................................................... 24 1 一、引言 隨著信息和數字技術的發(fā)展,數字信號已成為當今極其重要的學 科和技術領域之一。它在通信、語音、圖像、自動控制等眾多領域得到了廣泛的應用。在數字信號處理的基本方法中,濾波是應用非常廣泛的一個環(huán)節(jié),數字濾波器的理論與相關設計也一直是人們研究的重點之一。數字濾波器 (digital filter)是由數字乘法器、加法器和延時單元組成的一種裝置, 在通信、圖像、語音、雷達等許多領域都有著十分廣泛的應用。按所通過信號的頻段分為低通、高通、帶通和帶阻濾波器四種,根據數字濾波器沖激響應的時域特征,可將數字濾波器分為長沖激響應 (IIR)濾波器和有限長沖激響應 (FIR)濾波器兩種。其中FIR 濾波器具有嚴格的相位特性,同時系統(tǒng)函數的極點加固定在原點上,因而是穩(wěn)定的。 MATLAB 是第四代計算機語言,是目前公認的國際上最流行的科學與工程計算的軟件工具。強大的設計功能是 MATLAB 在濾波器設計更方便快捷。由于 MATLAB 具有強大運算功能,所以 MATLAB的數 字濾波器設計法可以快速有效的設計由軟件組成的常規(guī)的上述數字濾波器,其特點是設計方便、快捷,極大的減輕了工作量。 2 二、 FIR 濾波器簡介 FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,是數字信號處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩(wěn)定的系統(tǒng)。因此, FIR 濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。 (一) FIR 濾波器的種類 FIR 濾波器 使用單片通用數字濾波器集成電路,這種電路使用簡單,但是由于字長和階數的規(guī)格較少,不易完全滿足實際需要。雖然可采用多片擴展來滿足要求,但會增加體積和功耗,因而在實際應用中受到限制。 芯片 FIR 濾波器 使用 DSP 芯片。 DSP 芯片有專用的數字信號處理函數可調用,實現(xiàn) FIR 濾波器相對簡單,但是由于 程序順序執(zhí)行,速度受到限制。而且,就是同一公司的不同系統(tǒng)的 DSP 芯片,其編程指令也會有所不同,開發(fā)周期較長。 FIR 濾波器 使用可編 程邏輯器件, FPGA/ CPLD。 FPGA 有著規(guī)整的內部邏3 輯塊整列和豐富的連線資源,特別適合用于細粒度和高并行度結構的FIR 濾波器的實現(xiàn),相對于串行運算主導的通用 DSP 芯片來說,并行性和可擴展性都更好。 (二) FIR 數字濾波器的特性 有限長單位沖激響應 (FIR)濾波器的系統(tǒng)函數只有零點,除原點外,沒有極點,因而 FIR濾波器總是穩(wěn)定的。如果它的有限長單位沖激響應是非因果的,總能夠通過適當地移位得到因果的單位沖激響應,所以 FIR濾波器不存在穩(wěn)定性和是否可實現(xiàn)的問題。它的另一個突出的優(yōu)點是在滿足一定的對 稱條件下,可以實現(xiàn)嚴格的線性相位,這一點在 IIR數字濾波器中是難做到的。由于線性相位特性在工程實際中具有非常重要的意義,如在數據通信、圖像處理等應用領域,往往要求信號在傳輸和處理過程中不能有明顯的相位失真,因而線性相位的 FIR濾波器得到了廣泛應用。 4 三、 MATLAB 簡介 MATLAB 是矩陣實驗室( Matrix Laboratory)的簡稱,是美國MathWorks 公司出品的商業(yè)數學軟件,用于算法開發(fā)、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環(huán)境,主要包括MATLAB 和 Simulink 兩大部分。 (一)基本功能 MATLAB 是由美國 mathworks 公司發(fā)布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環(huán)境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設計語言(如 C、 Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。 MATLAB和 Mathematica、 Maple 并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。 MATLAB 可以進行矩陣運算、繪制函數和數據、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。 MATLAB 的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB 來解算問題要比用 C, FORTRAN 等語言完成相同的事情簡捷得多,并且 MATLAB也吸收了像 Maple 等軟件的優(yōu)點,使 MATLAB5 成為一個強大的數學軟件。在新 的版本中也加入了對 C, FORTRAN,C++, JAVA 的支持??梢灾苯诱{用,用戶也可以將自己編寫的實用程序導入到 MATLAB 函數庫中方便自己以后調用,此外許 MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用。 (二) MATLAB 語言中的幾個函數介紹 函數,利用該函數,在給定階數 N 后,可以運算出Butterworth 模擬濾波器原型,其傳輸函數為: ()[ (1 ) ] [ ( 2 ) ] [ ( ) ]a kHs s p s p s p n? ? ? ? (31) 函數,利用它實現(xiàn)雙線性變換,將 S 域變換