歡迎您光臨本站 登入註冊首頁

概述

1引言   在現代通信系統中,由於信號中經常混有各種複雜成分,所以很多信號的處理和分析都是基於濾波器而進行的。但是,傳統的數字濾波器的設計使用繁瑣的公式計算,改變參數后需……

1 引言
    在現代通信系統中,由於信號中經常混有各種複雜成分,所以很多信號的處理和分析都是基於濾波器而進行的。但是,傳統的數字濾波器的設計使用繁瑣的公式計算,改變參數后需要重新計算,從而在設計濾波器尤其是高階濾波器時工作量很大。利用MATLAB信號處理箱(Signal Processing Toolbox)可以快速有效地實現數字濾波器的設計與模擬。

2 數字濾波器及傳統設計方法
    數字濾波器可以理解為是一個計算程序或演算法,將代表輸入信號的數字時間序列轉化為代表輸出信號的數字時間序列,並在轉化過程中,使信號按預定的形式變化。數字濾波器有多種分類,根據數字濾波器衝激響應的時域特徵,可將數字濾波器分為兩種,即無限長衝激響應(IIR)濾波器和有限長衝激響應(FIR)濾波器。
    IIR數字濾波器具有無限寬的衝激響應,與模擬濾波器相匹配,所以IIR濾波器的設計可以採取在模擬濾波器設計的基礎上進一步變換的方法。其設計方法主要有經典設計法、直接設計法和最大平滑濾波器設計法。FIR數字濾波器的單位脈衝響應是有限長序列。它的設計問題實質上是確定能滿足所要求的轉移序列或脈衝響應的常數問題,設計方法主要有窗函數法、頻率採樣法和等波紋最佳逼近法等。
    在對濾波器實際設計時,整個過程的運算量是很大的。設計階數較高的IIR濾波器時,計算量更大,設計過程中改變參數或濾波器類型時都要重新計算。
    設計完成後對已設計的濾波器的頻率響應要進行校核。要得到幅頻、相頻響應特性,運算量也是很大的。平時所要設計的數字濾波器,階數和類型並不一定是完全給定的,很多時候要根據設計要求和濾波效果不斷地調整,以達到設計的最優化。在這種情況下,濾波器設計就要進行大量複雜的運算,單純的靠公式計算和編製簡單的程序很難在短時間內完成。利用MATLAB強大的計算功能進行計算機輔助設計,可以快速有效地設計數字濾波器,大大地簡化了計算量。

3 IIR濾波器的MATLAB設計
3.1  FDATool界面設計
3.1.1 FDATool的介紹
    FDATool(Filter Design&Analysis Tool)是MATLAB信號處理工具箱里專用的濾波器設計分析工具,MATLAB 6.O以上的版本還專門增加了濾波器設計工具箱(Filter Design Toolbox)。FDATool可以設計幾乎所有的常規濾波器,包括FIR和IIR的各種設計方法。它操作簡單,方便靈活。
    FDATool。界面總共分兩大部分,一部分是Design Filter。在界面的下半部,用來設置濾波器的設計參數;另一部分則是特性區,在界面的上半部分,用來顯示濾波器的各種特性。Design Filter部分主要分為:Filter Type(濾波器類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的FIR濾波器。
   Design Method(設計方法)選項,包括IIR濾波器的Butterwotth(巴特沃思)法、Chebyshev  Type I(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函數)法。
  Filter Order(濾波器階數)選項,定義濾波器的階數,包括Specify Order(指定階數)和Minimum Order(最小階數)。在Specify Order中填入所要設計的濾波器的階數(N階濾波器,Specify Order=N-1)。如果選擇Minimum Order,則MATLAB根據所選擇的濾波器類型自動使用最小階數。
  Frequency Specifications選項,可以詳細定義頻帶的各參數,包括採樣頻率和頻帶的截止頻率。它的具體選項由Filter Type選項和Design Method選項決定。例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率)、Fpass1(通帶下限截止頻率)、Fpass2(通帶上限截止頻率)、Fstop2(上阻帶截止頻率),而Lowpass(低通)濾波器只需要定義Fstop1、Fpass1。採用窗函數設計濾波器時,由於過渡帶是由窗函數的類型和階數所決定,所以只需定義通帶截止頻率,而不必定義阻帶參數。
    Magnitude Specifications選項,可以定義幅值衰減的情況。例如設計帶通濾波器時,可以定義Wstop1(頻率Fstop1處的幅值衰減)、Wpass(通帶範圍內的幅值衰減)、Wstop2(頻率Fstop2處的幅值衰減)。當採用窗函數設計時,通帶截止頻率處的幅值衰減固定為6db,所以不必定義。
  Window Specifications選項,當選取採用窗函數設計,該選項可定義,它包含了各種窗函數。

3.1.2  IIR濾波器設計實例
    本文以一個IIR濾波器的設計為例說明如何使用MATLAB設計數字濾波器。要求設計一個10階的帶通Chebyshev I濾波器,它的通帶範圍是100到200Hz,採樣頻率為1000Hz,Rp=0.5。
    本例中,首先在Filter Type中選擇Bandpass(帶通濾波器);在Design Method選項中選擇IIR,接著在相鄰的右則選項中選擇Chebyshev I(切比雪夫I型);指定Filter Order項中的Specify Order=10;由於採用的是切比雪夫設計,不必在Options中選擇;然後在Frequency Specifications中選擇Unit為Hz,給出採樣頻率Fs=1000,通帶Fpass1=100和Fpass2=200;最後在Magnitude Specifications中選擇Unit為db,Apass=0.5。設置完成後
點擊Design Filter即可得到所設計的IIR濾波器。通過菜單選項Analysis可以在特性區看到所設計的幅頻響應、相頻響應、衝擊響應和零極點配置等特性,如圖1所示。設計完成後將結果保存為filterl.fda文件。
 
 
 
圖1濾波器的幅頻、相頻和衝激響應(特性區)

3.2  程序設計法
  在MATLAB中,對各種濾波器的設計都有相應的計算振幅、相位和衝激響應的函數,可以用來做濾波器程序設計。
  上例的IIR濾波器的衝激響應可用程序設計如下:
%ehebyshevl bpf
n=10;    %階數為10
Rp=0.5;  %幅值衰減為0.5
Wn[100 200]/500;
[b,a]=chebyl(n,Rp,wn);
[y,t]impz(b,a,101);
stem(t,y,'.');
    在MATLAB環境下運行該程序即可得到濾波器的時域衝激響應。由於篇幅所限,這裡不再詳述源程序。

3.3設計實例分析
   由圖1(a)可知,這種濾波器在100-200Hz的通帶範圍內是等波紋的,而在阻帶中是單調的,這是Chebyshev I濾波器的幅頻特性。由圖1(b)可知,在100-200Hz的範圍內相移較小,其曲線近似一條直線,失真較小;當頻率超過這一範圍時,相移較大,而且其曲線是非直線的,所以失真也較大。圖1(c)得到了Chebyshev  I濾波器的時域衝激響應,在5ms-100ms有衝激響應,超過這一範圍的衝激響應近似為零,進而實現了Chebyshev I帶通
濾波器的設計。

4 Simulink模擬
4.1 Simulink模擬實例
    通過調用Simulink中的功能模塊,可以構成數字濾波器的模擬框圖。在模擬過程中,雙擊各功能模塊,隨時改變參數,獲得不同狀態下的模擬結果。例如原始信號x(t)=2sin(0.05wt)+w(t),w(t)為隨機信號,幅值為0.2,通過一傳遞函數為H(z)=0.15/(1-0.8z-1)的濾波器可得到如圖2的模擬結果。其中模擬過程中可導入FDATool所設計的濾波器文件。
 
 

4.2  模擬分析
    比較圖2中(b)和(c)的波形可知,輸入的原始信號經過濾波器濾波后,(b)中波形的毛刺部分(即干擾雜訊)被濾除,輸出的信號更接近正弦波,如(c)中所示波形。由此說明,傳遞函數為H(z)=0.15/(1-0.8z-1)的濾波器的設計是恰當的。

5 結論
    利用MATLAB的強大運算功能,基於MATLAB的信號處理工具箱(Signal Processing Toolbox)的數字濾波器設計法可以快速有效地設計由軟體組成的常規數字濾波器,設計方便、快捷,大大減輕了工作量。在設計過程中可以對比濾波器特性。隨時更改參數,以達到濾波器設計的最優化。利用MATLAB設計數字濾波器在數字通信系統和計算機領域信號處理中,有著廣泛的應用前景。


[admin via 研發互助社區 ] 基於MATLAB在IIR濾波器的設計與模擬已經有7096次圍觀

http://cocdig.com/docs/show-post-43122.html