1、%利用模拟巴特沃斯滤波器设计数字低通滤波器%冲激响应不变法wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;T=1;%性能指标Rip=10(-Rp/20);Atn=10(-As/20);OmgP=wp*T;OmgS=ws*T;N,OmgC=buttord(OmgP,OmgS,Rp,As,s); %选取模拟滤波器的阶数cs,ds=butter(N,OmgC, %设计出所需的模拟低通滤波器b,a=impinvar(cs,ds,T); %应用脉冲响应不变法进行转换 %求得相对、绝对频响及相位、群迟延响应db,mag,pha,grd,w=freqz_m(b,a);%下面绘出各条曲线subp
2、lot(2,2,1);plot(w/pi,mag);title(幅频特性xlabel(w(/pi)ylabel(|H(jw)|axis(0,1,0,1.1);set(gca,XTickMode,manualXTick,0 0.2 0.3 0.5 1);YTickModeYTick,0 Atn Rip 1);gridsubplot(2,2,2);plot(w/pi,db);幅频特性(db)dBaxis(0,1,-40,5);,-40 -As -Rp 0);subplot(2,2,3);plot(w/pi,pha/pi);相频特性pha(/pi)axis(0,1,-1,1);subplot(2,2
3、,4);plot(w/pi,grd);群延时Sampleaxis(0,1,0,12);%所使用的M文件函数functiondb,mag,pha,grd,w=freqz_m(b,a)%滤波器的幅值响应(相对、绝对)、相位响应及群延迟%Usage:db,mag,pha,grd,w=freqz_m(b,a) %500点对应0,pi%w 采样频率; b系统函数H(z)的分子项(对FIR,b=h)%a 系统函数H(z)的分母项(对FIR,a=1)H,w=freqz(b,a,500); %500点的复频响应mag=abs(H); %绝对幅值响应db=20*log10(mag/max(mag); %相对幅值
4、响应pha=angle(H); %相位响应grd=grpdelay(b,a,w); %群延迟响应图4-1 利用冲激响应不变法设计的数字低通滤波器的特性曲线4.3.2 基于双线性Z变换法的IIR数字滤波器设计由于的频率映射关系是根据推导的,所以使j轴每隔2/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证:1) s平面的整个j轴仅映射为z平面单位圆上的一周;2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的;3) 这种映射是可逆的,既能由G(s)得到H(z),也能
5、由H(z)得到G(s);4) 如果G(j0)=1,那么。双线性Z变换满足以上4个条件的映射关系,其变换公式为 (4-10)双线性Z变换的基本思路是:首先将整个s平面压缩到一条从/Ts到/Ts的带宽为2/Ts的横带里,然后通过标准的变换关系将横带变换成整个z平面上去,这样就得到s平面与z平面间的一一对应的单值关系。在MATLAB中,双线性Z变换可以通过bilinear函数实现,其调用格式为: Bz,Azbilinear(B,A,Fs);其中B,A为模拟滤波器传递函数G(s)的分子分母多项式的系数向量,而Bz,Az为数字滤波器的传递函数H(z)的分子分母多项式的系数向量。【例4-2】使用双线性Z变
6、换法设计一个低通数字滤波器,给定的数字滤波器的技术指标为fp100Hz,fs=300Hz,p=3dB,p=20dB,抽样频率为Fs=1000Hz。实现例4-2的MATLAB程序如例程4-2所示,程序的运行结果如图4-2所示。例程4-2 基于双线性Z变换法设计数字滤波器clear all;fp=100;fs=300;Fs=1000;rp=3;rs=20;%wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs=Fs/Fs;%Firstly to finish frequency prewarping;wap=tan(wp/2);was=tan(ws/2);n,wn=buttord(wap,
7、was,rp,rs,)%Note:!z,p,k=buttap(n);bp,ap=zp2tf(z,p,k)bs,as=lp2lp(bp,ap,wap)s=(2/Ts)(z-1)(z+1);Ts=1,that is 2fs=1,fs=0.5;bz,az=bilinear(bs,as,Fs/2)h,w=freqz(bz,az,256,Fs*1000);plot(w,abs(h);grid on;【运行结果】n = 2wn = 0.4363bp = 0 1ap = 1.0000 1.4142 1.0000bs = 0.1056as = 0.4595bz = 0.0675 0.1349 0.0675az
8、 = -1.1430 0.4128图4-2 基于双线性Z变换法设计的数字滤波器的特性曲线4.3.3 数字高通、带通及带阻IIR滤波器设计除了低通数字滤波器之外,实际中还常常需要高通、带通及带阻数字滤波器,这三种数字滤波器的设计步骤如下:步骤1:将数字滤波器H(z)的技术指标p和s,通过tan(/2)转变为模拟滤波器G(s)的技术指标p和s,作归一化处理后,得到p1,ss/p;步骤2:化解为模拟原型滤波器G(s)的技术指标;步骤3:设计模拟原型滤波器G(p);步骤4:将G(p)转换为模拟滤波器的转移函数G(s);步骤5:将G(s)转换成数字滤波器的转移函数H(z),s=(z1)(z+1)。所谓原
9、型滤波器是指归一化的低通滤波器。本节主要讨论通过IIR数字滤波器的原型转换设计法和IIR数字滤波器的直接设计方法来设计数字高通、带通及带阻滤波器其转换方法主要有3种:一是直接由模拟低通滤波器转换成数字高通、带通或带阻滤波器;二是先由模拟低通滤波器转换成模拟高通、带通或带阻滤波器,然后再把它转换成相应的数字滤波器;三是将模拟低通滤波器先转换成数字低通滤波器,再通过变量代换变换成高通、带通或带阻滤波器。1. 直接由模拟低通滤波器转换成数字高通、带通或带阻滤波器 (1) 模拟低通滤波器转换成数字高通滤波器【例4-3】 利用巴特沃斯模拟滤波器设计数字高通滤波器,要求通带截止频率为0.6,通带内衰减不大
10、于1dB,阻带起始频率为0.4,阻带内衰减不小于15dB,采样周期Ts1。该例的MATLAB实现如例程4-3所示,该数字滤波器的幅频特性曲线如图4-3所示。例程4-3 基于巴特沃斯模拟滤波器设计数字高通滤波器Wp=0.6*pi;Ws=0.4*pi;Ap=1;N,wn=buttord(Wp/pi,Ws/pi,Ap,As); %计算巴特沃斯滤波器阶次和截止频率b,a=butter(N,wn,high %频率变换法设计巴特沃斯高通滤波器 %数字滤波器响应Plot(w/pi,mag);Title(数字滤波器幅频响应|H(ejOmega)|图4-3 基于巴特沃斯模拟滤波器设计的数字高通滤波器幅频响应曲线
11、(2) 模拟低通滤波器转换成数字带通滤波器【例4-4】利用巴特沃斯模拟滤波器设计数字带通滤波器,要求通带上下截止频率为0.4、0.3,通带内衰减不大于3dB,阻带上下起始频率为0.5、0.2,阻带内衰减不小于18dB。该例的MATLAB实现如例程4-4所示,该数字滤波器的幅频特性曲线如图4-4 所示。例程4-4 基于巴特沃斯模拟滤波器设计数字带通滤波器Wp=0.3*pi,0.4*pi;Ws=0.2*pi,0.5*pi;Ap=3;As=18;bandpass %频率变换法设计巴特沃斯带通滤波器图4-4 基于巴特沃斯模拟滤波器设计的数字带通滤波器的幅频响应曲线(3) 模拟低通滤波器转换成数字带阻滤
12、波器【例4-5】利用巴特沃斯模拟滤波器设计数字带阻滤波器,要求通带上下截止频率为0.8和0.2,通带内衰减不大于1dB,阻带上下起始频率为0.7和0.4,阻带内衰减不小于30dB。该例的MATLAB实现如例程4-5所示,该数字滤波器的幅频特性曲线如图4-5所示。例程4-5 基于巴特沃斯模拟滤波器设计数字带阻滤波器Wp=0.4*pi,0.7*pi;Ws=0.2*pi,0.8*pi;As=30;stop数字滤波器幅频响|H(ejOmega)| 图4-52. 先由模拟低通滤波器转换成模拟高通、带通或带阻滤波器,然后再把它转换成 相应的数字滤波器首先由频率变换将模拟低通原型滤波器变换成模拟高通、带通或
13、带阻滤波器,然后根据双线性Z变换将模拟高通滤波器变换成相应的高通、带通或带阻数字滤波器。其模拟低通原型滤波器变换成模拟高通、带通或带阻滤波器的关系式如表4-1所示。表4-1 模拟低通原型滤波器变换成模拟高通、带通或带阻滤波器频率变换模拟滤波器类型频率变换公式高通带通带阻3. 将模拟低通滤波器先转换成数字低通滤波器,再通过变量代换变换成高通、带通 或带阻滤波器该方法中的模拟低通滤波器先转换成数字低通滤波器,可以利用冲激响应不变法和双线性变换法来实现,再通过变量代换变换成数字高通、带通或带阻滤波器。【例4-6】试用双线性变换法设计一个带通椭圆滤波器使其幅频特性逼近于一个具有如下技术指标的模拟带通滤
14、波器:Wp1=10Hz,Wp2=20Hz,在通带内的最大衰减为0.5dB,在阻带内的最大衰减为50dB,抽样频率为100Hz。MATLAB实现如例程4-6所示,该数字滤波器的幅频特性曲线如图4-6所示。wp1=10;wp2=20;Fs=100;rp=0.5;rs=50;wp1=2*pi*wp1;wp2=2*pi*wp2;Bw=wp2-wp1;Wo=sqrt(wp2*wp1);z,p,k=ellipap(7,rp,rs);A,B,C,D=zp2ss(z,p,k);At,Bt,Ct,Dt=lp2bp(A,B,C,D,Wo,Bw);At1,Bt1,Ct1,Dt1=bilinear(At,Bt,Ct,Dt,Fs);num,den=ss2tf(At1,Bt1,Ct1,Dt1);H,W=freqz(num,den);plot(W*Fs/(2*pi),abs(H);grid;频率/Hz幅值图4-6 椭圆滤波器的频率响应
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1