您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 实验5--基于Matlab的数字滤波器设计
实验五基于Matlab的数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。实验原理:低通滤波器的常用指标如下所述,其典型规格如下:wweGwweGssjwppjwp,)(,1)(1通带边缘频率:p阻带边缘频率:s通带起伏:p通带峰值起伏:))(1(log2010dBpp阻带起伏:s最小阻带衰减:))((log2010dBss数字滤波器有IIR和FIR两种类型,他们的特点和设计方法不同。一、窗函数法设FIR滤波器在Matlab中产生窗函数十分简单:(1)矩形窗调用格式:w=boxcar(n),根据长度n产生一个矩形窗w。(2)三角窗调用格式:w=triang(n),根据长度n产生一个三角窗w。(3)汉宁窗调用格式:w=hanning(n),根据长度n产生一个汉宁窗w。(4)汉明窗调用格式:w=hamming(n),根据长度n产生一个汉明窗w。(5)布莱克曼窗调用格式:w=Blackman(n),根据长度n产生一个布莱克曼窗w。基于窗函数的FIR滤波器设计利用Matlab提供的函数firl来实现。调用格式:firl(n,wn,’ftype’,Window),n为阶数,wn是截止频率(如果输入是形如[w1w2]的矢量时,本函数将设计带通滤波器,其通带为w1ww2)、ftype是滤波器的类型(底通——省略该参数、高通——ftype=high、带阻——ftype=stop)、Window是窗函数。1、设计一个长度为8的线性相位FIR滤波器。Window=boxcar(8);b=fir1(7,0.4,Window);freqz(b,1);Window=blackman(80;b=fir1(7,0.4,Window);freqz(b,1);2、设计线性相位带通滤波器,其长度N=15,上下边带截止频率分别为w1=0.3,w2=0.5Window=blackman(16);B=firl(15,[0.30.5],Window);Freqz(b,1);3、设计指标为,dBAdBRsapp50,3.0,25.0,2.0的底通滤波器。见课本P197。二、IIR滤波器的实现(1)脉冲响应不变法设计数字ButterWorth滤波器调用格式:[bz,az]=impinvar(b,a,sF),再给定模拟滤波器参数b,a和取样频率sF的前提下,计算数字滤波器的参数。两者的冲激响应不变,即模拟滤波器的冲激响应按sF取样后等同于数字滤波器的冲激响应。(2)利用双线性变换法设计数字滤波器ButterWorth滤波器调用格式:[bz,az]=bilinear(b,a,sF),根据给定的分子b,分母系数a和取样频率sF,根据双线性变换将模拟滤波器变换成离散滤波器,具有分子系数向量zb和分母系数向量za4、采样频率为1Hz,通带临界频率pf0.2Hz,通带内衰减小于1dB(1p);阻带临界频率Hzfs3.0,阻带内衰减大于25dB(25s)。设计一个数字滤波器满足以上参数。%直接设计数字滤波器[n,wn]=buttord(0.2,0.3,1,25);[b,a]=butter(n,wn);freqz(b,a,512,1);%脉冲响应不变发设计数字滤波器[n,wn]=buttord(0.2,0.3,1,25,'s');[b,a]=butter(n,wn,'s');freqz(b,a)[bz,az]=impinvar(b,a,1);freqz(bz,az,512,1);%双线性变换法设计ButterWorth数字滤波器[n,wn]=buttord(0.2,0.3,1,25,'s');[b,a]=butter(n,wn,'s');freqz(b,a);[bz,az]=bilinear(b,a,1);freqz(bz,az,512,1);实验内容:利用Matlab编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:,65.0,45.021pp通带峰值起伏:))(1dBp阻带边缘频率:75.0,3.0,21ss,最小阻带衰减:ds(40,B)。分别用IIR和FIR两种数字滤波器类型进行设计。实验要求:给出IIR数字滤波器参数和FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。参考程序:(1)IIR数字滤波器实现(巴特沃什)%DesignofaButterworthBandpassDigitalFilterws=[0.30.75];wp=[0.450.65];rp=1;rs=40;%EstimatetheFilterOrder[n1,wn1]=buttord(wp,ws,rp,rs);%DesigntheFilter[num,den]=butter(n1,wn1);[g,w,pha]=gain(num,den);%Plotthegainandphaseresponsesubplot(1,2,1);plot(w/pi,g);grid;axis([01-605]);xlabel('\omega/\pi');ylabel('GainindB');title('巴特沃什带通滤波器增益响应');subplot(1,2,2);plot(w/pi,pha);grid;xlabel('\omega/\pi');ylabel('phase');title('巴特沃什带通滤波器相位响应');子程序function[g,w,pha]=gain(num,den)%ComputesthegainfunctionindBofa%transferfunctionat256equallyspacedpoints%ontheunitcirclrw=0:pi/255:pi;h=freqz(num,den,w);g=20*log10(abs(h));pha=angle(h);
本文标题:实验5--基于Matlab的数字滤波器设计
链接地址:https://www.777doc.com/doc-5630305 .html