




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB的数字滤波器的设计陶雯(安庆师范学院物理与电气工程学院 安徽 安庆 246011)指导老师:张杰摘要:数字滤波器是数字信号处理的重要环节,数字滤波器可分为IIR和FIR两大类。本文介绍了IIR和FIR的基本设计原理以及在MATLAB环境下如何利用直接程序设计法、SPTOOL设计法和FDATOOL设计法给出IIR和FIR数字滤波器的设计方法和操作步骤,并给出设计设计实例及运行结果,同时利用MATLAB环境下的仿真软件SIMULINK对所设计的滤波器进行模拟仿真,仿真结果表示设计参数设置合理。关键词:数字滤波器,仿真,MATLAB,FIR,IIR。1 引言MATLAB是“矩阵实验室
2、”(MATrix LABoratoy)的缩写,它是由美国Mathworks公司于1984年正式推出的,是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。MATLAB是功能强大的科学及工程计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序计算能力。MATLAB的应用领域极为广泛,除数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域,因此,MATLAB是面向21世纪的计算机程序设计及科学计算语言。数字滤波器是指完成信号滤波处理
3、功能的,用有限精度算法实现的离散线性非时变系统,其输入是一组(由模拟信号取样和量化的数字量,其输出是经过变换或说处理的另一组数字量。因此,它本身既可以是用数字硬件装配成德一台完成给定运算的专用数字计算机,也可将所需的运算编成程序,让通用计算机来执行。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。随着数字技术的发展,用数字技术实现滤波器的功能愈来愈受到人们的注意和广泛使用。这里所说的数字滤波器是指理想带通,低通等的频率选择数字滤波器。数字滤波器设计的一个重要步骤是确定一个可实现的传输函数H(z,这个确定传输函数H(z的过程称为数字滤波器设计。数字滤波器的一般设计过程为:(1)按照实际需要,
4、确定滤波器的性能要求(通常在频域内给定数字滤波的性能要求)。(2)寻找一满足预定性能要求的离散时间线性系统。(3)用有限精度的运算实现所设计的系统。(4)通过模拟,验证所设计的系统是否符合给定性能要求。2 数字滤波器的设计滤波器分为两种,分别为模拟滤波器和数字滤波器。数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化的过程中,使信号按预定的形式变化。数字滤波器有多种分类,从数字滤波器功能上分可分为低通、高通、带阻、带通滤波器,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应滤波器(IIR)和有限长冲激响应滤
5、波器(FIR)。数字滤波器指标:一般来说,滤波器的幅频特性是分段常数的,以低通为例,在通带内逼近于1,阻带内逼近与0,实际设计的滤波器并非是锐截止的通带和阻带两个范围,两者之间总有一个过渡带。在设计滤波器时事先给定幅频特性允许误差,在通带范围内幅度响应以误差逼近于1,在阻带内幅度响应以误差逼近于0。 (1)式中wc和wr分别为通带边界频率和阻带边界频率,wr-wc为过渡带。在具体的技术指标中往往用通带波动来表示,用最小阻带衰减At来表示,其具体的对应公式这里就不详述了。2.1 IIR数字滤波器设计IIR DF的冲激响应h(n是无限长的,其输入输出的关系为: (2系统函数为= (3设计无限长单位
6、脉冲响应(IIR)数字滤波器一般可有三种方法。第一种方法,先设计一个合适的模拟滤波器,然后将其数字话,即将S平面映射到Z平面得到所需的数字滤波器。模拟滤波器的设计技巧非常成熟,不仅得到的是闭合形式的公式,而且设计系数已经表格化了。因此,由模拟滤波器设计数字滤波器的方法准确,简便,得到普遍采用。对于这种方法,工程上有两种常见得变换法脉冲响应不变法及双线性变换法。第二种方法,在Z平面直接设计IIR数字滤波器,给出闭合形式的公式,或者以所希望的滤波器响应作为依据,直接在Z平面上通过多次选定极点和零点的位置,以逼近该响应。第三种方法,利用最优化技术设计参数,选定极点和零点在Z平面上的合适位置,在某种最
7、优化准则意义上逼近所希望的响应。但一般不能得到滤波器的系数(即零,极点的位置)作为给定响应的闭合形式函数表达式。优化设计需要完成大量的迭代运算,这种设计法实际上也是IIR滤波器的直接设计。本文着重介绍由模拟滤波器设计相应的IIR数字滤波器的方法。(1)脉冲响应不变法脉冲响应不变法是使数字滤波器的单位脉冲响应序列h(n逼近模拟滤波器的冲激响应,让h(n正好等于的采样值。设已有满足要求的模拟滤波器, 则可因为:,公式导出:具体转换如下:设(以一阶极点为例 (4作拉氏反变换,得采样得作Z变换,得 (5与极点关系为: (6一般对应关系 (7图1 S平面到Z平面变换示意图所以, 模拟系统稳定因果数字系统
8、稳定因果。按照脉冲响应不变法,从S平面到Z平面的映射不是单值关系,而是先将在S平面沿虚轴作周期严拓,再按照映射关系将映射到Z平面,得到,因此,脉冲响应不变法只适用于带限的滤波器(如低通、带通)。在Matlab中利用M文件impinvar可以对模拟传输函数实行脉冲响应不变法。(2)双线性变换法脉冲响应不变法不适带阻和高通滤波器的设计,因为高频带为通带,前述方法易引起混频。故希望:平面虚轴z平面单位圆一周, 且应有,因为, 所以选变换 (8其中可取任意正常数, 后面将导出.设计思路: .设计出模拟滤波器转化成数字滤波器.图2 数字域频率与模拟域频率的对应关系转化公式推导如下:因只关心频率转换, 故
9、可设, 则有, (称为双线性变换 (9所以模拟滤波器转换成数字滤波器的公式为 (10由双线性变换公式, 可得, 视为两复平面变换, 再由.可得 (11从上式可得:时, 上虚轴上单位圆周。时, 上左半平面 上单位圆内。时, 上右半平面上单位圆外。故若模拟滤波器稳定,则双线性变换后数字滤波器也稳定。由于双线性变换法是一种单值映射,因此消除了频率混叠的现象。双线性变换法的缺点是模拟频率与数字频率间的非线性,这种非线性关系要求被变换的连续系统的幅度响应是分段常数型的(某一频率范围内幅度响应近似于某一常数),不然所映射出的数字频率响应相对于原来的模拟频率响应会产生变形。为解决双线性变换中的频率非线性关系
10、,我们采用预畸的方法,即,其中K=2/T。在Matlab中利用M文件bilinear可以对模拟传输函数实行双线性变换法。MATLAB中IIR数字滤波器的设计过程包括两步。第一步,根据给定指标,确定滤波器的阶数N和频率缩放因子Wn。第二步,利用这些参数和给定的波纹参数,确定传输函数的关系。阶数估计:利用双线性变换法设计数字滤波器时,首先要对IIR数字滤波器的阶数进行估计,相应的M文件为:buttord用于巴特沃斯滤波器,cheb1ord用于切比雪夫1型滤波器,cheb2ord用于切比雪夫2型滤波器,ellipord用于椭圆滤波器。滤波器的设计:对于基于双线性变换法的IIR滤波器设计,对应于四种逼
11、近技术(即巴特沃斯、切比雪夫1型和2型及椭圆逼近),MATLAB工具箱中有相应的函数。特别地可以用到下面的M文件:butter用于巴特沃斯滤波器的设计,cheby1用于切比雪夫1型滤波器的设计,cheby2用于切比雪夫2型滤波器的设计,ellip用于椭圆滤波器的设计。这些函数的输出可以是滤波器传输函数分子和分母的系数向量,也可以是滤波器的零极点向量和标量增益因子。同时,利用zp2tf可以由滤波器的零极点向量和标量增益因子得到传输函数分子和分母的系数向量。相应地,利用函数zp2sos可以得到传输函数分子和分母系数向量的二次项因子。在计算出传输函数的系数之后,可以利用M文件freqz来计算频率响应
12、。2.2 FIR数字滤波器设计FIR DF的冲激响应h(n是有限长的,M阶FIR DF可以表示为: (12其系统函数为: (13与IIR数字滤波器的设计不同,FIR滤波器的设计与模拟滤波器的设计没有任何联系。因此,FIR滤波器的设计基于对指定幅度响应的直接逼近,并通常要求其具有线性相位响应。为了保证滤波器具有线性相位特性,滤波器系数必须满足条件:h(n=h(M-1-n。目前关于FIR滤波器的设计方法主要有三种,即窗函数法,频率取样法和切比雪夫等波纹逼近的最优化设计方法。一般应用较多的是第一种和第三种方法。这是因为窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不严格的情况下市比较灵活的
13、。最优化设计法必须借助计算机计算,但是它能得到最佳的等波纹的线性相位FIR滤波器。目前切比雪夫等波纹的线性相位FIR滤波器的计算机机助设计程序已经比较完善,由于采用了REMEZ迭代算法,所以设计效率也很高,在应用中越来越占优势。(1)窗函数法 一般设计过程总是先给定一理想的滤波器频率响应,然后设计一个FIR滤波器,用它的频率响应来逼近理想的。这种逼近中最直接的方法,是在时域中用FIR滤波器的单位脉冲响应h(n去逼近理想的单位脉冲响应。因而,先由的IDTFT导出 (14由于是矩形频率特性,故一定是无限长的序列,且是非因果的。然而FIR滤波器是有限长的,所以用有限长的h(n来逼近无限长的,最简单的
14、方法是截取中最重要的一段,将无限长的截取成长度为M的有限长序列,等效于再上施加了一个长度为M的矩形窗口,更为一般的,可以用一个长度为M的窗口函数w(n来截取,即 (15这一方法通常称为窗函数法,窗口函数的形状及长度M的选择是窗函数法的关键。下面我们一低通为例,了解一下窗函数法的运用:提出希望频率响应函数(低通)图3 理想低通滤波器的频响线性相位, 具有片断特点, 即算出(无限长图4 理想低通的单位脉冲响应(无限长的一部分)加窗,长, 得 (*要线性相位, 就要关于偶对称,而关于偶对称, 故要求所以要求关于偶对称.图5 窗函数 图6 加窗后的单位脉冲响应再回过来检验是否满足精度要求.图7 图4的
15、脉冲响应的频响 图8 理想频响与实际频响的对比若基本满足, 则依截取的, 制硬件, 编软件.为便于选择使用, 将5种常见的窗函数基本参数如表1所示。表1 5种常见的窗函数基本参数类型窗函数的旁瓣峰过渡带宽度加窗后滤波器的阻带最小衰减rectwin134/N21bartlet三角258/N25hanning318/N44hamming418/N53blackman5712/N74(2)频率取样法窗口设计法事从时域出发,把理想的用一定形状的窗口函数截取成有限长的h(n,以此h(n来近似理想的,从而频率响应也近似于理想的频率响应。我们知道一个有限长序列可以通过其频谱的相同长度的等间隔采样值准确地恢复
16、原有的序列。频率采样法便是从频域出发,对理想的频率响应加以等间隔采样 (16然后以此作为实际FIR滤波器的频率特性的离散样本H(k,即 (17由H(k通过IDFT可求出有限长序列h(n为 (18利用M个频率的离散样本H(k同样可求出FIR滤波器的系统函数H(z及频率响应。 (19令可得到滤波器的频率响应。如果设计的是线性相位的FIR数字滤波器,其采样值H(k的相位的幅度一定要满足特定的约束条件,这个设计时一定要注意。(3)最优化设计法最优化设计法事以最佳一致逼近(最大误差最小化)理论为基础,利用雷米兹算法设计的具有等波纹特性的设计方法。具体设计步骤如下:对设计指标进行归一化处理。确定remez
17、ord函数所需要的参数。包括归一化边界频率、各频带的幅度要求和波纹要求等。归一化边界频率总是从0开始到1结束,故只需递增列出中间的边界频率;频带幅度要求不含过渡区,个数是边界频率个数的一半加1;波纹要求是频带内幅度允许的波动要求,与分贝间的关系是: (20利用remezord函数确定remez所需参数。调用remez函数进行设计。利用freqz函数验算技术指标是否满足要求。2.3 数字滤波器类型的选择IIR和FIR各有优缺点,在实际运用中如何选择它们,这里做一个简单的比较。表2 IIR与FIR的比较IIRFIR设计方法利用AF的设计图表,可简单,有效的完成设计一般无解析的设计公式,要借助计算机
18、程序完成设计结果只能得到幅频特性,相频特性未知(缺点),如需要线性相位,需用全通网络校准,但增加滤波器的阶数和复杂性可得到幅频特性(可以多带)和线性相位(优点)稳定性有稳定性问题极点全部在原点(永远稳定),无稳定性问题因果性总是满足,任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列结构递归系统非递归运算误差有反馈,由于运算中的四舍五入会产生极限环一般无反馈,运算误差小快速算法无快速运算方法可用FFT减少运算量从以上简单的比较可以得到,IIR与FIR滤波器各有所长,所以应根据实际应用要求,从多方面考虑加以选择。3 数字滤波器的MATLAB设计3.1 直接程序设计法(1)IIR的直
19、接程序设计法例如欲设计一数字(IIR)带阻滤波器,其数字域指标为:数字阻带边缘频率分别为0.4和0.7,数字通带边缘频率为0.25和0.8,通带波动为1db最小阻带衰减为40db。此题的MATLAB程序为:ws=0.4*pi 0.7*pi; %数字阻带边缘频率wp=0.25*pi 0.8*pi; %数字通带边缘频率rp=1 ; %通带波动(db)as=40; %阻带衰减n,wn=cheb2ord(wp/pi,ws/pi,rp,as;%根据给定指标,确定滤波器的阶数N和频率缩放因子Wnb,a=cheby2(n,as,ws/pi,'stop'%返回的b,a分别为H(z的分子、分母。
20、h,w=freqz(b,a,512;%返回的h,w分别为滤波器的频率响应及其频率plot(w/pi,abs(h;%画出频率响应(以w/pi为横轴)grid;xlabel('w/pi'ylabel('幅值'title('频率响应'程序运行结果为:图9 所设计的带阻滤波器的频率响应在设计中如果该滤波器的特性不满足要求,原有的参数必须做相应的调整,在程序中只需对参数做新的设定就可以得到所需的滤波器。接下来我们来看看此题所设计的滤波器的滤波效果:S为含有3个频率成分的信号(归一化频率(w/2)分别为0.1、0.3、0.45),用所设计的滤波器滤除归一化频
21、率为0.3的成分。n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;sf=filter(b,a,s;subplot(311stem(n,s;title('滤波前的信号'subplot(312; stem(n,sf;title('滤波后的信号'subplot(313;stem(n,s4;title('想要保留的信号'程序运行的结果为:图10 采用filter函数进行数字滤波前后信号比较示意图由图可以看出,滤波后的信号与想要保留的信号基本一致(相位有
22、些许偏差,但基本一致),所以我们可以说该滤波器基本满足了以上所提出的滤波要求。(2)FIR的直接程序设计法例如欲设计一个线性相位数字(FIR)带通滤波器,其数字域指标为:数字通带边界频率为0.35和0.65,数字阻带边界频率为0.2和0.8,通带波动为1db,最小阻带衰减为60db。 FIR数字滤波器的窗函数法此题的MATLAB程序为:ws1=0.2*pi;wp1=0.35*pi;wp2=0.65*pi;ws2=0.8*pi;as=60;tr=min(wp1-ws1,(ws2-wp2;M=ceil(11*pi/tr+1; %滤波器的阶数,程序运行后M=75n=0:1:M-1;r=(M-1/2;
23、%r为群时延wc1=(ws1+wp1/2;wc2=(wp2+ws2/2;hd=sin(wc2*(n-r+eps./(pi*(n-r+eps-sin(wc1*(n-r+eps./(pi*(n-r+eps;%hd为理想滤波器的脉冲响应w_bla=(blackman(M'%长度为M的blackman窗h=hd.*w_bla;%h为滤波器的实际脉冲响应stem(n,h;title('滤波器的实际单位脉冲响应'freqz(h,1,512;title('幅度响应和相位响应'图11 所设计的滤波器的实际单位脉冲响应由上图可知滤波器的实际脉冲响应h是偶对称的,即h(n=
24、h(M-1-n,故该滤波器满足FIR线性相位的条件,该滤波器是线性相位的FIR滤波器。图12 所设计的带通滤波器的幅度和相位响应由滤波器的相位特性也可以看出该滤波器是线性相位的FIR滤波器。接下来我们来看看此题所设计的滤波器的滤波效果:S为含有3个频率成分的信号(归一化频率(w/2l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('滤波前的信号'subplot(312;stem(l,sf;title('滤
25、波后的信号'subplot(313;stem(l,s2;title('想要保留的信号'图13 采用filter函数进行数字滤波前后信号比较示意图由上图可知滤波后的信号和想要保留的信号的幅度和频率基本一致(滤波后的信号相对于想要保的信号有一个相位延迟,这是线性相位FIR滤波器的群延迟引起的,此滤波器留的群延迟r=(M-1/2=37),所以我们可以说该滤波器基本满足了以上所提出的滤波要求。 FIR数字滤波器的频率采样法此题的MATLAB程序为:M=40;%取滤波器的阶数为40al=(M-1/2;%群时延n=0:M-1;T2=0.59417456;T1=0.109021;Hr
26、s=zeros(1,5,T1,T2,ones(1,7,T2,T1,zeros(1,9,T1,T2,ones(1,7,T2,T1,zeros(1,4;%采样值的幅值k1=0:floor(M-1/2;k2=floor(M-1/2+1:M-1;angH=-al*(2*pi/M*k1,al*(2*pi/M*(M-k2;%采样值的相位H=Hrs.*exp(j*angH;h=real(ifft(H,M;%长度为M的单位脉冲响应stem(n,h;title('滤波器的实际单位脉冲响应'freqz(h,1,512;title('幅度响应和相位响应'图14 所设计的滤波器的实际单
27、位脉冲响应由图14可知滤波器的实际脉冲响应h是偶对称的,即h(n=h(M-1-n,故该滤波器满足FIR线性相位的条件,该滤波器是线性相位的FIR滤波器。图15 所设计的带通滤波器的幅度和相位响应由滤波器的相位特性也可以看出该滤波器是线性相位的FIR滤波器。此滤波器的群延时为al=(M-1/2=19.5。接下来我们来看看此题所设计的滤波器的滤波效果:S为含有3个频率成分的信号(归一化频率(w/2)分别为0.05、0.2、0.45),用所设计的滤波器滤除归一化频率为0.05和0.45的成分。l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*
28、l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('滤波前的信号'subplot(312;stem(l,sf;title('滤波后的信号'subplot(313;stem(l,s2;title('想要保留的信号'图16 采用filter函数进行数字滤波前后信号比较示意图同上面分析相似,滤波后的信号和想要保留的信号的幅度和频率基本一致(滤波后的信号相对于想要保的信号有一个相位延迟,这是线性相位FIR滤波器的群延迟引起的,此滤波器留的群延迟(r=(M-1/2=19.5),所以我们可以说该滤波
29、器基本满足了以上所提出的滤波要求。 FIR数字滤波器的最优设计法此题的MATLAB程序为:%设计指标ws1=0.2*pi;wp1=0.35*pi;wp2=0.65*pi;ws2=0.8*pi;rp=1;as=60;%设置边界频率和幅度要求F=ws1/pi,wp1/pi,wp1/pi,ws2/pi;A=0,1,0;%设置各频带的波纹要求devp=(10(rp/20-1/(10(rp/20+1;devs=10(-as/20;dev=devs,devp,devs;%确定remez参数,其中滤波器的阶数为(N+1),程序运行后得到N=26N,Fo,Ao,W=remezord(F,A,dev;%调用re
30、mez函数进行设计h=remez(N,Fo,Ao,W;n=0:N;stem(n,h;title('滤波器的单位冲激响应'freqz(h,1,512;title('幅度响应和相位响应'图17 所设计的滤波器的实际单位脉冲响应由图17可知滤波器的实际脉冲响应h是偶对称的,即h(n=h(N-n,故该滤波器满足FIR线性相位的条件,该滤波器是线性相位的FIR滤波器。图18 所设计的带通滤波器的幅度和相位响应由滤波器的相位特性也可以看出该滤波器是线性相位的FIR滤波器。此滤波器的群延时为al=(N/2=13。接下来我们来看看此题所设计的滤波器的滤波效果:S为含有3个频率成
31、分的信号(归一化频率(w/2l=0:100;s1=sin(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;sf=filter(h,1,s;subplot(311stem(l,s;title('滤波前的信号'subplot(312;stem(l,sf;title('滤波后的信号'subplot(313;stem(l,s2;title('想要保留的信号'图19采用filter函数进行数字滤波前后信号比较示意图同上面分析相似,滤波后的信号和想要保留的信号的幅度和频率基本一致(滤波后的信号相对于想要
32、保的信号有一个相位延迟,这是线性相位FIR滤波器的群延迟引起的,此滤波器留的群延迟r=(N/2=13),所以我们可以说该滤波器基本满足了以上所提出的滤波要求。3.2 利用信号处理工具箱SPTOOL设计法SPTOOL是信号处理工具箱中一个具有交互式图形用户界面的信号处理工具,专门用于完成常用的数字信号处理任务。通过这个工具,只需要鼠标简单的操纵鼠标(点击或拖动),就可以完成载入、观察、分析、实现和设计数字滤波器并进行谱分析等甚至十分复杂的数字信号处理任务,而不需要用户对数字滤波器的设计原理非常熟悉。下面是用SPTOOL工具设计的IIR滤波器对上述信号进行滤波。SPTOOL使用步骤:导入信号、滤波
33、器、频谱,设计滤波器,对信号滤波,分析输入输出信号的谱。1 IIR滤波器的设计创建并导入信号源,在MATLAB命令窗口输入命令:fs=4000(这里取采样频率为4000Hz);n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;此时,变量fs、n、s、s1、s2、s3、s4将显示在MATLAB的workspace列表中。在MTLAB命令窗口中输入sptool,即可弹出SPTOOL的主界面,如图所示: 图20 SPTOOL的主界面这里我们首先来设计前面的IIR带阻滤波器,前面的数字指标转化为模拟指
34、标为:通带频率分别为500Hz和1600Hz,阻带频率为800Hz和1400Hz,通带波动为1db,最小阻带衰减为40db。以上三个信号转换为模拟域的频率分别为400Hz,1200Hz,1800Hz。1)导入信号。使用【file/import】可以导入信号、滤波器和谱。信号的来源可以是MATLAB工作空间变量或MAT数据文件,也可以是在DATA前面的文本框中直接输入信号的数据。这里信号源仍然利用前面程序设计法中的混频信号,将信号s和采样频率fs=4kHz导入并命名为sig1,将信号s2导入命名为sig2,将信号s4导入命名为sig4。2)滤波器的设计。单击Filter栏中的New按钮打开滤波器
35、设计工具。在界面的最上面制定滤波器的名字、采样频率和设计方法。这里命名滤波器名称为filt1,采样频率fs=4kHz和设计方法为chebyshev typeII IIR;左侧的Specification面板用来指定设计指标;minimum order,type为bandstop,通带频率分别为500Hz和1600Hz,阻带频率为800Hz和1400Hz,通带波动为1db,最小阻带衰减为40db。完成以上输入之后单击Apply按钮,则完成了滤波器的设计;中间的Frequency Response面板则根据设计指标自动绘出滤波器的幅频响应,而右侧的Measurements面板显示了滤波器设计完成后
36、的实测参数。此时在Filters栏中,选中filt1按下View按钮即弹出界面,我们还可以观察到滤波器的相位响应、幅频相位响应、脉冲响应、阶跃响应等等(只须点击界面上的相应快捷按钮)。图21 所设计的滤波器的幅值响应3)将滤波器应用到sig1信号序列。分别在Signals、Filters栏中选择sig2、filt1单击Filters栏列表下的Apply按钮,在弹出的Apply Filter对话框中将输出信号命名为Sig3(滤波后信号)。同时按下Alt与Shift键选中Sig3与Sig2点击Signals栏下的View可观察到它们的时域波形(其中红色是信号sig3,蓝色是信号sig2,如图所示。
37、由图可观察出信号s2通过该带阻滤波器后得到很大的衰减,几乎衰减为0。图22 信号s2滤波前后的比较分别在Signals、Filters栏中选择sig1、filt1单击Filters栏列表下的Apply按钮,在弹出的Apply Filter对话框中将输出信号命名为Sig5(滤波后信号)。同时按下Alt与Shift键选中Sig4与Sig5点击Signals栏下的View可观察到它们的时域波形(其中红色是信号sig5,蓝色是信号sig4,如图所示。由图可观察出信号s通过滤波器后所得的信号与s4基本吻合,只是相位上有点偏差,即该带阻滤波器基本滤除了信号s2,滤波效果良好。图23 滤波后的信号与s4的比
38、较4)进行频谱分析。在Signals中选择sig1,单击Spectra栏下的Create按钮,在弹出的Spectra Viewer界面中选择method为FFT,nfft=512,单击Apply按钮生成s的频谱spect1同理得到sig4的频谱spect4,sig5的频谱spect5,同时按下Alt与Shift键选中spect1与spect5,点击Spectra栏下的View可观察到它们的频谱,下图是sig1和sig5的频谱,其中红色代表滤波后信号的频谱(sig5),蓝色代表滤波前信号的频谱(sig1)。图24 滤波前后信号的频谱的比较由频谱可以看出,混频信号s中频率为1200Hz的部分基本被
39、滤除了,频率为400Hz和1800Hz的部分基本被保留下来,未受滤波的影响。同时按下Alt与Shift键选中spect4与spect5,点击Spectra栏下的View可观察到它们的频谱,下图是sig4和sig5的频谱,其中红色代表滤波后信号的频谱(sig5),蓝色代表滤波前信号的频谱(sig4),如下图。图25 滤波后的信号与信号s4频谱的比较由上图可以看出,s4与滤波后的信号频谱基本一致,所以我们可以得出结论:该带阻滤波器的滤波效果较好。2 FIR滤波器的设计与1的设计过程类似,这里就简述过程。创建并导入信号源,在MATLAB命令窗口输入命令:fs=4000Hz;l=0:100;s1=si
40、n(0.1*pi*l;s2=sin(0.4*pi*l;s3=sin(pi*0.9*l;s=s1+s2+s3;s4=s1+s3;前面的数字指标转化为模拟指标为:通带频率分别为700Hz和1300Hz,阻带频率为400Hz和1600Hz,通带波动为1db,最小阻带衰减为60db,以上三个信号转换为模拟域的频率分别为200Hz,800Hz,1800Hz。1)导入信号。将信号s和采样频率fs=4kHz导入并命名为sig1,将信号s2导入命名为sig2,将信号s4导入命名为sig4。2) 滤波器的设计。图26 所设计的滤波器的幅值响应3) 将滤波器应用到sig1信号、sig4信号,生成的信号分别命名为s
41、ig5和sig3。图27 信号s4滤波前后的比较上图中sig4信号与sig3信号比较(其中红色代表sig3,蓝色代表sig4)可知信号s4通过该带通滤波器后得到大大衰减,几乎衰减为0。图28 滤波后的信号与信号s2的比较上图中sig2和sig5比较(其中红色代表sig5,蓝色代表sig2),可知信号s通过该带通滤波器后的信号与s2基本具有相同的频率和幅值(只是相位上有一点误差),所以我们认为该滤波器较好的滤掉了s4,滤波性能优良。4)进行频谱分析。分别生成sig1的频谱spect1,sig2的频谱spect2,sig5的频谱spect5。下图是sig1和sig5的频谱,其中红色代表滤波后信号的
42、频谱(sig5),蓝色代表滤波前信号的频谱(sig1)。由图可看出该滤波器基本滤除了频率为200Hz和1800Hz的信号,保留了频率为800Hz的信号。图29 滤波前后信号的频谱的比较下图是sig2和sig5的频谱,其中红色代表滤波后信号的频谱(sig5),蓝色代表滤波前信号的频谱(sig2)。由图可看出滤波后的信号与s2具有基本一致的频谱。图30 滤波后的信号与信号s2频谱的比较3.3 滤波器分析设计工具箱FDATOOL法FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专
43、门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。Design Method(设计方法)
44、选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify OrderN-1),如果选择Minimum Order
45、则MATLAB根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参
46、数。Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。Window Specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。现用FDATOOL设计一个满足上述要求的IIR滤波器:在命令窗口里输入fdatool,即可弹出fdatool的主界面,如图31 fdatool的主界图32 所设计的带阻滤波器的幅值响
47、应在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。同样地,我们也可以设计满足前面指标的FIR滤波器,其幅值响应为:图33所设计的带通滤波器的幅值响应在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。4 Simulink仿真本文通过调用Simuink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。在Si
48、mulink环境下,通过设置滤波器功能模块的参数(digital filter design模块的参数)来直接设计滤波器。我们先设计满足上述带阻IIR滤波器参数的滤波器,再进行仿真。找到Simuink功能模块,communications blockset/comm filters/filter designs link/digital filter design,找到digital filter design模块。分别在sources和sinks中找到正玄信号示波器,再在math operation中找到相加器。信号n=0:100;s1=sin(pi*0.2*n;s2=sin(pi*0.6*n;s3=sin(pi*0.9*n;s4=s1+s3;s=s1+s2+s3;修改正玄信号的参数sine type/time based、frequency分别改为0.2*pi,0.6*pi,0.9*pi,sample time改为1。其他模块的参数根据上述要求进行调整。将下图分别是仿真框图和滤波前后信号的波形:图34 仿真框图图35 滤波前后信号的比较由上图可以看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业病危害因素识别与防治考核试卷
- 禽类屠宰设备性能提升与优化考核试卷
- 网络安全防护在智慧能源的分布式能源系统中评估考核试卷
- 聚环氧乙烷纤维的可持续性评估考核试卷
- 羽绒制品行业人才培养与技能提升考核试卷
- 物流设备绿色制造与回收考核试卷
- 木竹浆生产过程中安全生产管理考核试卷
- 老年人合法权益维护考核试卷
- 索道施工过程中的质量控制体系考核试卷
- 科技创新趋势的未来挑战与应对策略考核试卷
- 财务英文词汇大全
- 年产吲哚美辛的生产设计设计说明书
- QD型吊钩桥式起重机使用维护说明书
- 新高考:地理选科指导
- 各种变频器的使用说明书.lg-ig53parameter list
- GB/T 19582.2-2008基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南
- 细胞的能量“货币”ATP说课课件-高一上学期生物人教版必修1
- 解剖学课件神经系统课件
- 印巴战争(修改稿)
- 工程项目管理实施方案(5篇)
- 2021年全国质量奖现场汇报材料-基础设施、设备及设施管理过程课件
评论
0/150
提交评论