实验三 iir 数字滤波器的设计

23
实实实 实实实 IIR IIR 实实实实实实实实 实实实实实实实实

Upload: darius

Post on 16-Mar-2016

117 views

Category:

Documents


4 download

DESCRIPTION

实验三 IIR 数字滤波器的设计. 一、实验目的. 掌握双线性变换法及脉冲相应不变法设计 IIR 数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通 IIR 数字滤波器的计算机编程。 观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点。 熟悉 Butterworth 滤波器、 Chebyshev 滤波器和椭圆滤波器的频率特性。. 二、实验原理与方法. (1) 脉冲响应不变法 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 实验三 IIR 数字滤波器的设计

实验三实验三IIRIIR 数字滤波器的设计数字滤波器的设计

Page 2: 实验三 IIR 数字滤波器的设计

一、实验目的 一、实验目的 掌握双线性变换法及脉冲相应不变法设计掌握双线性变换法及脉冲相应不变法设计 IIRIIR 数字数字滤波器的具体设计方法及其原理,熟悉用双线性滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通变换法及脉冲响应不变法设计低通、高通和带通 IIIRIR 数字滤波器的计算机编程。 数字滤波器的计算机编程。 观察双线性变换及脉冲响应不变法设计的滤波器观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变的频域特性,了解双线性变换法及脉冲响应不变法的特点。法的特点。 熟悉熟悉 ButterworthButterworth 滤波器、滤波器、 ChebyshevChebyshev 滤波器滤波器和椭圆滤波器的频率特性。和椭圆滤波器的频率特性。

Page 3: 实验三 IIR 数字滤波器的设计

二、实验原理与方法二、实验原理与方法 (1) (1) 脉冲响应不变法脉冲响应不变法 用数字滤波器的单位脉冲响应序列用数字滤波器的单位脉冲响应序列 h(n)h(n) 模模仿模拟滤波器的冲激响应仿模拟滤波器的冲激响应 ha(t),ha(t), 让让 h(n)h(n) 正正好等于好等于 ha(t)ha(t) 的采样值,即的采样值,即 h(n)= ha(nT)h(n)= ha(nT) 其中其中 TT 为采样间隔,如果以为采样间隔,如果以 Ha(S)Ha(S) 及及 H(z)H(z)分别表示分别表示 ha(t)ha(t) 的拉式变换及的拉式变换及 h(n)h(n) 的的 ZZ 变变换换

Page 4: 实验三 IIR 数字滤波器的设计

(2) (2) 双线性变换法双线性变换法 以低通数字滤波器为例,将设计步骤归纳如下:以低通数字滤波器为例,将设计步骤归纳如下: 确定数字滤波器的性能指标:通带临界频率确定数字滤波器的性能指标:通带临界频率 fpfp 、、阻带临界频率阻带临界频率 frfr ;通带内的最大衰减;通带内的最大衰减 ApAp ;阻带;阻带内的最小衰减内的最小衰减 ArAr ;采样周期;采样周期 TT ; ; 确定相应的数字角频率,确定相应的数字角频率, ωp=2πfpTωp=2πfpT ;; ωr=2πfrTωr=2πfrT ;; 计算经过预畸的相应模拟低通原型的频率计算经过预畸的相应模拟低通原型的频率 根据根据 ΩpΩp 和和 ΩrΩr 计算模拟低通原型滤波器的阶数计算模拟低通原型滤波器的阶数 NN ,,并求得低通原型的传递函数并求得低通原型的传递函数 Ha(s)Ha(s) ; ; 用上面的双线性变换公式代入用上面的双线性变换公式代入 Ha(s)Ha(s) ,求出所设,求出所设计的传递函数计的传递函数 H(z)H(z) ; ; 分析滤波器特性,检查其指标是否满足要求。分析滤波器特性,检查其指标是否满足要求。

)2wtan(

T2Ω

Page 5: 实验三 IIR 数字滤波器的设计

三、实验内容及步骤三、实验内容及步骤 (1)(1) 、、 fp=0.3KHz,Ap=0.8dB, fr=0.2KHz,Arfp=0.3KHz,Ap=0.8dB, fr=0.2KHz,Ar=20dB,T=1ms=20dB,T=1ms ;设计一;设计一 ChebyshevChebyshev 高通高通滤波器;观察其通带损耗和阻带衰减是否滤波器;观察其通带损耗和阻带衰减是否满足要求。满足要求。

Page 6: 实验三 IIR 数字滤波器的设计

方法一:采用双线性变换法方法一:采用双线性变换法 参考源程序如下:参考源程序如下: wc=2*1000*tan(2*pi*300/(2*1000))wc=2*1000*tan(2*pi*300/(2*1000)) wr=2*1000*tan(2*pi*200/(2*1000));wr=2*1000*tan(2*pi*200/(2*1000)); [N,wn]=cheb1ord(wc,wr,0.8,20,'s')[N,wn]=cheb1ord(wc,wr,0.8,20,'s') [B,A] = cheby1(N,0.8,wn,'high','s');[B,A] = cheby1(N,0.8,wn,'high','s'); [num,den]=bilinear(B,A,1000);[num,den]=bilinear(B,A,1000); [h,w]=freqz(num,den);[h,w]=freqz(num,den); f = w/(2*pi)*1000;f = w/(2*pi)*1000; plot(f,20*log10(abs(h)),'r');plot(f,20*log10(abs(h)),'r'); axis([0,500,-80,10]);axis([0,500,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 7: 实验三 IIR 数字滤波器的设计
Page 8: 实验三 IIR 数字滤波器的设计

方法二:用方法二:用 matlabmatlab 函数设计数字滤波器函数设计数字滤波器 % % 方法:利用方法:利用 matlabmatlab 提供的提供的 cheby1cheby1 函数直接设计数字函数直接设计数字滤波器,源程序如下:滤波器,源程序如下: wc=300/500wc=300/500 wr=200/500;wr=200/500; [N,wn]=cheb1ord(wc,wr,0.8,20)[N,wn]=cheb1ord(wc,wr,0.8,20) [B1,A1] = cheby1(N,0.8,wn,'high')[B1,A1] = cheby1(N,0.8,wn,'high') [h1,w] = freqz(B1,A1);[h1,w] = freqz(B1,A1); f = w/(2*pi)*1000;f = w/(2*pi)*1000; plot(f,20*log10(abs(h1)),'r');plot(f,20*log10(abs(h1)),'r'); axis([0,500,-80,10]);axis([0,500,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 9: 实验三 IIR 数字滤波器的设计
Page 10: 实验三 IIR 数字滤波器的设计

(2)(2) 、、 fp=0.2KHz,Ap=1dB, fr=0.3KHz,Ar=2fp=0.2KHz,Ap=1dB, fr=0.3KHz,Ar=25dB,T=1ms5dB,T=1ms ;分别用脉冲响应不变法及双;分别用脉冲响应不变法及双线性变换法设计一线性变换法设计一 ButterworthButterworth 数字低通数字低通滤波器,观察所设计数字滤波器的幅频特滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满性曲线,记录带宽和衰减量,检查是否满足要求。比较这两种方法的优缺点。 足要求。比较这两种方法的优缺点。

Page 11: 实验三 IIR 数字滤波器的设计

%% 上机实验内容(上机实验内容( 22 )分别用脉冲响应不变法和双线性变换法设计巴特沃思)分别用脉冲响应不变法和双线性变换法设计巴特沃思数字低通滤波器数字低通滤波器 T = 0.001;T = 0.001; fs = 1000;fs = 1000; fc = 200;fc = 200; fr = 300;fr = 300; wp1 = 2*pi*fcwp1 = 2*pi*fc wr1 = 2*pi*frwr1 = 2*pi*fr [N1,wn1] = buttord(wp1,wr1,1,25,'s')[N1,wn1] = buttord(wp1,wr1,1,25,'s') [B1,A1] = butter(N1,wn1,'s');[B1,A1] = butter(N1,wn1,'s'); [num1,den1] = impinvar(B1,A1,fs);[num1,den1] = impinvar(B1,A1,fs); [h1,w] = freqz(num1,den1);[h1,w] = freqz(num1,den1); wp2 = 2*fs*tan(2*pi*fc/(2*fs))wp2 = 2*fs*tan(2*pi*fc/(2*fs)) wr2 = 2*fs*tan(2*pi*fr/(2*fs))wr2 = 2*fs*tan(2*pi*fr/(2*fs)) [N2,wn2] = buttord(wp2,wr2,1,25,'s')[N2,wn2] = buttord(wp2,wr2,1,25,'s') [B2,A2] = butter(N2,wn2,'s');[B2,A2] = butter(N2,wn2,'s'); [num2,den2] = bilinear(B2,A2,fs);[num2,den2] = bilinear(B2,A2,fs); [h2,w] = freqz(num2,den2);[h2,w] = freqz(num2,den2); f = w/(2*pi)*fs;f = w/(2*pi)*fs; plot(f,20*log10(abs(h1)),'-.',f,20*log10(abs(h2)),'-');plot(f,20*log10(abs(h1)),'-.',f,20*log10(abs(h2)),'-'); axis([0,500,-80,10]);axis([0,500,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 12: 实验三 IIR 数字滤波器的设计
Page 13: 实验三 IIR 数字滤波器的设计

(3)(3) 、利用双线性变换法分别设计满足下列、利用双线性变换法分别设计满足下列指标的指标的 ButterworthButterworth 型、型、 ChebyshevChebyshev 型和型和椭圆型数字低通滤波器,并作图验证设计椭圆型数字低通滤波器,并作图验证设计结果。结果。 fp=1.2kHz, Ap≤0.5dB, fr=2KHz, Ar≥40dB,fp=1.2kHz, Ap≤0.5dB, fr=2KHz, Ar≥40dB, fs=8KHz fs=8KHz

Page 14: 实验三 IIR 数字滤波器的设计

%% 上机实验内容(上机实验内容( 33 )巴特沃思低通滤波器)巴特沃思低通滤波器 % % 方法:采用双线性变换法方法:采用双线性变换法 fs=8000;fs=8000; wc=2*fs*tan(2*pi*1200/(2*fs))wc=2*fs*tan(2*pi*1200/(2*fs)) wr=2*fs*tan(2*pi*2000/(2*fs));wr=2*fs*tan(2*pi*2000/(2*fs)); [N,wn]=buttord(wc,wr,0.5,40,'s')[N,wn]=buttord(wc,wr,0.5,40,'s') [B,A] = butter(N,wn,'s');[B,A] = butter(N,wn,'s'); [num,den]=bilinear(B,A,fs);[num,den]=bilinear(B,A,fs); [h,w]=freqz(num,den);[h,w]=freqz(num,den); f = w/(2*pi)*fs;f = w/(2*pi)*fs; plot(f,20*log10(abs(h)),'r');plot(f,20*log10(abs(h)),'r'); axis([0,fs/2,-80,10]);axis([0,fs/2,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 15: 实验三 IIR 数字滤波器的设计
Page 16: 实验三 IIR 数字滤波器的设计

%% 上机实验内容(上机实验内容( 33 )切比雪夫低通滤波器)切比雪夫低通滤波器 % % 方法:采用双线性变换法方法:采用双线性变换法 fs=8000;fs=8000; wc=2*fs*tan(2*pi*1200/(2*fs))wc=2*fs*tan(2*pi*1200/(2*fs)) wr=2*fs*tan(2*pi*2000/(2*fs));wr=2*fs*tan(2*pi*2000/(2*fs)); [N,wn]=cheb1ord(wc,wr,0.5,40,'s')[N,wn]=cheb1ord(wc,wr,0.5,40,'s') [B,A] = cheby1(N,0.5,wn,'s');[B,A] = cheby1(N,0.5,wn,'s'); [num,den]=bilinear(B,A,fs);[num,den]=bilinear(B,A,fs); [h,w]=freqz(num,den);[h,w]=freqz(num,den); f = w/(2*pi)*fs;f = w/(2*pi)*fs; plot(f,20*log10(abs(h)),'r');plot(f,20*log10(abs(h)),'r'); axis([0,fs/2,-80,10]);axis([0,fs/2,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 17: 实验三 IIR 数字滤波器的设计
Page 18: 实验三 IIR 数字滤波器的设计

%% 上机实验内容(上机实验内容( 33 )椭圆低通滤波器)椭圆低通滤波器 % % 方法:采用双线性变换法方法:采用双线性变换法 fs=8000;fs=8000; wc=2*fs*tan(2*pi*1200/(2*fs))wc=2*fs*tan(2*pi*1200/(2*fs)) wr=2*fs*tan(2*pi*2000/(2*fs));wr=2*fs*tan(2*pi*2000/(2*fs)); [N,wn]=ellipord(wc,wr,0.5,40,'s')[N,wn]=ellipord(wc,wr,0.5,40,'s') [B,A] = ellip(N,0.5,40,wn,'s');[B,A] = ellip(N,0.5,40,wn,'s'); [num,den]=bilinear(B,A,fs);[num,den]=bilinear(B,A,fs); [h,w]=freqz(num,den);[h,w]=freqz(num,den); f = w/(2*pi)*fs;f = w/(2*pi)*fs; plot(f,20*log10(abs(h)),'r');plot(f,20*log10(abs(h)),'r'); axis([0,fs/2,-80,10]);axis([0,fs/2,-80,10]); grid;grid; xlabel('xlabel(' 频率频率 /Hz ')/Hz ') ylabel('ylabel(' 幅值幅值 /dB')/dB')

Page 19: 实验三 IIR 数字滤波器的设计
Page 20: 实验三 IIR 数字滤波器的设计

四、实验思考四、实验思考 双线性变换法中双线性变换法中 ΩΩ 和和 ωω 之间的关系是非线之间的关系是非线性的,在实验中你注意到这种非线性关系性的,在实验中你注意到这种非线性关系了吗?从哪几种数字滤波器的幅频特性曲了吗?从哪几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系?线中可以观察到这种非线性关系?

Page 21: 实验三 IIR 数字滤波器的设计

五、实 践 题五、实 践 题 要求用要求用 matlabmatlab 求解和设计。求解和设计。 11 、用脉冲响应不变法将模拟滤波器、用脉冲响应不变法将模拟滤波器 H(s)=(3s+2)/H(s)=(3s+2)/(2s(2s22+3s+1)+3s+1) 变为数字滤波器变为数字滤波器 H(z)H(z) ,采样周期,采样周期 TsTs== 0.1s0.1s 22 、设计一个巴特沃思高通数字滤波器,通带边、设计一个巴特沃思高通数字滤波器,通带边界频率为界频率为 300Hz300Hz ,阻带边界频率为,阻带边界频率为 200Hz200Hz ,通带,通带波纹小于波纹小于 1db1db ,阻带衰减大于,阻带衰减大于 20db20db ,采样频率,采样频率为为 1000Hz1000Hz 。(方法一采用。(方法一采用 matlabmatlab 直接设计数直接设计数字滤波器,方法二用双线性变换法)字滤波器,方法二用双线性变换法)

Page 22: 实验三 IIR 数字滤波器的设计

实 践 题 参考答案实 践 题 参考答案 11 、、 H(z)H(z) 分子多项式系数分子多项式系数 bz1 =bz1 =[[ 0.3000 - 0.3000 -

0.28070.2807]] ,分母多项式系数,分母多项式系数 za1 =za1 =[[ 2.0000 2.0000 -3.7121 1.7214-3.7121 1.7214]]

22 、设计结果见下页图、设计结果见下页图

Page 23: 实验三 IIR 数字滤波器的设计