實驗三參考IIR數字濾波器的設計

2022-10-05 18:33:03 字數 3236 閱讀 3694

一、實驗目的

(1) 掌握雙線性變換法及脈衝相應不變法設計iir數字濾波器的具體設計方法;

(2) 熟悉用雙線性變換法及脈衝響應不變法設計低通、高通和帶通iir數字濾波器的計算機程式設計。

二、實驗原理

在matlab中,可以用下列函式輔助設計iir數字濾波器:1)利用buttord和cheb1ord可以確定低通原型巴特沃斯和切比雪夫濾波器的階數和截止頻率;2)[num,den]=butter(n,wn)(巴特沃斯)和[num,den]=cheby1(n,wn),[num,den]=cheby2(n,wn)(切比雪夫1型和2型)可以進行濾波器的設計;3)lp2hp,lp2bp,lp2bs可以完成低通濾波器到高通、帶通、帶阻濾波器的轉換;4)使用bilinear可以對模擬濾波器進行雙線性變換,求得數字濾波器的傳輸函式係數;5)利用impinvar可以完成脈衝響應不變法的模擬濾波器到數字濾波器的轉換。

三、要求

(1)在matlab中,熟悉函式butter、cheby1、cheby2的使用,其中:

[num,den]=butter(n,wn)巴特沃斯濾波器設計;

[num,den]=cheby1(n,wn)切比雪夫1型濾波器設計;

[num,den]=cheby2(n,wn)切比雪夫2型濾波器設計。

(2)閱讀附錄中的例項,學習在matlab中進行數字濾波器的設計;

(3)給出iir數字濾波器引數和濾波器的衝激響應,繪出它們的幅度和相位頻響曲線,討論它們各自的實現形式和特點。

四、實驗內容

利用matlab程式設計,用脈衝響應不變法和雙線性變換法設計乙個數字帶通濾波器,指標要求如下:

通帶邊緣頻率:,,通帶峰值起伏:。

阻帶邊緣頻率:,,最小阻帶衰減:。

附錄:例1 設取樣週期t=250μs(取樣頻率fs =4khz),用脈衝響應不變法和雙線性變換法設計乙個三階巴特沃茲濾波器,其3db邊界頻率為fc =1khz。

b,a]=butter(3,2*pi*1000,'s');

num1,den1]=impinvar(b,a,4000);

h1,w]=freqz(num1,den1);

b,a]=butter(3,2/0.00025,'s');

num2,den2]=bilinear(b,a,4000);

h2,w]=freqz(num2,den2);

f=w/pi*2000;

plot(f,abs(h1),'-.',f,abs(h2),'-');

grid;

xlabel('頻率/hz ')

ylabel('幅值/db')

程式中第乙個butter的邊界頻率2π×1000,為脈衝響應不變法原型低通濾波器的邊界頻率;第二個butter的邊界頻率2/t=2/0.00025,為雙線性變換法原型低通濾波器的邊界頻率.圖1給出了這兩種設計方法所得到的頻響,虛線為脈衝響應不變法的結果;實線為雙線性變換法的結果。

脈衝響應不變法由於混疊效應,使得過渡帶和阻帶的衰減特性變差,並且不存在傳輸零點。同時,也看到雙線性變換法,在z=-1即ω=π或f=2000hz處有乙個三階傳輸零點,這個三階零點正是模擬濾波器在ω=∞處的三階傳輸零點通過對映形成的。

例2 設計一數字高通濾波器,它的通帶為400~500hz,通帶內容許有0.5db的波動,阻帶內衰減在小於317hz的頻帶內至少為19db,取樣頻率為1,000hz。

wc=2*1000*tan(2*pi*400/(2*1000));

wt=2*1000*tan(2*pi*317/(2*1000));

n,wn]=cheb1ord(wc,wt,0.5,19,'s');

b,a]=cheby1(n,0.5,wn,'high','s');

num,den]=bilinear(b,a,1000);

h,w]=freqz(num,den);

f=w/pi*500;

plot(f,20*log10(abs(h)));

axis([0,500,-80,10]);

grid;

xlabel('')

ylabel('幅度/db')

例3 設計一巴特沃茲帶通濾波器,其3db邊界頻率分別為f2=110khz和f1=90khz,在阻帶f3 = 120khz處的最小衰減大於10db,取樣頻率fs=400khz

w1=2*400*tan(2*pi*90/(2*400));

w2=2*400*tan(2*pi*110/(2*400));

wr=2*400*tan(2*pi*120/(2*400));

n,wn]=buttord([w1 w2],[0 wr],3,10,'s');

b,a]=butter(n,wn,'s');

num,den]=bilinear(b,a,400);

h,w]=freqz(num,den);

f=w/pi*200;

plot(f,20*log10(abs(h)));

axis([40,160,-30,10]);

grid;

xlabel('頻率/khz')

ylabel('幅度/db')

例4 一數字濾波器取樣頻率fs = 1khz,要求濾除100hz的干擾,其3db的邊界頻率為95hz和105hz,原型歸一化低通濾波器為

w1=95/500;

w2=105/500;

b,a]=butter(1,[w1, w2],'stop');

h,w]=freqz(b,a);

f=w/pi*500;

plot(f,20*log10(abs(h)));

axis([50,150,-30,10]);

grid;

xlabel('頻率/hz')

ylabel('幅度/db')

參考源程式:

close all,clear all ,clc;

mp1=2*tan(0.2*pi/2);mp2=2*tan(0.3*pi/2);ms1=2*tan(0.1*pi/2);ms2=2*tan(0.4*pi/2);%預畸變

r=mp2-mp1參考頻率

rp1=mp1/r;rp2=mp2/r;rs1=ms1/r;rs2=ms2/r; %歸一化模擬帶通濾波器的邊界頻率

r0=sqrt(rp1*rp2);

mpl1=(rp1^2-r0^2)/rp1歸一化模擬低通原型濾波器

mpl2=(rp2^2-r0^2)/rp2;

msl1=(rs1^2-r0^2)/rs1;

msl2=(rs2^2-r0^2)/rs2;

mp=mpl2;

ms=min(abs(msl1),abs(msl2));

數字濾波器設計小結

胡永波數字濾波器簡介 濾波器可廣義的理解為乙個訊號選擇系統,它讓某些訊號成分通過又阻止或衰減另一些成分。在更多的情況下,濾波器可理解為選頻系統,如低通 高通 帶通 帶阻。當然我們無法做到理想情況下的低通 高通 帶通 帶阻,這樣對於設計濾波器我們邊有乙個設計目標或者說設計指標,以低通濾波器為例。數字濾...

FIR數字濾波器的設計

實驗報告 專業班級電科0803姓名班雙江 學號 200848360304 實驗名稱 fir數字濾波器的設計 一 實驗目的 設計fir數字濾波器 二 實驗內容 設計乙個帶通fir數字濾波器,設計指標 通帶衰減1db,阻帶衰減40db,通帶截止頻率 500hz,700hz 阻帶截止頻率 400hz,80...

實驗5基於MATLAB的數字濾波器設計

一 實驗原理 在matlab中,可以用下列函式輔助設計iir數字濾波器 1 利用buttord和cheb1ord可以確定低通原型巴特沃斯和切比雪夫濾波器的階數和截止頻率 2 num,den butter n,wn 巴特沃斯 和 num,den cheby1 n,wn num,den cheby2 n...