基于Matlab的IIR濾波器的設計與仿真_第1頁
基于Matlab的IIR濾波器的設計與仿真_第2頁
基于Matlab的IIR濾波器的設計與仿真_第3頁
基于Matlab的IIR濾波器的設計與仿真_第4頁
基于Matlab的IIR濾波器的設計與仿真_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西南科技大學|通信工程|專業(yè)方向設計 基于Matlab的IIR濾波器的設計與仿真 第17 頁,共 17 頁西南科技大學專業(yè)方向設計報告課程名稱: 通信工程專業(yè)方向設計 設計名稱: 基于Matlab的IIR濾波器的設計與仿真 姓 名: 周書華 學 號: 20096131 班 級: 通信工程0903班 指導教師: 張紅英 起止日期: 2012/11/222012/12/14 西南科技大學信息工程學院制方 向 設 計 任 務 書學生班級: 通信工程0903班 學生姓名: 周書華 學號: 20096131 設計名稱: 基于Matlab的IIR濾波器的設計與仿真 起止日期: 2012/11/222012

2、/12/14 指導教師: 張紅英 設計要求:1) 了解無限沖激響應IIR濾波器的傳統(tǒng)設計與方法;2) 了解Matlab信號處理箱。掌握FDATool專用濾波器設計分析工具;3) 利用Matlab設計一個10階的帶通Chebyshev I型濾波器,其通帶范圍是100到200Hz,采樣頻率為1000Hz,幅值衰減Rp=0.5,畫出其幅頻、相頻和沖激響應;(自編Matlab程序和利用FDATool工具箱實現(xiàn))方 向 設 計 學 生 日 志時間設計內容2012/11/22-2012/11/29學習數(shù)字信號處理教程,特別是關于IIR數(shù)字濾波器的部分2012/11/30-2012/12/08學習MATLA

3、B應用軟件,特別是其信號處理箱和Simuink2012/12/09-2012/12/10分析IIR數(shù)字濾波器的傳統(tǒng)設計方法2012/12/11分別在MATLAB中編程設計和利用FDATool來設計IIR濾波器2012/12/12對設計的IIR進行仿真并分析2012/12/13完成專業(yè)設計報告的撰寫2012/12/14答辯基于Matlab的IIR濾波器的設計與仿真一、 摘要傳統(tǒng)的數(shù)字濾波器設計計算繁瑣,尤其是設計高階濾波器時工作量大,利用Matlab可以快速有效地實現(xiàn)數(shù)字濾波器的設計與仿真。本文介紹了IIR數(shù)字濾波器的傳統(tǒng)設計思想和步驟,同時也介紹了利用MATLAB對IIR數(shù)字濾波器進行設計的方

4、法、設計的操作步驟以及對設計的濾波器的仿真。二、 設計目的和意義1、 通過此次專業(yè)方向設計,了解無限沖激響應IIR濾波器的傳統(tǒng)設計方法;2、 了解Matlab信號處理箱并掌握FDATool專用濾波器設計分析工具;3、 學習如何使用Matlab,學會用Matlab解決實際問題。三、 設計原理數(shù)字濾波器,是具有一定傳輸選擇特性的數(shù)字信號處理裝置,其輸入和輸出均為數(shù)字信號,實質上是一個由有限精度算法實現(xiàn)的線性時不變離散系統(tǒng)??梢园阉斫鉃槭且粋€計算程序或算法,它把代表輸入信號的數(shù)字時間序列轉化為代表輸出信號的數(shù)字時間序列,并在轉化過程中,使信號按照預定的形式變化。數(shù)字濾波器有多種分類,從數(shù)字濾波器功

5、能上分可分為低通、高通、帶阻、帶通濾波器,根據(jù)數(shù)字濾波器沖激響應的時域特征,可將數(shù)字濾波器分為兩種,即無限長沖激響應濾波器(IIR)和有限長沖激響應濾波器(FIR)。1、 無限沖激響應IIR濾波器及其傳統(tǒng)設計方法IIR濾波器的有理系統(tǒng)函數(shù)為: Hz=Y(z)X(z) (1)表示這一系統(tǒng)輸入輸出關系的N階差分方程為: yn=k=1Naky(n-k)+k=0Mbkx(n-k) (2)對照模擬濾波器的傳遞函數(shù): Hs=bmsm+bm-1sm-1+b0ansn+an-1sn-1+a0 (3)不難看出,IIR數(shù)字濾波器具有無限寬的沖激響應,與模擬濾波器相匹配。模擬濾波器的設計在理論上已十分成熟,所以II

6、R濾波器的設計可以采取在模擬濾波器設計的基礎上進一步變換的思路。根據(jù)以上思路,首先設計一個模擬原型濾波器(截止頻率為1rad/s的低通濾波器),然后在模擬域(S平面)進行頻率變換,將模擬原形濾波器轉換成所需類型(指定截止頻率的低通、高通、帶通、帶阻)的模擬濾波器,再將其數(shù)字離散化,從S平面映射至Z平面,得到所需技術指標的數(shù)字濾波器。(也可先將模擬原型離散化,得到數(shù)字原型濾波器,繼而在數(shù)字域(Z平面)進行頻率變換,得到所需類型的數(shù)字濾波器。)模擬濾波器到數(shù)字濾波器的轉換可在時域進行也可在頻域實現(xiàn),時域轉換的關鍵是要使數(shù)字濾波器與模擬濾波器時域響應的采樣值相等,以保持其瞬態(tài)特性不變,常用的是沖激響

7、應不變法。 頻域變換法必須使得數(shù)字濾波器在-nn范圍內的幅頻特性與模擬濾波器在-n/Tn/T 范圍內的幅頻特性一致,即保證s平面與z平面上幅頻特性的一一單值對應關系,常用的是脈沖響應不變法和雙線性變換法。IIR濾波器的傳統(tǒng)設計方法思路清晰,步驟詳盡,可參閱公式、手冊循章而行。但其計算非常繁瑣,設計過程中要改變參數(shù)和濾波器類型時都要重新計算。它需要反復的實驗,需要設計者憑借經(jīng)驗設定參數(shù),很多時候要根據(jù)設計要求和濾波效果不斷調整,以達到設計的最優(yōu)化。在這種情況下,單純的靠公式計算和編制簡單的程序很難在短時間內完成。2、 IIR濾波器的Matlab設計圖1 Matlab 2012a 主界面Matla

8、b是 MATHWORK公司推出的一套面向科學和數(shù)值計算的可視化語言,它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,是一個高度集成系統(tǒng)具有友好的用戶界面和良好的幫助功能。 Matlab自帶的信號處理工具箱(Signal Processing Toolbox)具有強大的信號處理和分析功能,利用Matlab軟件優(yōu)越的數(shù)字分析及仿真功能,對理解數(shù)字濾波器及數(shù)字濾波具有一定參考價值。Matlab的信號處理工具箱中,提供了一整套模擬、數(shù)字濾波器的設計命令和運算函數(shù),方便準確,簡單易行,使得設計人員除了可按上述傳統(tǒng)設計步驟快速地進行較復雜高階選頻濾波器的計算、分析外,還可通過原型變換法直接進行各種典型數(shù)

9、字濾波器設計,即應用Matlab設計工具從模擬原型直接變換成滿足原定頻域指標要求的數(shù)字濾波器。Matlab有兩種途徑來設計IIR數(shù)字濾波器,分別為FDATool界面設計和直接程序設計。1) FDATool界面設計FDATool是Matlab信號處理工具箱里專用的濾波器設計分析工具,其界面為濾波器的設計提供了一個交互式的設計環(huán)境,用戶進行參數(shù)設置后,可以設計幾乎所有的基本常規(guī)濾波器,包括IIR和FIR 的各種設計方法,操作簡單,方便靈活。FDATool界面總共分兩大部分,一部分是Design Filter,在界面的下半部,用來設置濾波器的設計參數(shù);另一部分則是特性區(qū),在界面的上半部分,用來顯示濾

10、波器的各種特性。圖2 FDATool界面Design Filter部分主要分為:A、 Response Type(濾波器類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的FIR濾波器。B、 Design Method(設計方法)選項,包括IIR濾波器的Butterwotth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法、Window(

11、窗函數(shù))法;C、 Filter Order(濾波器階數(shù))選項,定義濾波器的階數(shù),包括Specify Order(指定階數(shù))和Minimum Order(最小階數(shù))。在Specify Order中填入所要設計的濾波器的階數(shù)(N階濾波器,Specify Order=N-1)。如果選擇Minimum Order,則MATLAB根據(jù)所選擇的濾波器類型自動使用最小階數(shù);D、 Frequency Specifications選項,可以詳細定義頻帶的各參數(shù),包括采樣頻率和頻帶的截止頻率。它的具體選項由Filter Type選項和Design Method選項決定。例如Bandpass(帶通)濾波器需要定義F

12、stop1(下阻帶截止頻率)、Fpass1(通帶下限截止頻率)、Fpass2(通帶上限截止頻率)、Fstop2(上阻帶截止頻率),而Lowpass(低通)濾波器只需要定義Fstop1、Fpass1。采用窗函數(shù)設計濾波器時,由于過渡帶是由窗函數(shù)的類型和階數(shù)所決定,所以只需定義通帶截止頻率,而不必定義阻帶參數(shù)。E、 Magnitude Specifications選項,可以定義幅值衰減的情況。例如設計帶通濾波器時,可以定義Wstop1(頻率Fstop1處的幅值衰減)、Wpass(通帶范圍內的幅值衰減)、Wstop2(頻率Fstop2處的幅值衰減)。當采用窗函數(shù)設計時,通帶截止頻率處的幅值衰減固定為

13、6db,所以不必定義。2) 直接程序設計在Matlab中,對各種濾波器的設計都有相應的函數(shù),可以用來做濾波器程序設計。比如,估計IIR數(shù)字濾波器的階數(shù)N,相應的M文件為:buttord用于巴特沃斯濾波器,cheb1ord用于切比雪夫1型濾波器,cheb2ord用于切比雪夫2型濾波器,ellipord用于橢圓濾波器。對于基于雙線性變換法的IIR濾波器設計,對應于四種逼近技術,相應的M文件為:butter用于巴特沃斯濾波器的設計,cheby1用于切比雪夫1型濾波器的設計,cheby2用于切比雪夫2型濾波器的設計,ellip用于橢圓濾波器的設計。同時,利用zp2tf可以由濾波器的零極點向量和標量增益

14、因子得到傳輸函數(shù)分子和分母的系數(shù)向量。利用函數(shù)zp2sos可以得到傳輸函數(shù)分子和分母系數(shù)向量的二次項因子。計算出傳輸函數(shù)的系數(shù)之后,可以利用M文件freqz來計算頻率響應,可以利用impz來計算沖激響應。由于本設計,已經(jīng)明確了要設計一個10階的帶通Chebyshev I型濾波器,注重介紹一下cheby1函數(shù)。利用b,a=cheby1(n,Rp,Wn,ftype)可以設計出階數(shù)為n、截止頻率為Wn、帶通波紋最大衰減為Rp的數(shù)字低通濾波器。其中參數(shù)ftype 的形式?jīng)Q定了濾波器的形式,當它為high 時得到濾波器為n階的、截止頻率為Wn的高通濾波器。若Wn是一個含有兩個元素向量w1 w2,則che

15、by1函數(shù)返回值是階數(shù)為2n的帶通濾波器的系統(tǒng)函數(shù)有理多項式的系數(shù),通帶范圍是w1Ww2。3、 Simulink仿真Simulink是Matlab最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統(tǒng)。Simulink具有適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點,并基于以上優(yōu)點Simulink已被廣泛應用于控制理論和數(shù)字信號處理的復雜仿真和設計。同時有大量的第三方軟件和硬件可應用于或被要求應用于Simulink。圖3 Simulink Library Browser界面Sim

16、ulink Library Browser(模型庫瀏覽器),里面有大量的功能模塊,比如示波器、加法器、離散正弦信號源等。而這些功能模塊,都可以編輯其參數(shù)。仿真界面,新建立一個model ,就可以進入仿真界面??梢园裇imulink Library Browser里面的功能模塊拖動到model中,也可以在FDATool濾波器設計界面把設計好的濾波器導入到model中,然后對仿真框圖進行編輯,仿真。IIR濾波器仿真步驟:打開Simulink Library Browser;新建一個model;在Simulink Library Browser中找到DSP離散正弦信號源、加法器以及示波器并拖到mod

17、el中;再在FDATool界面把設計好的IIR濾波器導入到model中;在model中編輯仿真框圖;在DSP離散信號模塊中設定相關參數(shù);最后進行仿真。通過設定相關參數(shù),觀察仿真中的示波器的波形等,就可以分析出設計的IIR濾波器是否達到要求。圖4 Simulink 的model仿真界面四、 詳細設計步驟本專業(yè)方向設計,要求分別自編Matlab程序和利用FDATool工具箱設計一個10階的帶通Chebyshev I型濾波器,其通帶范圍是100到200Hz,采樣頻率為1000Hz,幅值衰減Rp=0.5。并畫出其幅頻、相頻和沖激響應。1、 自編Matlab程序進行設計1) 在MATLAB環(huán)境下運行該程

18、序即可得到設計的IIR濾波器的時域沖激響應。n=5; %階數(shù)為10Rp=0.5; %幅值衰減為0.5Wn=100 200/500; %頻率縮放因子Wnb,a=cheby1(n,Rp,Wn); %返回H(z)的分子分母系數(shù)y,t=impz(b,a,101); %沖激響應stem(t,y,.); grid;xlabel(Time(mseconds); ylabel(Amplitude); title(Impulse Response);2) 在MATLAB環(huán)境下運行該程序即可得到設計的IIR濾波器的幅頻和相頻。n=5; %階數(shù)為10Rp=0.5; %幅值衰減為0.5Wn=100 200/500;

19、%頻率縮放因子Wnb,a=cheby1(n,Rp,Wn); %返回H(z)的分子分母系數(shù)freqz(b,a,512,1000); %頻率響應2、 利用FDATool進行設計1) 打開FDATool面板在Matlab主界面:點擊左下角“Start”選項點擊彈出界面的“Toolboxes”選項點擊彈出界面“DSP System”選項點擊彈出界面“Filter Design&Analysis Tool(fdatool)”選項。通過以上步驟,便打開了FDATool界面。圖5 如何打開FDATool界面2) 在FDATool界面中設計并保存IIR濾波器在Filter Type中選擇Bandpass(帶通

20、濾波器);在Design Method選項中選擇IIR,在相鄰的右則選項中選擇Chebyshev I(切比雪夫I型);指定Filter Order項中的Specify Order=10;在Frequency Specifications中選擇Unit為Hz,采樣頻率Fs=1000,通帶Fpass1=100和Fpass2=200;在Magnitude Specifications中選擇Unit為db,Apass=0.5。點擊Design Filter即可得到所設計的IIR濾波器。通過菜單選項Analysis可以在特性區(qū)看到所設計的幅頻響應、相頻響應和沖擊響應等特性。完成以上步驟,點擊保存濾波器,

21、保存名字為IIR_100_200.fda。3、 仿真本文通過調用Simuink中的功能模塊構成數(shù)字濾波器的仿真框圖,在仿真過程中,可以雙擊各功能模塊,隨時改變參數(shù),獲得不同狀態(tài)下的仿真結果。1) 搭建仿真圖a、 新建一個model在Matlab主界面新建一個model,并保存為IIRmodel.mdl;b、 打開Simulink Library Browser在model界面的工具欄有Library Browser的圖標;c、 在Simulink Library Browser中尋找器件并拖動到model仿真圖需要一個scope(Simulink/Sinks/scope 示波器),兩個Sine

22、 Wave(Simulink /Sources/Sine Wave DSP離散正弦信號源),一個Add(Sinulink/Math Operations/Add 加法器);d、 把設計好的濾波器導入到model中FDATool界面中“File”“Export to Simulink Model”“Realize Model”;e、 修改示波器scope為同時可以測試四個信號雙擊model中的scope,在彈出界面點擊設置按鈕并編輯scope的參數(shù)“Number of axes”為4;f、 按照圖6連接各個功能模塊。圖6 IIR數(shù)字濾波器仿真框圖2) 改變參數(shù)分別改變SineWave、SineW

23、ave1的參數(shù),以用不同的信號測試所設計的濾波器的濾波效果。假定,信號s1=sin(pi*0.1*n);s2=sin(pi*0.2*n);s=s1+s3;即s為含有2個頻率成分的信號(歸一化頻率(w/2)分別為0.05、0.1)??捎么诵盘杹碛盟O計的濾波器濾除歸一化頻率為0.05的成分,以此檢測濾波器的濾波效果。則需要改變參數(shù)如下:a、 修改仿真配置參數(shù)Configuration Parameter點擊菜單中的Simulation 并打開Configuration Parameter,在彈出界面中更改仿真時間Simulation time為0.0到1000.0;b、 器件SineWave雙擊

24、SineWave,在彈出界面中,修改參數(shù)sine type為time based,修改frequency為0.2*pi,sample time改為1;c、 器件SineWave雙擊SineWave1,在彈出界面中,修改參數(shù)sine type為time based,修改frequency為0.6*pi,sample time改為1;3) 仿真 改變參數(shù)繼續(xù)仿真 所有環(huán)節(jié)都布置完成后,點擊model中工具start simulation的圖標進行仿真。根據(jù)仿真,查看scope示波器中的波形,分析仿真結果,并再次改變輸入信號,改變SineWave、SineWave1的參數(shù),再次進行仿真,分析直到了解

25、了設計的IIR濾波器的濾波效果為止。五、 設計結果及分析1、 自編Matlab程序設計結果運行程序,得到設計的IIR濾波器的相頻、幅頻以及沖擊響應如下:圖7 IIR數(shù)字濾波器(自編程設計)的沖激響應圖8 IIR數(shù)字濾波器(自編程設計)的幅頻(上)、相頻(下)2、 FDATool界面設計結果在FDATool界面,按照要求對IIR濾波器設計完成后,點擊菜單選項Analysis下Impulse Response選項,得到IIR濾波器的沖激響應(圖9),點擊菜單選項Analysis下Magnitude Response選項,可以得到幅頻(圖10),點擊菜單選項Analysis下Phase Respon

26、se選項,可以得到相頻(圖11)。圖9 IIR數(shù)字濾波器(FDATool設計)的沖激響應圖10 IIR數(shù)字濾波器(FDATool設計)的幅頻圖11 IIR數(shù)字濾波器(FDATool設計)的相頻3、 分析設計的IIR濾波器根據(jù)結果可知,自編程與FDATool界面的IIR濾波器設計,得到的結果是一樣的。由圖8(上)和圖10可知,這種濾波器在100-200Hz的通帶范圍內是等波紋的,而在阻帶中是單調的,這是Chebyshev I濾波器的幅頻特性。由圖8(下)和圖11可知,在100-200Hz的范圍內相移較小,其曲線近似一條直線,失真較??;當頻率超過這一范圍時,相移較大,而且其曲線是非直線的,所以失真

27、也較大。由圖7和圖9得到了Chebyshev I濾波器的時域沖激響應,在5ms-100ms有沖激響應,超過這一范圍的沖激響應近似為零,進而實現(xiàn)了Chebyshev I帶通濾波器的設計。4、 仿真結果信號S = S1 + S2;S3為S濾波后的信號1) S1的頻率為50Hz,S1=2*50=100,S1=S1fs=0.1 ;S2的頻率為100Hz,S2=2*100=200,S2=S2fs=0.2。仿真,得圖12結果。圖12 S1=0.1,S2=0.2的仿真結果由上圖可以看出信號S經(jīng)過濾波后,信號的頻率大致為100Hz,即濾波后的信號與S2大致相同。2) S1的頻率為300Hz,S1=2*300=600,S1=S1fs=0.6 ;S2的頻率為150Hz,S2=2*150=300,S2=S2fs=0.3。仿真,得圖13結果。圖13 S1=0.6,S2=0.3的仿真結果由上圖可以看出信號S經(jīng)過濾波后,信號的頻率大致為150Hz,即濾波后的信號與S2大致相同。六、 總結與體會總體而言,IIR數(shù)字濾波器傳統(tǒng)設計方法雖然有眾多優(yōu)點,但其計算非常繁瑣。利用MATLAB設計濾波器,使原來非常繁瑣復雜的程序設計變成了簡單的函數(shù)調用,為濾波器的設計和實現(xiàn)開辟了廣闊的天地,尤其是Matlab工具箱使各個領域的研究人員可以直觀方便

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論