毕业设计(论文)基于MATLAB的fir数字滤波器的设计_第1页
毕业设计(论文)基于MATLAB的fir数字滤波器的设计_第2页
毕业设计(论文)基于MATLAB的fir数字滤波器的设计_第3页
毕业设计(论文)基于MATLAB的fir数字滤波器的设计_第4页
毕业设计(论文)基于MATLAB的fir数字滤波器的设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要-3引言-3正文-4 一、数字滤波器的设计-41.1 iir数字滤波器设计-61.1.1脉冲响应不变法-61.1.2双线性变换法-81.2 fir数字滤波器设计-101.2.1窗函数法-111.2.2频率取样法-131.2.3最优化设计法-14二、数字滤波器的matlab设计-152.1 fir数字滤波器的窗函数法-152.2 fir数字滤波器的频率采样法-19 2.3 fir数字滤波器的最优设计法-23设计总结-27参考文献-27摘要:数字滤波器是数字信号处理的重要环节,数字滤波器可分为iir和fir两大类。本文介绍了iir和fir的基本设计原理以及在matlab环境下给出iir和f

2、ir数字滤波器的设计方法和操作步骤,并给出设计设计实例及运行结果。 引言:matlab是“矩阵实验室”(matrix laboratoy)的缩写,它是由美国mathworks公司于1984年正式推出的,是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。matlab是功能强大的科学及工程计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序计算能力。matlab的应用领域极为广泛,除数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等

3、领域,因此,matlab是面向21世纪的计算机程序设计及科学计算语言。 数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换或说处理的另一组数字量。因此,它本身既可以是用数字硬件装配成德一台完成给定运算的专用数字计算机,也可将所需的运算编成程序,让通用计算机来执行。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。随着数字技术的发展,用数字技术实现滤波器的功能愈来愈受到人们的注意和广泛使用。这里所说的数字滤波器是指理想带通,低通等的频率选择数字滤波器。数字滤波器设计的一个重要步骤是确定一个可实现的传输函数

4、h(z),这个确定传输函数h(z)的过程称为数字滤波器设计。数字滤波器的一般设计过程为:(1) 按照实际需要,确定滤波器的性能要求(通常在频域内给定数字滤波的性能要求)。(2) 寻找一满足预定性能要求的离散时间线性系统。(3) 用有限精度的运算实现所设计的系统。(4) 通过模拟,验证所设计的系统是否符合给定性能要求。1、 数字滤波器的设计数字滤波器一词出现在60年代中期。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。 数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数

5、字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即12抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。 数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及fir滤波器。

6、 滤波器分为两种,分别为模拟滤波器和数字滤波器。数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化的过程中,使信号按预定的形式变化。数字滤波器有多种分类,从数字滤波器功能上分可分为低通、高通、带阻、带通滤波器,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应滤波器(iir)和有限长冲激响应滤波器(fir)。表一 iir与fir的比较 iir fir设计方法利用af的设计图表,可简单,有效的完成设计一般无解析的设计公式,要借助计算机程序完成设计结果只能得到幅频特性,相频特性未知(缺点),如需要线性相位,需用全

7、通网络校准,但增加滤波器的阶数和复杂性可得到幅频特性(可以多带)和线性相位(优点)稳定性有稳定性问题极点全部在原点(永远稳定),无稳定性问题因果性总是满足,任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列结构递归系统非递归运算误差有反馈,由于运算中的四舍五入会产生极限环一般无反馈,运算误差小快速算法无快速运算方法可用fft减少运算量 (从以上简单的比较可以得到,iir与fir滤波器各有所长,所以应根据实际应用要求,从多方面考虑加以选择。) 数字滤波器指标:一般来说,滤波器的幅频特性是分段常数的,以低通为例,在通带内逼近于1,阻带内逼近与0,实际设计的滤波器并非是锐截止的通带和阻

8、带两个范围,两者之间总有一个过渡带。在设计滤波器时事先给定幅频特性允许误差,在通带范围内幅度响应以误差逼近于1,在阻带内幅度响应以误差逼近于0。 (1)式中wc和wr分别为通带边界频率和阻带边界频率,wr-wc为过渡带。在具体的技术指标中往往用通带波动来表示,用最小阻带衰减at来表示。1.1 iir数字滤波器设计 iir df的冲激响应h(n)是无限长的,其输入输出的关系为: (2)系统函数为= (3) 设计无限长单位脉冲响应(iir)数字滤波器一般可有三种方法: 第一种方法,先设计一个合适的模拟滤波器,然后将其数字话,即将s平面映射到z平面得到所需的数字滤波器。模拟滤波器的设计技巧非常成熟,

9、不仅得到的是闭合形式的公式,而且设计系数已经表格化了。因此,由模拟滤波器设计数字滤波器的方法准确,简便,得到普遍采用。对于这种方法,工程上有两种常见得变换法脉冲响应不变法及双线性变换法。 第二种方法,在z平面直接设计iir数字滤波器,给出闭合形式的公式,或者以所希望的滤波器响应作为依据,直接在z平面上通过多次选定极点和零点的位置,以逼近该响应。第三种方法,利用最优化技术设计参数,选定极点和零点在z平面上的合适位置,在某种最优化准则意义上逼近所希望的响应。但一般不能得到滤波器的系数(即零,极点的位置)作为给定响应的闭合形式函数表达式。优化设计需要完成大量的迭代运算,这种设计法实际上也是iir滤波

10、器的直接设计。1.1.1脉冲响应不变法 脉冲响应不变法是使数字滤波器的单位脉冲响应序列h(n)逼近模拟滤波器的冲激响应,让h(n)正好等于的采样值。设已有满足要求的模拟滤波器, 则可 因为:,公式导出:具体转换如下:设(以一阶极点为例) (4)作拉氏反变换,得采样得作z变换,得 (5)与极点关系为: (6) 一般对应关系 (7)图1 s平面到z平面变换示意图所以, 模拟系统稳定因果数字系统稳定因果。按照脉冲响应不变法,从s平面到z平面的映射不是单值关系,而是先将在s平面沿虚轴作周期严拓,再按照映射关系将映射到z平面,得到,因此,脉冲响应不变法只适用于带限的滤波器(如低通、带通)。在matlab

11、中利用m文件impinvar可以对模拟传输函数实行脉冲响应不变法。1.1.2双线性变换法 脉冲响应不变法不适带阻和高通滤波器的设计,因为高频带为通带,前述方法易引起混频。故希望:平面虚轴z平面单位圆一周, 且应有,因为, 所以选变换 (8)其中可取任意正常数, 后面将导出.设计思路: .设计出模拟滤波器转化成数字滤波器. 图2 数字域频率与模拟域频率的对应关系转化公式推导如下:因只关心频率转换, 故可设, 则有, (称为双线性变换) (9)所以模拟滤波器转换成数字滤波器的公式为 (10)由双线性变换公式, 可得, 视为两复平面变换, 再由.可得 (11)从上式可得:时, 上虚轴上单位圆周。时,

12、 上左半平面 上单位圆内。时, 上右半平面上单位圆外。故若模拟滤波器稳定,则双线性变换后数字滤波器也稳定。由于双线性变换法是一种单值映射,因此消除了频率混叠的现象。双线性变换法的缺点是模拟频率与数字频率间的非线性,这种非线性关系要求被变换的连续系统的幅度响应是分段常数型的(某一频率范围内幅度响应近似于某一常数),不然所映射出的数字频率响应相对于原来的模拟频率响应会产生变形。为解决双线性变换中的频率非线性关系,我们采用预畸的方法,即,其中k=2/t。 在matlab中利用m文件bilinear可以对模拟传输函数实行双线性变换法。matlab中iir数字滤波器的设计过程包括两步。第一步,根据给定指

13、标,确定滤波器的阶数n和频率缩放因子wn。第二步,利用这些参数和给定的波纹参数,确定传输函数的关系。阶数估计:利用双线性变换法设计数字滤波器时,首先要对iir数字滤波器的阶数进行估计,相应的m文件为:buttord用于巴特沃斯滤波器,cheb1ord用于切比雪夫1型滤波器,cheb2ord用于切比雪夫2型滤波器,ellipord用于椭圆滤波器。滤波器的设计:对于基于双线性变换法的iir滤波器设计,对应于四种逼近技术(即巴特沃斯、切比雪夫1型和2型及椭圆逼近),matlab工具箱中有相应的函数。特别地可以用到下面的m文件:butter用于巴特沃斯滤波器的设计,cheby1用于切比雪夫1型滤波器的

14、设计,cheby2用于切比雪夫2型滤波器的设计,ellip用于椭圆滤波器的设计。这些函数的输出可以是滤波器传输函数分子和分母的系数向量,也可以是滤波器的零极点向量和标量增益因子。同时,利用zp2tf可以由滤波器的零极点向量和标量增益因子得到传输函数分子和分母的系数向量。相应地,利用函数zp2sos可以得到传输函数分子和分母系数向量的二次项因子。在计算出传输函数的系数之后,可以利用m文件freqz来计算频率响应。1.2 fir数字滤波器设计fir df的冲激响应h(n)是有限长的,m阶fir df可以表示为: (12)其系统函数为: (13)与iir数字滤波器的设计不同,fir滤波器的设计与模拟

15、滤波器的设计没有任何联系。因此,fir滤波器的设计基于对指定幅度响应的直接逼近,并通常要求其具有线性相位响应。为了保证滤波器具有线性相位特性,滤波器系数必须满足条件:h(n)=h(m-1-n)。目前关于fir滤波器的设计方法主要有三种,即窗函数法,频率取样法和切比雪夫等波纹逼近的最优化设计方法。一般应用较多的是第一种和第三种方法。这是因为窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不严格的情况下市比较灵活的。最优化设计法必须借助计算机计算,但是它能得到最佳的等波纹的线性相位fir滤波器。目前切比雪夫等波纹的线性相位fir滤波器的计算机机助设计程序已经比较完善,由于采用了remez迭

16、代算法,所以设计效率也很高,在应用中越来越占优势。1.2.1窗函数法 一般设计过程总是先给定一理想的滤波器频率响应,然后设计一个fir滤波器,用它的频率响应来逼近理想的。这种逼近中最直接的方法,是在时域中用fir滤波器的单位脉冲响应h(n)去逼近理想的单位脉冲响应。因而,先由的idtft导出 (14)由于是矩形频率特性,故一定是无限长的序列,且是非因果的。然而fir滤波器是有限长的,所以用有限长的h(n)来逼近无限长的,最简单的方法是截取中最重要的一段,将无限长的截取成长度为m的有限长序列,等效于再上施加了一个长度为m的矩形窗口,更为一般的,可以用一个长度为m的窗口函数w(n)来截取,即 (1

17、5)这一方法通常称为窗函数法,窗口函数的形状及长度m的选择是窗函数法的关键。下面我们一低通为例,了解一下窗函数法的运用:提出希望频率响应函数(低通) 图3 理想低通滤波器的频响线性相位, 具有片断特点, 即算出(无限长)图4 理想低通的单位脉冲响应(无限长的一部分)加窗,长, 得 (*)要线性相位, 就要关于偶对称,而关于偶对称, 故要求所以要求关于偶对称. 图5 窗函数 图6 加窗后的单位脉冲响应再回过来检验是否满足精度要求. 图7 图4的脉冲响应的频响 图8 理想频响与实际频响的对比若基本满足, 则依截取的, 制硬件, 编软件.为便于选择使用, 将5种常见的窗函数基本参数如表1所示。表二

18、5种常见的窗函数基本参数类型窗函数的旁瓣峰过渡带宽度加窗后滤波器的阻带最小衰减rectwin-134p/n-21bartlet三角-258p/n-25hanning-318p/n-44hamming-418p/n-53blackman-5712p/n-74 1.2.2 频率取样法 窗口设计法事从时域出发,把理想的用一定形状的窗口函数截取成有限长的h(n),以此h(n)来近似理想的,从而频率响应也近似于理想的频率响应。我们知道一个有限长序列可以通过其频谱的相同长度的等间隔采样值准确地恢复原有的序列。频率采样法便是从频域出发,对理想的频率响应加以等间隔采样 (16)然后以此作为实际fir滤波器的频

19、率特性的离散样本h(k),即 (17)由h(k)通过idft可求出有限长序列h(n)为 (18)利用m个频率的离散样本h(k)同样可求出fir滤波器的系统函数h(z)及频率响应。(19)令可得到滤波器的频率响应。如果设计的是线性相位的fir数字滤波器,其采样值h(k)的相位的幅度一定要满足特定的约束条件,这个设计时一定要注意。1.2.3 最优化设计法 最优化设计法事以最佳一致逼近(最大误差最小化)理论为基础,利用雷米兹算法设计的具有等波纹特性的设计方法。具体设计步骤如下: 对设计指标进行归一化处理。 确定remezord函数所需要的参数。包括归一化边界频率、各频带的幅度要求和波纹要求等。归一化

20、边界频率总是从0开始到1结束,故只需递增列出中间的边界频率;频带幅度要求不含过渡区,个数是边界频率个数的一半加1;波纹要求是频带内幅度允许的波动要求,与分贝间的关系是: (20) 利用remezord函数确定remez所需参数。 调用remez函数进行设计。利用freqz函数验算技术指标是否满足要求。2、 数字滤波器的matlab设计2.1 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; %滤波器

21、的阶数,程序运行后m=75n=0:1:m-1;r=(m-1)/2;%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 所设计的滤波器的实际单位脉冲响应由

22、上图可知滤波器的实际脉冲响应h是偶对称的,即h(n)=h(m-1-n),故该滤波器满足fir线性相位的条件,该滤波器是线性相位的fir滤波器。图12 所设计的带通滤波器的幅度和相位响应由滤波器的相位特性也可以看出该滤波器是线性相位的fir滤波器。接下来我们来看看此题所设计的滤波器的滤波效果: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*l);s=s1+s2+s3;sf=filter(h,1

23、,s);subplot(311)stem(l,s);title(滤波前的信号);subplot(312);stem(l,sf);title(滤波后的信号);subplot(313);stem(l,s2);title(想要保留的信号);图13 采用filter函数进行数字滤波前后信号比较示意图由上图可知滤波后的信号和想要保留的信号的幅度和频率基本一致(滤波后的信号相对于想要保的信号有一个相位延迟,这是线性相位fir滤波器的群延迟引起的,此滤波器留的群延迟r=(m-1)/2=37),所以我们可以说该滤波器基本满足了以上所提出的滤波要求。2.2 fir数字滤波器的频率采样法此题的matlab程序为:

24、m=40;%取滤波器的阶数为40al=(m-1)/2;%群时延n=0:m-1;t2=0.59417456;t1=0.109021;hrs=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);

25、title(滤波器的实际单位脉冲响应);freqz(h,1,512);title(幅度响应和相位响应);图14 所设计的滤波器的实际单位脉冲响应由图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),用所设计的滤波器滤除归一化

26、频率为0.05和0.45的成分。l=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(311)stem(l,s);title(滤波前的信号);subplot(312);stem(l,sf);title(滤波后的信号);subplot(313);stem(l,s2);title(想要保留的信号);图16 采用filter函数进行数字滤波前后信号比较示意图同上面分析相似,滤波后的信号和想要保留的信号的幅度和频率基本一致(滤波后的信号相对于想要保的信号有一个相位延迟

27、,这是线性相位fir滤波器的群延迟引起的,此滤波器留的群延迟(r=(m-1)/2=19.5),所以我们可以说该滤波器基本满足了以上所提出的滤波要求。2.3 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;%确定r

28、emez参数,其中滤波器的阶数为(n+1),程序运行后得到n=26n,fo,ao,w=remezord(f,a,dev);%调用remez函数进行设计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个频率成分的信号(归一化频率(w/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论