您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字信号处理Matlab实验三 IIR数字滤波器的设计
XXXX大学XXXX学院课程名称:数字信号处理班级:姓名:学号:实验地点:日期:实验名称IIR数字滤波器的设计实验目的:加深理解IIR数字滤波器的时域特性和频域特性,掌握IIR数字滤波器的设计原理与设计方法,以及IIR数字滤波器的应用。实验内容:IIR数字滤波器一般为线性移不变的因果离散系统,N阶IIR数字滤波器的系统函数可以表达为-1z的有理多项式,即-1-1-2-M=0012-1-2-N-112=1z+z+z++z(z)==1+z+z++z1+zMjjMNNiibbbbbHaaaa式中:系数ia至少有一个非零。对于因果IIR数据滤波器,应满足MN。IIR数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现。首先在频域将数字滤波器设计指标转换为模拟滤波器设计指标,然后将任意的模拟滤波器为原型模拟低通滤波器指标,根据模拟滤波器的设计指标来设计出模拟低通滤波器(s)LPH,然后又(s)LPH经过相应的复频域转换得到H(s),最后又H(s)经过脉冲响应不变法或双线性变换法得到所需要的IIIR数字滤波器H(z)。由此可见,IIR数字滤波器设计的重要环节是模拟滤波器的设计。设计模拟低通滤波器的主要方法有Butterwort、Chebyshev、和椭圆等滤波器设计方法。实验步骤1.Butterwort数字滤波器设计(1)Butterwort滤波器是通带阻带都单调衰减的滤波器。调用buttord函数可以确定巴特沃斯滤波器的阶数,其格式为:[N,Omegac]=buttord(Omegap,Omegas,Rp,As,’s’)。其中,输入参数Rp,As分别为通带最大衰减和阻带最小衰减,以dB为单位;Omegap,Omegas分别为通带截止频率和阻带截止频率,‘s’说明所设计的是模拟滤波器。输出参数为滤波器的阶数,Omegac为3dB截止频率。(2)调用归一化巴特沃斯模拟原型滤波器的函数,其格式为[z0,po,k0]=buttap(N)其中,只要输入巴特沃斯滤波器的阶数,它就可以返回零点和极点数组z0、p0以及增益k0。当需要任意Omegac的未归一化的巴特沃斯滤波器时,就要用Omegac乘以p0或k0来进行归一化。(1)调用脉冲响应不变法或双线性变换法来设计巴特沃斯数字滤波器的函数,其格式分别如下。①脉冲响应不变法:[bd,ad]=impinvar(b,a,Fs)。其中,b为模拟滤波器分子系数向量;a为模拟滤波器分母系数向量;Fs为采样频率;bd为数字滤波器的分子多项式系数;ad为数字滤波器的分母多项式系数。②双线性变换法:[bd,ad]=bilinear(b,a,Fs),参数含义与impinvar一致。2.ChebyshevI型数字滤波器设计ChebyshevI型数字滤波器为通带纹波控制器:在通带呈现纹波特性,在阻带单调衰减。其格式如下:[N,Omegac]=cheb1ord(Omegap,Omegas,Rp,As,’s’)[z0,p0,k0]=cheb1ap(N,Rp)参数含义与buttordbuttap中参数一致。3.ChebyshevII型数字滤波器设计ChebyshevII型数字滤波器为阻带纹波控制器:在阻带呈现纹波特性,在通带单调衰减。其格式如下:[N,Omegac]=cheb2ord(Omegap,Omegas,Rp,As,’s’)[z0,p0,k0]=cheb2ap(N,Rp)实验结果及分析:例3-1实验代码wp=0.4*pi;%数字通带频率ws=0.6*pi;%数字阻带频率Rp=0.5;%通带波动(dB)As=50;%阻带波动(dB)Fs=1000;%置Fs=1000OmegaP=wp*Fs;%原型通带频率OmegaS=ws*Fs;%原型阻带频率ep=sqrt(10^(Rp/10)-1);%通带波动参数Ripple=sqrt(1/(1+ep*ep));%通带波动Attn=1/(10^(As/20));%阻带衰减%模拟巴特沃斯原型滤波器计算[N,OmegaC]=buttord(OmegaP,OmegaS,Rp,As,'s');%原型的阶数和截止频率的计算[z0,p0,k0]=buttap(N);%归一化巴特沃斯原型设计函数p=p0*OmegaC;z=z0*OmegaC;%将零点极点乘以OmegaC,得到非归一化零极点k=k0*OmegaC^N;%将k()乘以Omegac^N,得到非归一化kba=k*real(poly(z));%有零点计算分子系数向量aa=real(poly(p));%有极点计算分母系数向量[bd,ad]=impinvar(ba,aa,Fs);%调用脉冲响应不变法函数%检验频率响应[H,w]=freqz(bd,ad,1000,'whole');%计算数字系统频率响应H=(H(1:1:501))';w=(w(1:1:501))';%取其前一半值,并化为列向量mag=abs(H);%求其幅特性db=20*log10((mag+eps)/max(mag));%化为分贝值pha=angle(H);%求其相特性grd=grpdelay(bd,ad,w);%求其群延迟subplot(2,2,1);plot(w/pi,mag);title('幅度响应');xlabel('');ylabel('|H|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);gridon;%画刻度线set(gca,'XTickMode','manual','YTick',[0,Attn,Ripple,1]);subplot(2,2,3);plot(w/pi,db);title('幅度(单位:dB)');xlabel('频率(单位:pi)');ylabel('分贝');axis([0,1,-100,50]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[-100,-50,0,50]);gridon;set(gca,'YTickLabelMode','manual','YTickLabels',['-100','-50','0','50']);subplot(2,2,2);plot(w/pi,pha/pi);title('相位响应');xlabel('');ylabel('单位:pi');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[-1,0,1]);gridon;subplot(2,2,4);plot(w/pi,grd);title('群延迟');xlabel('频率(单位:pi)');ylabel('样本');axis([0,1,0,20]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[0:2:20]);gridon;%之图形背景为白色set(gcf,'color','w');%之图背景为白色输出图像结果如下图:例3-2实验代码OmegaP=wp*Fs;%原型通带频率OmegaS=ws*Fs;%原型阻带频率ep=sqrt(10^(Rp/10)-1);%通带波动参数Ripple=sqrt(1/(1+ep*ep));%通带波动Attn=1/(10^(As/20));%阻带衰减%模拟化切比雪夫I型原型滤波器计算[N,OmegaC]=cheb1ord(OmegaP,OmegaS,Rp,As,'s');%原型的阶数和截止频率的计算[z0,p0,k0]=cheb1ap(N,Rp);%归一化化切比雪夫I型设计函数p=p0*OmegaC;z=z0*OmegaC;%将零点极点乘以OmegaC,得到非归一化零极点k=k0*OmegaC^N;%将k()乘以Omegac^N,得到非归一化kba=k*real(poly(z));%有零点计算分子系数向量aa=real(poly(p));%有极点计算分母系数向量[bd,ad]=impinvar(ba,aa,Fs);%调用脉冲响应不变法函数%检验频率响应[H,w]=freqz(bd,ad,1000,'whole');%计算数字系统频率响应H=(H(1:1:501))';w=(w(1:1:501))';%取其前一半值,并化为列向量mag=abs(H);%求其幅特性db=20*log10((mag+eps)/max(mag));%化为分贝值pha=angle(H);%求其相特性grd=grpdelay(bd,ad,w);%求其群延迟subplot(2,2,1);plot(w/pi,mag);title('幅度响应');xlabel('');ylabel('|H|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);gridon;%画刻度线set(gca,'XTickMode','manual','YTick',[0,Attn,Ripple,1]);subplot(2,2,3);plot(w/pi,db);title('幅度(单位:dB)');xlabel('频率(单位:pi)');ylabel('分贝');axis([0,1,-100,50]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[-100,-50,0,50]);gridon;set(gca,'YTickLabelMode','manual','YTickLabels',['-100','-50','0','50']);subplot(2,2,2);plot(w/pi,pha/pi);title('相位响应');xlabel('');ylabel('单位:pi');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[-1,0,1]);gridon;subplot(2,2,4);plot(w/pi,grd);title('群延迟');xlabel('频率(单位:pi)');ylabel('样本');axis([0,1,0,20]);set(gca,'XTickMode','manual','XTick',[0,0.4,0.6,1]);%画刻度线set(gca,'YTickMode','manual','YTick',[0:2:20]);gridon;%之图形背景为白色set(gcf,'color','w');%之图背景为白色输出图像结果如下图:例3-3实验代码wp=0.4*pi;%数字通带频率ws=0.6*pi;%数字阻带频率Rp=0.5;%通带波动(dB)As=50;%阻带波动(dB)%模拟原型指标频率逆映射Fs=1000;T=1/Fs;OmegaP=(2/T)*tan(wp/2);%原型通带频率预修正OmegaS=(2/T)*tan(ws/2);%原型阻带频率预修正ep=sqrt(10^(Rp/10)-1);%通带波动参数Ripple=sqrt(1/(1+ep*ep));%通带波动Attn=1/(10^(As/20));%阻带衰减%模拟化切比雪夫I型原型滤波器计算[N,OmegaC]=buttord(OmegaP,OmegaS,Rp,As,'s');%原型的阶数和截止频率的计算[z0,p0,k0]
本文标题:数字信号处理Matlab实验三 IIR数字滤波器的设计
链接地址:https://www.777doc.com/doc-4914520 .html