实验三 数字IIR滤波器的设计.docx
- 文档编号:23963015
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:18
- 大小:252.31KB
实验三 数字IIR滤波器的设计.docx
《实验三 数字IIR滤波器的设计.docx》由会员分享,可在线阅读,更多相关《实验三 数字IIR滤波器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
实验三数字IIR滤波器的设计
实验三数字IIR滤波器的设计
一.实验目的
1.加深对选频滤波概念的理解;
2.学会用MATLAB设计IIR数字低通、高通、带通和带阻滤波器。
二.实验原理
2.1数字滤波器的结构
2.1.1直接型——传递函数形式
用分子和分母多项式的系数两个向量来表示。
Num=[b
(1)b
(2)……b(nb+1)]
Den=[a
(1)a
(2)……a(na+1)]
例:
num=[1-311-2718];
den=[16122-4-1];
2.1.2零极点增益形式
用零点向量z、极点向量p以及增益K表示
num=[1-311-2718];
den=[16122-4-1];
[z,p,k]=tf2zp(num,den)
z=0.0000+3.0000i
0.0000-3.0000i
2.0000
1.0000
p=-0.5000+0.5000i
-0.5000-0.5000i
0.5000
-0.2500
k=0.0625
2.1.3级联型——二阶因子级联形式
用
的数组SOS表示
sos=zp2sos(z,p,k)
sos=0.0625-0.18750.12501.0000-0.2500-0.1250
1.0000-0.00009.00001.00001.00000.5000
2.1.4并联型——部分分式展开式形式
用函数residuez()把传递函数形式转换为部分分式形式。
例:
num=[1-311-2718];
den=[16122-4-1];
[r,p,c]=residuez(num,den)
r=
-5.0250-1.0750i
-5.0250+1.0750i
0.9250
27.1875
p=
-0.5000+0.5000i
-0.5000-0.5000i
0.5000
-0.2500
c=-18
然后将共轭极点两两合并成如下的一阶节和二阶节的并联。
MATLABSignalProcessingToolbox中的系统模型之间的相互转换函数有:
[z,p,k]=tf2zp(b,a)
[b,a]=zp2tf(z,p,k)
sos=zp2sos(z,p,k)
[z,p,k]=sos2zp(sos)
[b,a]=sos2tf(sos)
[r,p,k]=residuez(b,a)
[b,a]=residuz(r,p,k)
2.2IIR数字滤波器设计
2.2.1MATLAB中模拟滤波器设计函数介绍
设计流程图:
给定模拟滤波器的技术指标
采用真实角频率
(弧度/秒)
计算模拟滤波器的阶次N和截止频率Wc。
(利用buttord,cheb1ord,cheb2ord,ellipord等)
设计模拟低通滤波器原型G(p)。
(利用buttap,cheb1ap,cheb2ap,ellipap等)
模拟滤波器完全设计函数H(s)
(butter,cheby1,cheby2,ellip)
由模拟低通原型经频率变换获得所需要的低通、高通、带通和带阻滤波器H(s)。
(利用lp2lp,lp2hp,lp2bp,lp2bs)
1.阶次计算函数;
(1)Butterworth模拟滤波器
[N,Wn]=buttord(Wp,Ws,Rp,Rs,’s’);
(2)ChebyshevI型模拟滤波器
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,’s’)
(3)ChebyshevII型模拟滤波器
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,’s’)
(4)椭圆滤波器
[N,Wn]=ellipord(Wp,Ws,Rp,Rs,’s’)
其中:
Wp,Ws分别是通带和阻带的截止频率,单位为弧度/秒。
对低通和高通,Wp,Ws都是标量,对带通和带阻,Wp,Ws是1×2的向量。
Rp,Rs分别是通带和阻带的衰减(dB)。
N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率,它和Wp稍有不同。
2.模拟低通原型滤波器设计函数(注意:
得到的是归一化的传递函数)
(1)Butterworth模拟滤波器
[z,p,k]=buttap(N);
滤波器传递函数具有如下形式:
(2)ChebyshevI型模拟滤波器
[z,p,k]=cheb1ap(N,Rp)
滤波器传递函数具有如下形式:
(3)ChebyshevII型模拟滤波器
[z,p,k]=cheb2ap(N,Rs)
滤波器传递函数具有如下形式:
(4)椭圆滤波器
[z,p,k]=ellipap(N,Rp,Rs)
滤波器传递函数具有如下形式:
其中,N是欲设计的低通原型滤波器的阶次,z,p,k是设计出的极点、零点及增益。
3.频率变换函数
将模拟低通原型转换为实际的低通、高通、带通及带阻滤波器。
(1)[B,A]=lp2lp(b,a,wo),
(2)[B,A]=lp2hp(b,a,wo)
(3)[B,A]=lp2bp(b,a,wo,Bw),
(4)[B,A]=lp2bs(b,a,wo,Bw)
b,a是AFLP的分子、分母的系数向量,B,A是转换后的的分子、分母的系数向量;在
(1)、
(2)中,wo是低通或高通滤波器的截止频率;在(3)、(4)中,wo是带通或带阻滤波器的中心频率,Bw是其带宽。
,
4.模拟滤波器完全设计函数(=2+3)
(1)Butterworth模拟滤波器
[b,a]=butter(N,Wn,’s’)%低通或带通滤波器
[b,a]=butter(N,Wn,’high’,’s’)%高通滤波器
[b,a]=butter(N,Wn,’stop’,’s’)%带阻滤波器
(2)ChebyshevI型模拟滤波器
[b,a]=cheby1(N,Rp,Wn,’s’)%低通或带通滤波器
[b,a]=cheby1(N,Rp,Wn,’high’,’s’)%高通滤波器
[b,a]=cheby1(N,Rp,Wn,’stop’,’s’)%带阻滤波器
(3)ChebyshevII型模拟滤波器
[b,a]=cheby2(N,Rs,Wn,’s’)%低通或带通滤波
[b,a]=cheby2(N,Rs,Wn,’high’,’s’)%高通滤波器
[b,a]=cheby2(N,Rs,Wn,’stop’,’s’)%带阻滤波器
(4)椭圆滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’s’)%低通或带通滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’high’,’s’)%高通滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’stop’,’s’)%带阻滤波器
例1:
设计一个Butterworth模拟低通滤波器,通带截至频率fp=5KHz,阻带截至频率fs=10KHz;通带最大衰减Ap=3,阻带最小衰减As=30。
画出该滤波器的频率响应。
%DesignaButterworthAnaloglowpassfilter
%Specifications
Wp=5000*2*pi;
Ws=10000*2*pi;
Ap=3;As=30;
%ComputeorderandCutofffrequency
[N,Wc]=buttord(Wp,Ws,Ap,As,'s');
%designanaloglowpassfilterprototype
[z,p,k]=buttap(N)%归一化的传递函数G(p)
[b,a]=zp2tf(z,p,k);
%frequencytransform,得到反归一化传递函数G(s)
[bt,at]=lp2lp(b,a,Wp);
w=0:
20*2*pi:
20000*2*pi;
H=freqs(bt,at,w);
subplot(211),plot(w/(2*pi),abs(H));
xlabel('Frequency(Hz)');
ylabel('Magnitude');
title('ButterworthAnaloglowpassfilter');
grid
%Usingfilterwholedesignfuction
[bb,aa]=butter(N,Wc,'s');
w=0:
20*2*pi:
20000*2*pi;
HH=freqs(bb,aa,w);
subplot(212),plot(w/(2*pi),abs(HH));
xlabel('Frequency(Hz)');
ylabel('Magnitude');
title('ButterworthAnaloglowpassfilter');
grid
例2:
设计一个Chebyshev模拟带通滤波器,通带截至频率分别为1000Hz和2000Hz,阻带截至频率分别为500Hz和2500Hz;通带最大衰减Ap=1,阻带最小衰减As=100。
画出该滤波器的频率响应。
%DesignaChebyshevAnalogbandpassfilter
%Specifications
Wp=[10002000]*2*pi;
Ws=[5002500]*2*pi;
Ap=1;As=100
%ComputeorderandCutofffrequency
[N,Wc]=cheb1ord(Wp,Ws,Ap,As,'s');
%designanaloglowpassfilterprototype
[z,p,k]=cheb1ap(N,Ap);
[b,a]=zp2tf(z,p,k);
%findthecenterfrequencyandbandwidth
Wo=sqrt(Wp
(1)*Wp
(2));
Bw=Wp
(2)-Wp
(1);
%frequencytransform
[bt,at]=lp2bp(b,a,Wo,Bw);
w=0:
20*2*pi:
4000*2*pi;
H=freqs(bt,at,w);
subplot(211),plot(w/(2*pi),abs(H));
xlabel('Frequency(Hz)');
ylabel('Magnitude');
title('ChebyshevAnalogbandpassfilter');grid
%Usingfilterwholedesignfuction
[bb,aa]=cheby1(N,Ap,Wc,'s');
w=0:
20*2*pi:
4000*2*pi;
H=freqs(bb,aa,w);
subplot(212),plot(w/(2*pi),abs(H));
xlabel('Frequency(Hz)');
ylabel('Magnitude');
title('ChebyshevAnalogbandpassfilter');grid
给定数字滤波器的技术指标
2.2.2MATLAB中IIR数字滤波器设计函数
给
采用归一化频率
0~1对应
采用真实角频率
(弧度/秒)
计算数字滤波器的
阶次N和截止频率Wc。
(利用buttord,cheb1ord,
cheb2ord,ellipord等)
模拟滤波器完全设计函数H(s)
(butter,cheby1,cheby2,ellip)
数字滤波器完全设计函数H(z)
(butter,cheby1,cheby2,ellip)
1.阶次计算函数;
(1)Butterworth数字滤波器
[N,Wn]=buttord(Wp,Ws,Rp,Rs);
(2)ChebyshevI型数字滤波器
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)
(3)ChebyshevII型数字滤波器
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)
(4)椭圆数字滤波器
[N,Wn]=ellipord(Wp,Ws,Rp,Rs)
其中:
Wp,Ws分别是通带和阻带的数字标准化频率,取值范围在0~1之间,标准化频率1对应的数字频率为
。
对低通和高通,Wp,Ws都是标量,对带通和带阻,Wp,Ws是1×2的向量。
Rp,Rs分别是通带和阻带的衰减(dB)。
N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率,它和Wp稍有不同。
2.数字滤波器完全设计函数(采用的是bilinear变换)
(1)Butterworth数字滤波器
[b,a]=butter(N,Wn)%低通或带通滤波器
[b,a]=butter(N,Wn,’high’)%高通滤波器
[b,a]=butter(N,Wn,’stop’)%带阻滤波器
(2)ChebyshevI型数字滤波器
[b,a]=cheby1(N,Rp,Wn)%低通或带通滤波器
[b,a]=cheby1(N,Rp,Wn,’high’)%高通滤波器
[b,a]=cheby1(N,Rp,Wn,’stop’)%带阻滤波器
(4)ChebyshevII型数字滤波器
[b,a]=cheby2(N,Rs,Wn)%低通或带通滤波器
[b,a]=cheby2(N,Rs,Wn,’high’)%高通滤波器
[b,a]=cheby2(N,Rs,Wn,’stop’)%带阻滤波器
(4)椭圆滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’s’)%低通或带通滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’high’)%高通滤波器
[b,a]=ellip(N,Rp,Rs,Wn,’stop’)%带阻滤波器
3.impinvar
用冲激响应不变法实现模拟滤波器到数字滤波器的变换。
[Bz,Az]=impinvar(B,A,Fs)
4.bilinear双线性变换
用双线性变换实现模拟滤波器到数字滤波器的变换。
[Bz,Az]=bilinear(B,A,Fs)
式中B,A分别是模拟滤波器传递函数G(s)的分子、分母多项式的系数向量,Bz,Az分别是数字滤波器系统函数H(z)的分子、分母多项式的系数向量,Fs是抽样频率。
例3:
设计一个Butterworth数字低通滤波器,通带截至频率fp=100Hz,阻带截至频率fs=300Hz,采样频率Fs=1000Hz;通带最大衰减Ap=3,阻带最小衰减As=20。
画出该滤波器的频率响应。
用该滤波器对50Hz和400Hz的两个正弦信号之和
x=sin(2*pi*50*n/Fs)+sin(2*pi*400*n/Fs)进行滤波,画出滤波前后的信号波形。
%DesignaButterworthDigitallowpassfilter
%UsingbilinearTrasform
%DFspecifications
fp=100;fs=300;Fs=1000;
Ap=3;As=20;
T=1/Fs;
%Convertdigitalfrequencytoanalogfrequency
Wp=(2/T)*tan(fp*pi/Fs);
Ws=(2/T)*tan(fs*pi/Fs);
%Computeorderandcutofffrequency
[N,Wc]=buttord(Wp,Ws,Ap,As,'s')
%computertheanalogfilterprototype
[z,p,k]=buttap(N);
[B,A]=zp2tf(z,p,k)
%frequencytransform
[b,a]=lp2lp(B,A,Wc);
%bilinearTrasform
[bz,az]=bilinear(b,a,1/T)
disp('Butterworthlowpassfilter');
%w=0:
0.01*pi:
pi;
Nn=128;
freqz(bz,az,Nn,Fs);
%-------------------------------------
%NomalizedAngularFrequency
Wp=fp*2/Fs;
Ws=fs*2/Fs;
%Computeorderandcutofffrequency
[N,Wc]=buttord(Wp,Ws,Ap,As);
%Desighdigitalhighpassfilter
[dz,cz]=butter(N,Wc)
%output
figure,
w=0:
0.01*pi:
pi;
freqz(dz,cz,w);
%-------------------------------------
n=[0:
100];
x=sin(2*pi*50*n/Fs)+sin(2*pi*400*n/Fs);
imp=[1;zeros(100,1)];
h=filter(bz,az,imp);
y=conv(h,x);
figure;
subplot(211),plot(n,x);xlabel('n');ylabel('Inputsignal');grid
subplot(212),plot(n,y(21:
121));
xlabel('n');ylabel('Outputsignal');grid
B=001
A=1.00001.41421.0000
bz=0.10530.21070.1053
az=1.0000-0.89580.3172
三、实验内容:
1.用双线性变换法设计ButterworthIIR数字低通滤波器,满足下列指标:
通带截止频率
阻带截止频率
,通带衰减小于1dB,阻带衰减大于15dB。
写出滤波器归一化传输函数
和最终的系统函数
的表达式,画出滤波器的频率响应曲线。
2.用双线性变换法设计ButterworthIIR数字高通滤波器,满足下列指标:
通带截止频率
阻带截止频率
,通带衰减小于3dB,阻带衰减大于15dB。
写出滤波器的归一化传输函数
和最终的系统函数
的表达式,画出滤波器的频率响应曲线。
3.用双线性变换法设计ButterworthIIR数字带通滤波器,满足下列指标:
通带范围为
通带衰减小于3dB,
以下和
以上为阻带,阻带衰减大于18dB。
写出滤波器归一化传输函数
和最终的系统函数
的表达式,画出滤波器的频率响应曲线。
4.用双线性变换法设计ButterworthIIR数字带阻滤波器,满足下列指标:
阻带范围为
阻带衰减大于13dB,
以下和
以上为阻带,通带衰减小于3dB。
写出滤波器归一化传输函数
和最终的系统函数
的表达式,画出滤波器的频率响应曲线。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验三 数字IIR滤波器的设计 实验 数字 IIR 滤波器 设计