畢業論文基于Matlab的數字濾波器的設計_第1頁
畢業論文基于Matlab的數字濾波器的設計_第2頁
畢業論文基于Matlab的數字濾波器的設計_第3頁
畢業論文基于Matlab的數字濾波器的設計_第4頁
畢業論文基于Matlab的數字濾波器的設計_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、基于MATLAB的數字濾波器的設計陶雯(安慶師范學院物理與電氣工程學院 安徽 安慶 246011)指導老師:張杰摘要:數字濾波器是數字信號處理的重要環節,數字濾波器可分為IIR和FIR兩大類。本文介紹了IIR和FIR的基本設計原理以及在MATLAB環境下如何利用直接程序設計法、SPTOOL設計法和FDATOOL設計法給出IIR和FIR數字濾波器的設計方法和操作步驟,并給出設計設計實例及運行結果,同時利用MATLAB環境下的仿真軟件SIMULINK對所設計的濾波器進行模擬仿真,仿真結果表示設計參數設置合理。關鍵詞:數字濾波器,仿真,MATLAB,FIR,IIR。1 引言MATLAB是“矩陣實驗室

2、”(MATrix LABoratoy)的縮寫,它是由美國Mathworks公司于1984年正式推出的,是一種以矩陣運算為基礎的交互式程序語言,專門針對科學、工程計算及繪圖的需求。MATLAB是功能強大的科學及工程計算軟件,它不但具有以矩陣計算為基礎的強大數學計算和分析功能,而且還具有豐富的可視化圖形表現功能和方便的程序計算能力。MATLAB的應用領域極為廣泛,除數學計算和分析外,還被廣泛地應用于自動控制、系統仿真、數字信號處理、圖形圖像分析、數理統計、人工智能、虛擬現實技術、通信工程、金融系統等領域,因此,MATLAB是面向21世紀的計算機程序設計及科學計算語言。數字濾波器是指完成信號濾波處理

3、功能的,用有限精度算法實現的離散線性非時變系統,其輸入是一組(由模擬信號取樣和量化的數字量,其輸出是經過變換或說處理的另一組數字量。因此,它本身既可以是用數字硬件裝配成德一臺完成給定運算的專用數字計算機,也可將所需的運算編成程序,讓通用計算機來執行。數字濾波器具有穩定性高、精度高、靈活性大等突出優點。隨著數字技術的發展,用數字技術實現濾波器的功能愈來愈受到人們的注意和廣泛使用。這里所說的數字濾波器是指理想帶通,低通等的頻率選擇數字濾波器。數字濾波器設計的一個重要步驟是確定一個可實現的傳輸函數H(z,這個確定傳輸函數H(z的過程稱為數字濾波器設計。數字濾波器的一般設計過程為:(1)按照實際需要,

4、確定濾波器的性能要求(通常在頻域內給定數字濾波的性能要求)。(2)尋找一滿足預定性能要求的離散時間線性系統。(3)用有限精度的運算實現所設計的系統。(4)通過模擬,驗證所設計的系統是否符合給定性能要求。2 數字濾波器的設計濾波器分為兩種,分別為模擬濾波器和數字濾波器。數字濾波器可以理解為是一個計算程序或算法,將代表輸入信號的數字時間序列轉化為代表輸出信號的數字時間序列,并在轉化的過程中,使信號按預定的形式變化。數字濾波器有多種分類,從數字濾波器功能上分可分為低通、高通、帶阻、帶通濾波器,根據數字濾波器沖激響應的時域特征,可將數字濾波器分為兩種,即無限長沖激響應濾波器(IIR)和有限長沖激響應濾

5、波器(FIR)。數字濾波器指標:一般來說,濾波器的幅頻特性是分段常數的,以低通為例,在通帶內逼近于1,阻帶內逼近與0,實際設計的濾波器并非是銳截止的通帶和阻帶兩個范圍,兩者之間總有一個過渡帶。在設計濾波器時事先給定幅頻特性允許誤差,在通帶范圍內幅度響應以誤差逼近于1,在阻帶內幅度響應以誤差逼近于0。 (1)式中wc和wr分別為通帶邊界頻率和阻帶邊界頻率,wr-wc為過渡帶。在具體的技術指標中往往用通帶波動來表示,用最小阻帶衰減At來表示,其具體的對應公式這里就不詳述了。2.1 IIR數字濾波器設計IIR DF的沖激響應h(n是無限長的,其輸入輸出的關系為: (2系統函數為= (3設計無限長單位

6、脈沖響應(IIR)數字濾波器一般可有三種方法。第一種方法,先設計一個合適的模擬濾波器,然后將其數字話,即將S平面映射到Z平面得到所需的數字濾波器。模擬濾波器的設計技巧非常成熟,不僅得到的是閉合形式的公式,而且設計系數已經表格化了。因此,由模擬濾波器設計數字濾波器的方法準確,簡便,得到普遍采用。對于這種方法,工程上有兩種常見得變換法脈沖響應不變法及雙線性變換法。第二種方法,在Z平面直接設計IIR數字濾波器,給出閉合形式的公式,或者以所希望的濾波器響應作為依據,直接在Z平面上通過多次選定極點和零點的位置,以逼近該響應。第三種方法,利用最優化技術設計參數,選定極點和零點在Z平面上的合適位置,在某種最

7、優化準則意義上逼近所希望的響應。但一般不能得到濾波器的系數(即零,極點的位置)作為給定響應的閉合形式函數表達式。優化設計需要完成大量的迭代運算,這種設計法實際上也是IIR濾波器的直接設計。本文著重介紹由模擬濾波器設計相應的IIR數字濾波器的方法。(1)脈沖響應不變法脈沖響應不變法是使數字濾波器的單位脈沖響應序列h(n逼近模擬濾波器的沖激響應,讓h(n正好等于的采樣值。設已有滿足要求的模擬濾波器, 則可因為:,公式導出:具體轉換如下:設(以一階極點為例 (4作拉氏反變換,得采樣得作Z變換,得 (5與極點關系為: (6一般對應關系 (7圖1 S平面到Z平面變換示意圖所以, 模擬系統穩定因果數字系統

8、穩定因果。按照脈沖響應不變法,從S平面到Z平面的映射不是單值關系,而是先將在S平面沿虛軸作周期嚴拓,再按照映射關系將映射到Z平面,得到,因此,脈沖響應不變法只適用于帶限的濾波器(如低通、帶通)。在Matlab中利用M文件impinvar可以對模擬傳輸函數實行脈沖響應不變法。(2)雙線性變換法脈沖響應不變法不適帶阻和高通濾波器的設計,因為高頻帶為通帶,前述方法易引起混頻。故希望:平面虛軸z平面單位圓一周, 且應有,因為, 所以選變換 (8其中可取任意正常數, 后面將導出.設計思路: .設計出模擬濾波器轉化成數字濾波器.圖2 數字域頻率與模擬域頻率的對應關系轉化公式推導如下:因只關心頻率轉換, 故

9、可設, 則有, (稱為雙線性變換 (9所以模擬濾波器轉換成數字濾波器的公式為 (10由雙線性變換公式, 可得, 視為兩復平面變換, 再由.可得 (11從上式可得:時, 上虛軸上單位圓周。時, 上左半平面 上單位圓內。時, 上右半平面上單位圓外。故若模擬濾波器穩定,則雙線性變換后數字濾波器也穩定。由于雙線性變換法是一種單值映射,因此消除了頻率混疊的現象。雙線性變換法的缺點是模擬頻率與數字頻率間的非線性,這種非線性關系要求被變換的連續系統的幅度響應是分段常數型的(某一頻率范圍內幅度響應近似于某一常數),不然所映射出的數字頻率響應相對于原來的模擬頻率響應會產生變形。為解決雙線性變換中的頻率非線性關系

10、,我們采用預畸的方法,即,其中K=2/T。在Matlab中利用M文件bilinear可以對模擬傳輸函數實行雙線性變換法。MATLAB中IIR數字濾波器的設計過程包括兩步。第一步,根據給定指標,確定濾波器的階數N和頻率縮放因子Wn。第二步,利用這些參數和給定的波紋參數,確定傳輸函數的關系。階數估計:利用雙線性變換法設計數字濾波器時,首先要對IIR數字濾波器的階數進行估計,相應的M文件為:buttord用于巴特沃斯濾波器,cheb1ord用于切比雪夫1型濾波器,cheb2ord用于切比雪夫2型濾波器,ellipord用于橢圓濾波器。濾波器的設計:對于基于雙線性變換法的IIR濾波器設計,對應于四種逼

11、近技術(即巴特沃斯、切比雪夫1型和2型及橢圓逼近),MATLAB工具箱中有相應的函數。特別地可以用到下面的M文件:butter用于巴特沃斯濾波器的設計,cheby1用于切比雪夫1型濾波器的設計,cheby2用于切比雪夫2型濾波器的設計,ellip用于橢圓濾波器的設計。這些函數的輸出可以是濾波器傳輸函數分子和分母的系數向量,也可以是濾波器的零極點向量和標量增益因子。同時,利用zp2tf可以由濾波器的零極點向量和標量增益因子得到傳輸函數分子和分母的系數向量。相應地,利用函數zp2sos可以得到傳輸函數分子和分母系數向量的二次項因子。在計算出傳輸函數的系數之后,可以利用M文件freqz來計算頻率響應

12、。2.2 FIR數字濾波器設計FIR DF的沖激響應h(n是有限長的,M階FIR DF可以表示為: (12其系統函數為: (13與IIR數字濾波器的設計不同,FIR濾波器的設計與模擬濾波器的設計沒有任何聯系。因此,FIR濾波器的設計基于對指定幅度響應的直接逼近,并通常要求其具有線性相位響應。為了保證濾波器具有線性相位特性,濾波器系數必須滿足條件:h(n=h(M-1-n。目前關于FIR濾波器的設計方法主要有三種,即窗函數法,頻率取樣法和切比雪夫等波紋逼近的最優化設計方法。一般應用較多的是第一種和第三種方法。這是因為窗函數法比較簡單,可應用現成的窗函數公式,在技術指標要求不嚴格的情況下市比較靈活的

13、。最優化設計法必須借助計算機計算,但是它能得到最佳的等波紋的線性相位FIR濾波器。目前切比雪夫等波紋的線性相位FIR濾波器的計算機機助設計程序已經比較完善,由于采用了REMEZ迭代算法,所以設計效率也很高,在應用中越來越占優勢。(1)窗函數法 一般設計過程總是先給定一理想的濾波器頻率響應,然后設計一個FIR濾波器,用它的頻率響應來逼近理想的。這種逼近中最直接的方法,是在時域中用FIR濾波器的單位脈沖響應h(n去逼近理想的單位脈沖響應。因而,先由的IDTFT導出 (14由于是矩形頻率特性,故一定是無限長的序列,且是非因果的。然而FIR濾波器是有限長的,所以用有限長的h(n來逼近無限長的,最簡單的

14、方法是截取中最重要的一段,將無限長的截取成長度為M的有限長序列,等效于再上施加了一個長度為M的矩形窗口,更為一般的,可以用一個長度為M的窗口函數w(n來截取,即 (15這一方法通常稱為窗函數法,窗口函數的形狀及長度M的選擇是窗函數法的關鍵。下面我們一低通為例,了解一下窗函數法的運用:提出希望頻率響應函數(低通)圖3 理想低通濾波器的頻響線性相位, 具有片斷特點, 即算出(無限長圖4 理想低通的單位脈沖響應(無限長的一部分)加窗,長, 得 (*要線性相位, 就要關于偶對稱,而關于偶對稱, 故要求所以要求關于偶對稱.圖5 窗函數 圖6 加窗后的單位脈沖響應再回過來檢驗是否滿足精度要求.圖7 圖4的

15、脈沖響應的頻響 圖8 理想頻響與實際頻響的對比若基本滿足, 則依截取的, 制硬件, 編軟件.為便于選擇使用, 將5種常見的窗函數基本參數如表1所示。表1 5種常見的窗函數基本參數類型窗函數的旁瓣峰過渡帶寬度加窗后濾波器的阻帶最小衰減rectwin134/N21bartlet三角258/N25hanning318/N44hamming418/N53blackman5712/N74(2)頻率取樣法窗口設計法事從時域出發,把理想的用一定形狀的窗口函數截取成有限長的h(n,以此h(n來近似理想的,從而頻率響應也近似于理想的頻率響應。我們知道一個有限長序列可以通過其頻譜的相同長度的等間隔采樣值準確地恢復

16、原有的序列。頻率采樣法便是從頻域出發,對理想的頻率響應加以等間隔采樣 (16然后以此作為實際FIR濾波器的頻率特性的離散樣本H(k,即 (17由H(k通過IDFT可求出有限長序列h(n為 (18利用M個頻率的離散樣本H(k同樣可求出FIR濾波器的系統函數H(z及頻率響應。 (19令可得到濾波器的頻率響應。如果設計的是線性相位的FIR數字濾波器,其采樣值H(k的相位的幅度一定要滿足特定的約束條件,這個設計時一定要注意。(3)最優化設計法最優化設計法事以最佳一致逼近(最大誤差最小化)理論為基礎,利用雷米茲算法設計的具有等波紋特性的設計方法。具體設計步驟如下:對設計指標進行歸一化處理。確定remez

17、ord函數所需要的參數。包括歸一化邊界頻率、各頻帶的幅度要求和波紋要求等。歸一化邊界頻率總是從0開始到1結束,故只需遞增列出中間的邊界頻率;頻帶幅度要求不含過渡區,個數是邊界頻率個數的一半加1;波紋要求是頻帶內幅度允許的波動要求,與分貝間的關系是: (20利用remezord函數確定remez所需參數。調用remez函數進行設計。利用freqz函數驗算技術指標是否滿足要求。2.3 數字濾波器類型的選擇IIR和FIR各有優缺點,在實際運用中如何選擇它們,這里做一個簡單的比較。表2 IIR與FIR的比較IIRFIR設計方法利用AF的設計圖表,可簡單,有效的完成設計一般無解析的設計公式,要借助計算機

18、程序完成設計結果只能得到幅頻特性,相頻特性未知(缺點),如需要線性相位,需用全通網絡校準,但增加濾波器的階數和復雜性可得到幅頻特性(可以多帶)和線性相位(優點)穩定性有穩定性問題極點全部在原點(永遠穩定),無穩定性問題因果性總是滿足,任何一個非因果的有限長序列,總可以通過一定的延時,轉變為因果序列結構遞歸系統非遞歸運算誤差有反饋,由于運算中的四舍五入會產生極限環一般無反饋,運算誤差小快速算法無快速運算方法可用FFT減少運算量從以上簡單的比較可以得到,IIR與FIR濾波器各有所長,所以應根據實際應用要求,從多方面考慮加以選擇。3 數字濾波器的MATLAB設計3.1 直接程序設計法(1)IIR的直

19、接程序設計法例如欲設計一數字(IIR)帶阻濾波器,其數字域指標為:數字阻帶邊緣頻率分別為0.4和0.7,數字通帶邊緣頻率為0.25和0.8,通帶波動為1db最小阻帶衰減為40db。此題的MATLAB程序為:ws=0.4*pi 0.7*pi; %數字阻帶邊緣頻率wp=0.25*pi 0.8*pi; %數字通帶邊緣頻率rp=1 ; %通帶波動(db)as=40; %阻帶衰減n,wn=cheb2ord(wp/pi,ws/pi,rp,as;%根據給定指標,確定濾波器的階數N和頻率縮放因子Wnb,a=cheby2(n,as,ws/pi,'stop'%返回的b,a分別為H(z的分子、分母。

20、h,w=freqz(b,a,512;%返回的h,w分別為濾波器的頻率響應及其頻率plot(w/pi,abs(h;%畫出頻率響應(以w/pi為橫軸)grid;xlabel('w/pi'ylabel('幅值'title('頻率響應'程序運行結果為:圖9 所設計的帶阻濾波器的頻率響應在設計中如果該濾波器的特性不滿足要求,原有的參數必須做相應的調整,在程序中只需對參數做新的設定就可以得到所需的濾波器。接下來我們來看看此題所設計的濾波器的濾波效果:S為含有3個頻率成分的信號(歸一化頻率(w/2)分別為0.1、0.3、0.45),用所設計的濾波器濾除歸一化頻

21、率為0.3的成分。n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;sf=filter(b,a,s;subplot(311stem(n,s;title('濾波前的信號'subplot(312; stem(n,sf;title('濾波后的信號'subplot(313;stem(n,s4;title('想要保留的信號'程序運行的結果為:圖10 采用filter函數進行數字濾波前后信號比較示意圖由圖可以看出,濾波后的信號與想要保留的信號基本一致(相位有

22、些許偏差,但基本一致),所以我們可以說該濾波器基本滿足了以上所提出的濾波要求。(2)FIR的直接程序設計法例如欲設計一個線性相位數字(FIR)帶通濾波器,其數字域指標為:數字通帶邊界頻率為0.35和0.65,數字阻帶邊界頻率為0.2和0.8,通帶波動為1db,最小阻帶衰減為60db。 FIR數字濾波器的窗函數法此題的MATLAB程序為:ws1=0.2*pi;wp1=0.35*pi;wp2=0.65*pi;ws2=0.8*pi;as=60;tr=min(wp1-ws1,(ws2-wp2;M=ceil(11*pi/tr+1; %濾波器的階數,程序運行后M=75n=0:1:M-1;r=(M-1/2;

23、%r為群時延wc1=(ws1+wp1/2;wc2=(wp2+ws2/2;hd=sin(wc2*(n-r+eps./(pi*(n-r+eps-sin(wc1*(n-r+eps./(pi*(n-r+eps;%hd為理想濾波器的脈沖響應w_bla=(blackman(M'%長度為M的blackman窗h=hd.*w_bla;%h為濾波器的實際脈沖響應stem(n,h;title('濾波器的實際單位脈沖響應'freqz(h,1,512;title('幅度響應和相位響應'圖11 所設計的濾波器的實際單位脈沖響應由上圖可知濾波器的實際脈沖響應h是偶對稱的,即h(n=

24、h(M-1-n,故該濾波器滿足FIR線性相位的條件,該濾波器是線性相位的FIR濾波器。圖12 所設計的帶通濾波器的幅度和相位響應由濾波器的相位特性也可以看出該濾波器是線性相位的FIR濾波器。接下來我們來看看此題所設計的濾波器的濾波效果:S為含有3個頻率成分的信號(歸一化頻率(w/2l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('濾波前的信號'subplot(312;stem(l,sf;title('濾

25、波后的信號'subplot(313;stem(l,s2;title('想要保留的信號'圖13 采用filter函數進行數字濾波前后信號比較示意圖由上圖可知濾波后的信號和想要保留的信號的幅度和頻率基本一致(濾波后的信號相對于想要保的信號有一個相位延遲,這是線性相位FIR濾波器的群延遲引起的,此濾波器留的群延遲r=(M-1/2=37),所以我們可以說該濾波器基本滿足了以上所提出的濾波要求。 FIR數字濾波器的頻率采樣法此題的MATLAB程序為:M=40;%取濾波器的階數為40al=(M-1/2;%群時延n=0:M-1;T2=0.59417456;T1=0.109021;Hr

26、s=zeros(1,5,T1,T2,ones(1,7,T2,T1,zeros(1,9,T1,T2,ones(1,7,T2,T1,zeros(1,4;%采樣值的幅值k1=0:floor(M-1/2;k2=floor(M-1/2+1:M-1;angH=-al*(2*pi/M*k1,al*(2*pi/M*(M-k2;%采樣值的相位H=Hrs.*exp(j*angH;h=real(ifft(H,M;%長度為M的單位脈沖響應stem(n,h;title('濾波器的實際單位脈沖響應'freqz(h,1,512;title('幅度響應和相位響應'圖14 所設計的濾波器的實際單

27、位脈沖響應由圖14可知濾波器的實際脈沖響應h是偶對稱的,即h(n=h(M-1-n,故該濾波器滿足FIR線性相位的條件,該濾波器是線性相位的FIR濾波器。圖15 所設計的帶通濾波器的幅度和相位響應由濾波器的相位特性也可以看出該濾波器是線性相位的FIR濾波器。此濾波器的群延時為al=(M-1/2=19.5。接下來我們來看看此題所設計的濾波器的濾波效果:S為含有3個頻率成分的信號(歸一化頻率(w/2)分別為0.05、0.2、0.45),用所設計的濾波器濾除歸一化頻率為0.05和0.45的成分。l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*

28、l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('濾波前的信號'subplot(312;stem(l,sf;title('濾波后的信號'subplot(313;stem(l,s2;title('想要保留的信號'圖16 采用filter函數進行數字濾波前后信號比較示意圖同上面分析相似,濾波后的信號和想要保留的信號的幅度和頻率基本一致(濾波后的信號相對于想要保的信號有一個相位延遲,這是線性相位FIR濾波器的群延遲引起的,此濾波器留的群延遲(r=(M-1/2=19.5),所以我們可以說該濾波

29、器基本滿足了以上所提出的濾波要求。 FIR數字濾波器的最優設計法此題的MATLAB程序為:%設計指標ws1=0.2*pi;wp1=0.35*pi;wp2=0.65*pi;ws2=0.8*pi;rp=1;as=60;%設置邊界頻率和幅度要求F=ws1/pi,wp1/pi,wp1/pi,ws2/pi;A=0,1,0;%設置各頻帶的波紋要求devp=(10(rp/20-1/(10(rp/20+1;devs=10(-as/20;dev=devs,devp,devs;%確定remez參數,其中濾波器的階數為(N+1),程序運行后得到N=26N,Fo,Ao,W=remezord(F,A,dev;%調用re

30、mez函數進行設計h=remez(N,Fo,Ao,W;n=0:N;stem(n,h;title('濾波器的單位沖激響應'freqz(h,1,512;title('幅度響應和相位響應'圖17 所設計的濾波器的實際單位脈沖響應由圖17可知濾波器的實際脈沖響應h是偶對稱的,即h(n=h(N-n,故該濾波器滿足FIR線性相位的條件,該濾波器是線性相位的FIR濾波器。圖18 所設計的帶通濾波器的幅度和相位響應由濾波器的相位特性也可以看出該濾波器是線性相位的FIR濾波器。此濾波器的群延時為al=(N/2=13。接下來我們來看看此題所設計的濾波器的濾波效果:S為含有3個頻率成

31、分的信號(歸一化頻率(w/2l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('濾波前的信號'subplot(312;stem(l,sf;title('濾波后的信號'subplot(313;stem(l,s2;title('想要保留的信號'圖19采用filter函數進行數字濾波前后信號比較示意圖同上面分析相似,濾波后的信號和想要保留的信號的幅度和頻率基本一致(濾波后的信號相對于想要

32、保的信號有一個相位延遲,這是線性相位FIR濾波器的群延遲引起的,此濾波器留的群延遲r=(N/2=13),所以我們可以說該濾波器基本滿足了以上所提出的濾波要求。3.2 利用信號處理工具箱SPTOOL設計法SPTOOL是信號處理工具箱中一個具有交互式圖形用戶界面的信號處理工具,專門用于完成常用的數字信號處理任務。通過這個工具,只需要鼠標簡單的操縱鼠標(點擊或拖動),就可以完成載入、觀察、分析、實現和設計數字濾波器并進行譜分析等甚至十分復雜的數字信號處理任務,而不需要用戶對數字濾波器的設計原理非常熟悉。下面是用SPTOOL工具設計的IIR濾波器對上述信號進行濾波。SPTOOL使用步驟:導入信號、濾波

33、器、頻譜,設計濾波器,對信號濾波,分析輸入輸出信號的譜。1 IIR濾波器的設計創建并導入信號源,在MATLAB命令窗口輸入命令:fs=4000(這里取采樣頻率為4000Hz);n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;此時,變量fs、n、s、s1、s2、s3、s4將顯示在MATLAB的workspace列表中。在MTLAB命令窗口中輸入sptool,即可彈出SPTOOL的主界面,如圖所示: 圖20 SPTOOL的主界面這里我們首先來設計前面的IIR帶阻濾波器,前面的數字指標轉化為模擬指

34、標為:通帶頻率分別為500Hz和1600Hz,阻帶頻率為800Hz和1400Hz,通帶波動為1db,最小阻帶衰減為40db。以上三個信號轉換為模擬域的頻率分別為400Hz,1200Hz,1800Hz。1)導入信號。使用【file/import】可以導入信號、濾波器和譜。信號的來源可以是MATLAB工作空間變量或MAT數據文件,也可以是在DATA前面的文本框中直接輸入信號的數據。這里信號源仍然利用前面程序設計法中的混頻信號,將信號s和采樣頻率fs=4kHz導入并命名為sig1,將信號s2導入命名為sig2,將信號s4導入命名為sig4。2)濾波器的設計。單擊Filter欄中的New按鈕打開濾波器

35、設計工具。在界面的最上面制定濾波器的名字、采樣頻率和設計方法。這里命名濾波器名稱為filt1,采樣頻率fs=4kHz和設計方法為chebyshev typeII IIR;左側的Specification面板用來指定設計指標;minimum order,type為bandstop,通帶頻率分別為500Hz和1600Hz,阻帶頻率為800Hz和1400Hz,通帶波動為1db,最小阻帶衰減為40db。完成以上輸入之后單擊Apply按鈕,則完成了濾波器的設計;中間的Frequency Response面板則根據設計指標自動繪出濾波器的幅頻響應,而右側的Measurements面板顯示了濾波器設計完成后

36、的實測參數。此時在Filters欄中,選中filt1按下View按鈕即彈出界面,我們還可以觀察到濾波器的相位響應、幅頻相位響應、脈沖響應、階躍響應等等(只須點擊界面上的相應快捷按鈕)。圖21 所設計的濾波器的幅值響應3)將濾波器應用到sig1信號序列。分別在Signals、Filters欄中選擇sig2、filt1單擊Filters欄列表下的Apply按鈕,在彈出的Apply Filter對話框中將輸出信號命名為Sig3(濾波后信號)。同時按下Alt與Shift鍵選中Sig3與Sig2點擊Signals欄下的View可觀察到它們的時域波形(其中紅色是信號sig3,藍色是信號sig2,如圖所示。

37、由圖可觀察出信號s2通過該帶阻濾波器后得到很大的衰減,幾乎衰減為0。圖22 信號s2濾波前后的比較分別在Signals、Filters欄中選擇sig1、filt1單擊Filters欄列表下的Apply按鈕,在彈出的Apply Filter對話框中將輸出信號命名為Sig5(濾波后信號)。同時按下Alt與Shift鍵選中Sig4與Sig5點擊Signals欄下的View可觀察到它們的時域波形(其中紅色是信號sig5,藍色是信號sig4,如圖所示。由圖可觀察出信號s通過濾波器后所得的信號與s4基本吻合,只是相位上有點偏差,即該帶阻濾波器基本濾除了信號s2,濾波效果良好。圖23 濾波后的信號與s4的比

38、較4)進行頻譜分析。在Signals中選擇sig1,單擊Spectra欄下的Create按鈕,在彈出的Spectra Viewer界面中選擇method為FFT,nfft=512,單擊Apply按鈕生成s的頻譜spect1同理得到sig4的頻譜spect4,sig5的頻譜spect5,同時按下Alt與Shift鍵選中spect1與spect5,點擊Spectra欄下的View可觀察到它們的頻譜,下圖是sig1和sig5的頻譜,其中紅色代表濾波后信號的頻譜(sig5),藍色代表濾波前信號的頻譜(sig1)。圖24 濾波前后信號的頻譜的比較由頻譜可以看出,混頻信號s中頻率為1200Hz的部分基本被

39、濾除了,頻率為400Hz和1800Hz的部分基本被保留下來,未受濾波的影響。同時按下Alt與Shift鍵選中spect4與spect5,點擊Spectra欄下的View可觀察到它們的頻譜,下圖是sig4和sig5的頻譜,其中紅色代表濾波后信號的頻譜(sig5),藍色代表濾波前信號的頻譜(sig4),如下圖。圖25 濾波后的信號與信號s4頻譜的比較由上圖可以看出,s4與濾波后的信號頻譜基本一致,所以我們可以得出結論:該帶阻濾波器的濾波效果較好。2 FIR濾波器的設計與1的設計過程類似,這里就簡述過程。創建并導入信號源,在MATLAB命令窗口輸入命令:fs=4000Hz;l=0:100;s1=si

40、n(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;s4=s1+s3;前面的數字指標轉化為模擬指標為:通帶頻率分別為700Hz和1300Hz,阻帶頻率為400Hz和1600Hz,通帶波動為1db,最小阻帶衰減為60db,以上三個信號轉換為模擬域的頻率分別為200Hz,800Hz,1800Hz。1)導入信號。將信號s和采樣頻率fs=4kHz導入并命名為sig1,將信號s2導入命名為sig2,將信號s4導入命名為sig4。2) 濾波器的設計。圖26 所設計的濾波器的幅值響應3) 將濾波器應用到sig1信號、sig4信號,生成的信號分別命名為s

41、ig5和sig3。圖27 信號s4濾波前后的比較上圖中sig4信號與sig3信號比較(其中紅色代表sig3,藍色代表sig4)可知信號s4通過該帶通濾波器后得到大大衰減,幾乎衰減為0。圖28 濾波后的信號與信號s2的比較上圖中sig2和sig5比較(其中紅色代表sig5,藍色代表sig2),可知信號s通過該帶通濾波器后的信號與s2基本具有相同的頻率和幅值(只是相位上有一點誤差),所以我們認為該濾波器較好的濾掉了s4,濾波性能優良。4)進行頻譜分析。分別生成sig1的頻譜spect1,sig2的頻譜spect2,sig5的頻譜spect5。下圖是sig1和sig5的頻譜,其中紅色代表濾波后信號的

42、頻譜(sig5),藍色代表濾波前信號的頻譜(sig1)。由圖可看出該濾波器基本濾除了頻率為200Hz和1800Hz的信號,保留了頻率為800Hz的信號。圖29 濾波前后信號的頻譜的比較下圖是sig2和sig5的頻譜,其中紅色代表濾波后信號的頻譜(sig5),藍色代表濾波前信號的頻譜(sig2)。由圖可看出濾波后的信號與s2具有基本一致的頻譜。圖30 濾波后的信號與信號s2頻譜的比較3.3 濾波器分析設計工具箱FDATOOL法FDATool(Filter Design & Analysis Tool)是MATLAB信號處理工具箱里專用的濾波器設計分析工具,MATLAB6.0以上的版本還專

43、門增加了濾波器設計工具箱(Filter Design Toolbox)。FDATool可以設計幾乎所有的基本的常規濾波器,包括FIR和IIR的各種設計方法。它操作簡單,方便靈活。FDATool界面總共分兩大部分,一部分是Design Filter,在界面的下半部,用來設置濾波器的設計參數,另一部分則是特性區,在界面的上半部分,用來顯示濾波器的各種特性。Design Filter部分主要分為:Filter Type(濾波器類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的FIR濾波器。Design Method(設計方法)

44、選項,包括IIR濾波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函數)法。Filter Order(濾波器階數)選項,定義濾波器的階數,包括Specify Order(指定階數)和Minimum Order(最小階數)。在Specify Order中填入所要設計的濾波器的階數(N階濾波器,Specify OrderN-1),如果選擇Minimum Order

45、則MATLAB根據所選擇的濾波器類型自動使用最小階數。Frenquency Specifications選項,可以詳細定義頻帶的各參數,包括采樣頻率Fs和頻帶的截止頻率。它的具體選項由Filter Type選項和Design Method選項決定,例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率)、Fpass1(通帶下限截止頻率)、Fpass2(通帶上限截止頻率)、Fstop2(上阻帶截止頻率),而Lowpass(低通)濾波器只需要定義Fstop1、Fpass1。采用窗函數設計濾波器時,由于過渡帶是由窗函數的類型和階數所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參

46、數。Magnitude Specifications選項,可以定義幅值衰減的情況。例如設計帶通濾波器時,可以定義Wstop1(頻率Fstop1處的幅值衰減)、Wpass(通帶范圍內的幅值衰減)、Wstop2(頻率Fstop2處的幅值衰減)。當采用窗函數設計時,通帶截止頻率處的幅值衰減固定為6db,所以不必定義。Window Specifications選項,當選取采用窗函數設計時,該選項可定義,它包含了各種窗函數。現用FDATOOL設計一個滿足上述要求的IIR濾波器:在命令窗口里輸入fdatool,即可彈出fdatool的主界面,如圖31 fdatool的主界圖32 所設計的帶阻濾波器的幅值響

47、應在設計過程中,可以對比濾波器幅頻相頻特性和設計要求,隨時調整參數和濾波器類型,以便得到最佳效果。其它類型的FIR濾波器和IIR濾波器也都可以使用FDATool來設計。同樣地,我們也可以設計滿足前面指標的FIR濾波器,其幅值響應為:圖33所設計的帶通濾波器的幅值響應在設計過程中,可以對比濾波器幅頻相頻特性和設計要求,隨時調整參數和濾波器類型,以便得到最佳效果。其它類型的FIR濾波器和IIR濾波器也都可以使用FDATool來設計。4 Simulink仿真本文通過調用Simuink中的功能模塊構成數字濾波器的仿真框圖,在仿真過程中,可以雙擊各功能模塊,隨時改變參數,獲得不同狀態下的仿真結果。在Si

48、mulink環境下,通過設置濾波器功能模塊的參數(digital filter design模塊的參數)來直接設計濾波器。我們先設計滿足上述帶阻IIR濾波器參數的濾波器,再進行仿真。找到Simuink功能模塊,communications blockset/comm filters/filter designs link/digital filter design,找到digital filter design模塊。分別在sources和sinks中找到正玄信號示波器,再在math operation中找到相加器。信號n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;修改正玄信號的參數sine type/time based、frequency分別改為0.2*pi,0.6*pi,0.9*pi,sample time改為1。其他模塊的參數根據上述要求進行調整。將下圖分別是仿真框圖和濾波前后信號的波形:圖34 仿真框圖圖35 濾波前后信號的比較由上圖可以看

溫馨提示

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

評論

0/150

提交評論