濾波器matlab_第1頁
濾波器matlab_第2頁
濾波器matlab_第3頁
濾波器matlab_第4頁
濾波器matlab_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、>> n=31;%定義濾波器階數32fs=12.8*103;fc1=49;fc2=51;w1=2*pi*fc1/fs;w2=2*pi*fc2/fs;%參數轉換,將模擬濾波器的技術指標轉換為數字濾波器的技術指標window=hanning(n+1);%使用hanning窗函數q=fir1(n,w1/pi w2/pi,hanning(n+1);%濾波器時域函數,使用標準響應的加窗設計函數fir1w=linspace(0,pi,512);h1=freqz(q,1,512);%進行512個點的傅里葉變換figure(2);plot(w/pi,20*log10(abs(h1);title(&

2、#39;濾波器頻譜圖');xlabel('頻率');ylabel('幅度');grid ;設計FIR低通濾波器,系統(tǒng)頻率為50MHz,通帶截止頻率Fpass為1MHz,阻帶截止頻率Fstop為4MHz,通帶最大衰減Apass為1dB,阻帶最小衰減Astop為30dB。 程序和必要的程序注釋 謝謝最佳答案 只要用一個公式就行。library IEEE;entity fir is Port (clk: in std_logic; reset: in std_logic; inpx: in std_logic_vector(11 downto 0); outy

3、: out std_logic_vector(11 downto 0);end fir;architecture beh of fir is signal x0,x1,x2,x3: std_logic_vector(11 downto 0); constant c0:integer :=-1234*32768/1000; constant c1:integer :=2345*32768/10000; constant c2:integer :=5*32768; constant c3:integer :=-3*32768/10000; signal p0,p1,p2,p3:integer; s

4、ignal sum: integer;begin sample_delay_line: process(clk) begin if rising_edge(clk) then if reset='1' then x3 <=(others=>'0'); x2 <=(others=>'0'); x1 <=(others=>'0'); x0 <=(others=>'0'); else x3 <=x2; x2 <=x1; x1 <=x0; x0 <=i

5、npx; end if; end if; end process; p0 <= conv_integer(x0)*c0; p1 <= conv_integer(x1)*c1; p2 <= conv_integer(x2)*c2; p3 <= conv_integer(x3)*c3; sum <=p0+p1+p2+p3; outy <=conv_std_logic_vector(sum/32768,12);end beh;4.1 數字濾波器簡介 數字濾波器是一種用來過濾時間離散信號的數字系統(tǒng),通過對抽樣數據進行數學處理來達到頻域濾波的目的??梢栽O計系統(tǒng)的頻率響

6、應,讓它滿足一定的要求,從而對通過該系統(tǒng)的信號的某些特定的頻率成分進行過濾,這就是濾波器的基本原理。如果系統(tǒng)是一個連續(xù)系統(tǒng),則濾波器稱為模擬濾波器。如果系統(tǒng)是一個離散系統(tǒng),則濾波器稱為數字濾波器。信號 通過線性系統(tǒng)后,其輸出 就是輸入信號 和系統(tǒng)沖激響應 的卷積。除了 外, 的波形將不同于輸入波形 。從頻域分析來看,信號通過線性系統(tǒng)后,輸出信號的頻譜將是輸入信號的頻譜與系統(tǒng)傳遞函數的乘積。除非 為常數,否則輸出信號的頻譜將不同于輸入信號的頻譜,某些頻率成分 較大的模,因此, 中這些頻率成分將得到加強,而另外一些頻率成分 的模很小甚至為零, 中這部分頻率分量將被削弱或消失。因此,系統(tǒng)的作用相當于

7、對輸入信號的頻譜進行加權。4.2 IIR濾波器的設計原理IIR數字濾波器的設計一般是利用目前已經很成熟的模擬濾波器的設計方法來進行設計,通常采用模擬濾波器原型有butterworth函數、chebyshev函數、bessel函數、橢圓濾波器函數等。IIR數字濾波器的設計步驟:(1) 按照一定規(guī)則把給定的濾波器技術指標轉換為模擬低通濾波器的技術指標;(2) 根據模擬濾波器技術指標設計為響應的模擬低通濾波器;(3) 很據脈沖響應不變法和雙線性不變法把模擬濾波器轉換為數字濾波器;(4) 如果要設計的濾波器是高通、帶通或帶阻濾波器,則首先把它們的技術指標轉化為模擬低通濾波器的技術指標,設計為數字低通濾

8、波器,最后通過頻率轉換的方法來得到所要的濾波器。4.3 FIR濾波器的設計原理FIR濾波器通常采用窗函數方法來設計。窗設計的基本思想是,首先選擇一個適當的理想選頻濾波器(它總是具有一個非因果,無限持續(xù)時間脈沖響應),然后街區(qū)(加窗)它的脈沖響應得到線性相位和因果FIR濾波器。我們用Hd(ejw)表示理想的選頻濾波器,它在通帶上具有單位增益和線性相位,在阻帶上具有零響應。一個帶寬wc<pi的低通濾波器由下式給定: 為了從hd(n)得到一個FIR濾波器,必須同時在兩邊截取hd(n)。而要得到一個因果的線性相位濾波器,它的h(n)長度為N,必須有: 這種操作叫做加窗,h(n)可以看做是hd(n

9、)與窗函數w(n)的乘積: h(n)=hd(n)w(n)其中 根據w(n)的不同定義,可以得到不同的窗結構。 在頻域中,因果FIR濾波器響應H(ejw)由Hd(ejw)和窗響應W(ejw)的周期卷積得到,即 常用的窗函數有矩形窗、巴特利特(BARTLETT)窗、漢寧(HANNING)窗、海明(HAMMING)窗、布萊克曼(BLACKMAN)窗、凱澤(KAISER)窗等。4.4 FIR濾波器的窗函數設計法 FIR濾波器的設計方法有許多種,如窗函數設計法、頻率采樣設計法和最優(yōu)化設計法等。窗函數設計法的基本原理是用一定寬度窗函數截取無限脈沖響應序列獲得有限長的脈沖響應序列,主要設計步驟為: (1)

10、通過傅里葉逆變換獲得理想濾波器的單位脈沖響應hd(n)。 (2) 由性能指標確定窗函數W(n)和窗口長度N。 (3) 求得實際濾波器的單位脈沖響應h(n), h(n)即為所設計FIR濾波器系數向量b(n)。 五、 設計內容5.1 設計題目:1-1.試用MATLAB設計一巴特沃斯低通數字濾波器,要求通帶截至頻率Wp=30HZ,主帶截至頻率為Ws=35HZ,通帶衰減不大于0.5DB,主帶衰減不小于40DB,抽樣頻Fs=100HZ。1-2基于Butterworth模擬濾波器原型,使用雙線性狀換設計數字濾波器:各參數值為:通帶截止頻率Omega=0.2*pi,阻帶截止頻率Omega=0.3*pi,通帶

11、波動值Rp=1dB,阻帶波動值Rs=15dB,設Fs=20000Hz。1-3設計一巴特沃斯高通數字濾波器,要求通帶截止頻率0.6*pi,通帶衰減不大于1dB,阻帶衰減15DB,抽樣T=1。1-4.設計一巴特沃斯帶阻數字濾波器,要求通帶上下截至頻率為0.8*PI、0.2*PI,通帶衰減不大于1DB,阻帶上下截至頻率0.7*PI、0.4*PI 阻帶衰減不小于30DB, 2-1.用窗函數法設計一個線性相位FIR低通濾波器,并滿足性能指標:通帶邊界頻率Wp=0.5*pi,阻帶邊界頻率Ws=0.66*pi,阻帶衰減不小于40dB,通帶波紋不大于3dB。選擇漢寧窗。2-4用海明窗設計一個FIR濾波器,其中

12、Wp=0.2*pi,Ws=0.3*pi,通帶衰減不大于0.25dB,阻帶衰減不小于50dB。5.2設計程序代碼及結果:1-1一.試用MATLAB設計一巴特沃斯低通數字濾波器,要求通帶截至頻率Wp=30HZ,阻帶截至頻率為Ws=35HZ,通帶衰減不大于0.5DB,阻帶衰減不小于40DB,抽樣頻Fs=100HZ。代碼為:fp = 30;fs = 35;Fs = 100;wp = 2*pi*fp/Fs;ws = 2*pi*fs/Fs;wp = tan(wp/2);ws = tan(ws/2); % 通帶最大衰減為0.5dB,阻帶最小衰減為40dBN, wn = buttord(wp, ws, 0.5

13、, 40, 's'); % 模擬低通濾波器極零點z, p, k = buttap(N); % 由極零點獲得轉移函數參數b, a = zp2tf(z, p, k); % 由原型濾波器獲得實際低通濾波器B, A = lp2lp(b, a, wp); bz, az = bilinear(B, A, .5);h, w = freqz(bz, az, 256, Fs);figureplot(w, abs(h)grid on 圖1 巴特沃斯數字低通濾波器1-2基于Butterworth模擬濾波器原型,使用雙線性狀換設計數字濾波器:各參數值為:通帶截止頻率Omega=0.2*pi,阻帶截止頻

14、率Omega=0.3*pi,通帶波動值Rp=1dB,阻帶波動值Rs=15dB,設Fs=4000Hz。代碼:wp=0.2*pi;ws=0.3*pi;Fs=4000;T=1/Fs; OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);rp=1;rs=15;as=15;ripple=10(-rp/20);attn=10(-rs/20);n,wn=buttord(OmegaP,OmegaS,rp,rs,'s');z,p,k=Buttap(n);b,a=zp2tf(z,p,k);bt,at=lp2lp(b,a,wn);b,a=bilinear(bt

15、,at,Fs);db,mag,pha,grd,w=freqz_m(b,a);%下面繪出各條曲線subplot(2,2,1);plot(w/pi,mag);title('Magnitude Frequency幅頻特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis(0,1,0,1.1);set(gca,'XTickMode','manual','XTick',0 0.2 0.3 1);set(gca,'YTickMode','manual&#

16、39;,'YTick',0 attn ripple 1);gridsubplot(2,2,2);plot(w/pi,db);title('Magnitude Frequency幅頻特性(db)');xlabel('w(/pi)');ylabel('dB');axis(0,1,-30,5);set(gca,'XTickMode','manual','XTick',0 0.2 0.3 1);set(gca,'YTickMode','manual','

17、;YTick',-60 -as -rp 0);gridsubplot(2,2,3);plot(w/pi,pha/pi);title('Phase Frequency相頻特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis(0,1,-1,1);subplot(2,2,4);plot(w/pi,grd);title('Group Delay群延時');xlabel('w(/pi)');ylabel('Sample');axis(0,1,0,15);set(g

18、ca,'XTickMode','manual','XTick',0 0.2 0.3 1);grid運行結果: 圖2巴特沃思數字低通濾波器幅頻-相頻特性1-3設計一巴特沃斯高通數字濾波器,要求通帶截止頻率0.6*pi,通帶衰減不大于1dB,阻帶衰減15DB,抽樣T=1。Wp=0.6*pi;Ws=0.4*pi;Ap=1;As=15;N,wn=buttord(Wp/pi,Ws/pi,Ap,As); %計算巴特沃斯濾波器階次和截止頻率 %頻率變換法設計巴特沃斯高通濾波器db,mag,pha,grd,w=freqz_m(b,a); %數字濾波器響應plot

19、(w,mag);title('數字濾波器幅頻響應|H(ejOmega)|') 圖3巴特沃斯數字高通濾波器2-1用窗函數法設計一個線性相位FIR低通濾波器,并滿足性能指標:通帶邊界頻率Wp=0.5*pi,阻帶邊界頻率Ws=0.66*pi,阻帶衰減不小于40dB,通帶波紋不大于3dB。選擇漢寧窗。 代碼:wp =0.5*pi; ws=0.66*pi; wdelta =ws-wp; N= ceil(8*pi/wdelta)if rem(N,2)=0N=N+1;end);1 數字濾波器及傳統(tǒng)設計方法數字濾波器可以理解為是一個計算程序或算法,將代表輸入信號的數字時間序列轉化為代表輸出信號

20、的數字時間序列,并在轉化過程中,使信號按預定的形式變化。數字濾波器有多種分類,根據數字濾波器沖激響應的時域特征,可將數字濾波器分為兩種,即無限長沖激響應(IIR)濾波器和有限長沖激響應(FIR)濾波器。IIR數字濾波器具有無限寬的沖激響應,與模擬濾波器相匹配。所以IIR濾波器的設計可以采取在模擬濾波器設計的基礎上進一步變換的方法。FIR數字濾波器的單位脈沖響應是有限長序列。它的設計問題實質上是確定能滿足所要求的轉移序列或脈沖響應的常數問題,設計方法主要有窗函數法、頻率采樣法和等波紋最佳逼近法等。在對濾波器實際設計時,整個過程的運算量是很大的。例如利用窗函數法【2】設計M階FIR低通濾波器時,首

21、先要根據(1)式計算出理想低通濾波器的單位沖激響應序列,然后根據(2)式計算出M個濾波器系數。當濾波器階數比較高時,計算量比較大,設計過程中改變參數或濾波器類型時都要重新計算。 (1) (2)設計完成后對已設計的濾波器的頻率響應要進行校核,要得到幅頻相頻響應特性,運算量也是很大的。我們平時所要設計的數字濾波器,階數和類型并不一定是完全給定的,很多時候都是要根據設計要求和濾波效果不斷的調整,以達到設計的最優(yōu)化。在這種情況下,濾波器的設計就要進行大量復雜的運算,單純的靠公式計算和編制簡單的程序很難在短時間內完成設計。利用MATLAB強大的計算功能進行計算機輔助設計,可以快速有效的設計數字濾波器,大

22、大的簡化了計算量,直觀簡便。2數字濾波器的MATLAB設計2.1 FDATool界面設計 FDATool的介紹FDATool(Filter Design & Analysis Tool)是MATLAB信號處理工具箱里專用的濾波器設計分析工具,MATLAB6.0以上的版本還專門增加了濾波器設計工具箱(Filter Design Toolbox)。FDATool可以設計幾乎所有的基本的常規(guī)濾波器,包括FIR和IIR的各種設計方法。它操作簡單,方便靈活。FDATool界面總共分兩大部分,一部分是Design Filter,在界面的下半部,用來設置濾波器的設計參數,另一部分則是特性區(qū),在界面的

23、上半部分,用來顯示濾波器的各種特性。Design Filter部分主要分為:Filter Type(濾波器類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的FIR濾波器。Design Method(設計方法)選項,包括IIR濾波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函數)法。Fi

24、lter Order(濾波器階數)選項,定義濾波器的階數,包括Specify Order(指定階數)和Minimum Order(最小階數)。在Specify Order中填入所要設計的濾波器的階數(N階濾波器,Specify OrderN-1),如果選擇Minimum Order則MATLAB根據所選擇的濾波器類型自動使用最小階數。Frenquency Specifications選項,可以詳細定義頻帶的各參數,包括采樣頻率Fs和頻帶的截止頻率。它的具體選項由Filter Type選項和Design Method選項決定,例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率

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

26、dow Specifications選項,當選取采用窗函數設計時,該選項可定義,它包含了各種窗函數。 帶通濾波器設計實例本文將以一個FIR 濾波器的設計為例來說明如何使用MATLAB設計數字濾波器:在小電流接地系統(tǒng)中注入83.3Hz的正弦信號,對其進行跟蹤分析,要求設計一帶通數字濾波器,濾除工頻及整次諧波,以便在非常復雜的信號中分離出該注入信號。參數要求:96階FIR數字濾波器,采樣頻率1000Hz,采用Hamming窗函數設計。本例中,首先在Filter Type中選擇Bandpass(帶通濾波器);在Design Method選項中選擇FIR Window(FIR濾波器窗函數法),接著在W

27、indow Specifications選項中選取Hamming;指定Filter Order項中的Specify Order95;由于采用窗函數法設計,只要給出通帶下限截止頻率Fc1和通帶上限截止頻率Fc2,選取Fc170Hz,Fc284Hz。設置完以后點擊Design Filter即可得到所設計的FIR濾波器。通過菜單選項Analysis可以在特性區(qū)看到所設計濾波器的幅頻響應、相頻響應、零極點配置和濾波器系數等各種特性。設計完成后將結果保存為1.fda文件。在設計過程中,可以對比濾波器幅頻相頻特性和設計要求,隨時調整參數和濾波器類型,以便得到最佳效果。其它類型的FIR濾波器和IIR濾波器也都可以使用FDATool來設計。圖1 濾波器幅頻和相頻響應(特性區(qū))Fig.1 Magnitude Response and Phase Response of the filter2.2 程序設計法在MATLAB中,對各種濾波器的設計都有相應的計算振幅響應的函數【3】,可以用來做濾波器的程序設計。上例的帶通濾波器可以用程序設計:c=95; 定義濾波器階數96階w1=2*pi*fc1/fs;w2=2*pi*fc2/

溫馨提示

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

評論

0/150

提交評論