基于matlab的fir数字滤波器设计要点(共12页).doc

上传人:飞****2 文档编号:7879397 上传时间:2022-03-06 格式:DOC 页数:12 大小:430KB
返回 下载 相关 举报
基于matlab的fir数字滤波器设计要点(共12页).doc_第1页
第1页 / 共12页
基于matlab的fir数字滤波器设计要点(共12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《基于matlab的fir数字滤波器设计要点(共12页).doc》由会员分享,可在线阅读,更多相关《基于matlab的fir数字滤波器设计要点(共12页).doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上基于matlab的fir数字滤波器设计sea(湖南涉外经济学院 湖南 长沙 )摘 要:介绍了应用Matlab语言设计FIR数字滤波器时采用直接程序设计法。同时介绍了FIR数字滤波器几种设计方法的函数调用格式;通过实例,给出了程序设计法的详细步骤,并在Matlab的Simulink环境下,对所设计的滤波器进行了仿真。关键词:数字滤波器;MatlabAbstract: It Introduced the application of Matlab language when designing FIR digital filter with direct procedur

2、es. At the same time it introduced several formats of function calls when designing FIR digital filter; through some examples of programming method it gives the detail steps of Simulink in Matlab environment, and to simulate the designed filter. Keywords: digital filter MATLAB引言1. MATLAB的特点专心-专注-专业M

3、ATLAB(Matrix Laboratory)机矩阵实验室是由美国MathWorks公司推出的一款集数值分析、矩阵计算、信号处理和图形显示于一体的工具软件。它的命令语句功能非常强大,包含了大量高度集成的可直接调用的函数,高效简洁;另一方面,它又是一个开放系统,针对不同的学科,推出了不同的工具箱。自1984年推向市场以来,经过十几年的发展和竞争,现已成为国际认可(IEEE)的最优化的科技应用软件一。正是由于MATLAB具有良好的扩展性以及强大的数据分析和处理能力,现已广泛应用于矩阵代数、数值计算、数字信号处理、振动理论、神经网络控制、动态仿真等领域。MATLAB是用M语言编程,尽管不能在M文件

4、中直接调用C语言程序,但可以通过MATLAB提供的应用编程接口(API)来与外部接口,在MATLAB环境中调用C语言或Fortran程序、输入或输出数据以及与其他软件程序建立客户/服务器关系。在MATLAB中调用C语言程序,必须通过MEX文件来实现。2. FIR数字滤波器滤波就是有选择性地提取或去掉(或削弱)某一段或某几段频率范围内的信号,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。数字滤波器可分为IIR (无限冲激响应)和FIR (有限冲激响应)两种结构。随着计算机技术和集成电路技术的发展,数字信号处理以其方便、灵活的特点,越来越引起人们的重

5、视。数字滤波器是数字信号处理的重要内容,数字滤波器的设计已成为数字信号处理研究中的热点一。应用Matlab语言可以快捷地设计出由软件组成的数字滤波器,很容易通过对参数的修改进行性能的优化。FIR滤波器(即有限长冲击响应滤波器, Finite Imp ulse Response Digital Filter)最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性,这使它在语音处理、图像处理等要求高保真的数字信号处理中显得十分重要。 FIR数字滤波器的设计原理1. FIR滤波器设计原理由于FIR 滤波器冲击响应hn是有限长序列,因此这种结构可用非递归结构来实现1。FIR 数字滤波器系统函

6、数一般形式为:。FIR 滤波器数学表达式可用差分方程来表示:。式中:y(n)输出序列;h(k)滤波器系数;n滤波器阶数;x(k)输入序列。应用Matlab 设计FIR滤波器的主要任务就是根据给定的性能指标,设计一个H(z) ,使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。FIR滤波器的主要设计方法有窗函数法、最优化设计法及约束最小二乘逼近法2。在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,这使得滤波器的设计缓慢,周期变长,不利于设计的优化。Matlab信号处理

7、工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应的函数,方便快捷,见表1 。表1 FIR数字滤波器设计方法及函数调用格式设计方法调用方法调用格式说明窗函数法Fir1Fir2b=fir1(n,Wn)b=fir2(n,f,m)n为阶数;Wn为截止频率f,m为期望幅频向量和幅值向量最优化设计法FirlsRemezRemezordb=firls(n,f,a)bremez(n,f,a,w) n ,fo ,ao ,w =remezord (f ,a ,dev)两者仅算法不同,f为频率点向量,n为指定频率点幅度响应,w为权系数Fo为归一化频率边界,ao为频带内幅值,w为权向量最小

8、二乘法FirclsFircls1b=fircls(n,f,a,up,lo)b=fircls1(n,wo,dp,ds)up,lo为每个频带上边界和下边界频率,f,a为期望幅频特性的频率向量和幅值向量。Wo为截至频率,dp为离幅值1的最大偏差,ds为阻带离幅值0的最大偏差。2. 用窗函数法设计FIR数字滤波器窗函数设计3技术是FIR滤波器设计的主要方法之一,由于其运算简单、精度高,已成为工程中应用最广泛的设计方法。设计滤波器的基本思想是让待设计的实际滤波器逼近理想特性。理想低通滤波器的频率特性应为:振幅特性在通带内为1,阻带内为0;在通带内的相位特性与w成线性关系,即它对应的理想单位冲激相应hd(

9、n)为可见,理想低通滤波器的单位冲激响应hd (n)是无限长的非因果序列。而我们要设计的是FIR滤波器,其h( n)必然是有限长的,为了构造物理上可以实现的长度为N 的因果线性相位滤波器,必须将hd( n) 截取长度为N 的一段,或者说用一个有限长度的窗口函数序列w ( n) 来截取hd ( n),即h( n) = w ( n) hd ( n),因而窗函数序列的形状及长度的选择就是关键。工程实际中常用的窗函数有6种,即矩形窗、三角形窗、汉宁(Hanning)窗、哈明(Hamming)窗、布莱克曼(Blackman) 窗和凯泽( Kaiser) 窗。它们之间的性能比较如表2所示。实际的FIR数字

10、滤波器的频率响应H() 逼近理想滤波器频率响应Hd()的好坏,取决于窗函数的频率特性W( w)。表2 6种窗函数的特性窗函数旁瓣峰值/dB近似过渡带宽精确过渡带宽阻带最小衰减/dB矩形窗-134/N1.8/N21三角形窗-258/N6.1/N25汉宁窗-318/N6.2/N44哈明窗-418/N6.6/N53布莱克曼窗-5712/N11/N74凯泽窗()-5710/N803. 窗函数法设计步骤3.1用窗函数设计FIR滤波器的步骤为: (1)选择窗函数类型能够和长度,写出窗函数w(n)表达式。根据阻带最小衰减选择窗函数w(n)的类型,再根据过渡带宽确定所选窗函数的长度N。(2)构造希望逼近的频率

11、响应函数。根据设计需要,一般选择相应的线性相位理想滤波器(理想低通,理想高通,理想带通,理想带阻)。应当注意,理想滤波器的截止频率wc点(对低通滤波器)近似为最终设计的FIRDFD的-6dB频率。(3)计算:(4)加窗得到设计结果:3.2实际设计时,一般采用MATLAB工具箱函数实现。步骤(1)由设计者根据设计指标完成,步骤(2)-(4)的解题过程可调用设计函数fir1来实现。Fir1时用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下:hn=fir1(N,wc,ftype,window) fir实现线性相位FIR滤波器的标准窗函数法设计。“标准”时指再设计低通、高通、带通、带阻FIR

12、滤波器时,分别取相应的理想低通、高通、带通、带阻滤波器,故而设计的滤波器的频率响应称为标注频率响应。hn=fir1(N,wc)可得到6dB截至频率为wc的N阶(单位脉冲响应h(n)长度为N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应h(n)为:h(n)=h(n+1),n=0,1,2,N而且满足线性相位条件:h(n)=h(N-1-n)其中wc为对归一化的数字频率,0wc1。hn=fir1(N,wc,ftype)可设计高通和带阻滤波器。当ftype=high时,设计高通FIR滤波器;当ftype=stop时,设计带阻FIR滤波器。hn=fir1(N,

13、wc,ftype,window)通过选择wc、ftype和window参数,可以设计各种加窗滤波器。Fir2可以指定任何形状的Hd(),用help命令查阅其调用格式。4. 用Matlab对FIR数字滤波器进行仿真设计4.1 编写流程4我们以低通数字滤波器设计为例,来介绍用MATLAB对FIR数字滤波器进行仿真过程:设计55阶低通滤波器,截止频率在0.3,并用滤波器对信号sin (2*pi*15*t)+0.5*sin(2*pi*90*t)+0.2*sin(2*pi*300*t)滤波(信号采样频率为600Hz)。1)用RLS设计数字低通滤波器B=fircls1(n,wo,dp,ds)函数返回长度为

14、n+1 线性相位低通FIR滤波器,截止频率为wo,取值0-1之间。通带幅度偏离1.0最大值为dp,阻带偏离0最大值为ds,n为滤波器阶数。2)建立新的M文件选择“File”菜单项,单击“New M-file”按钮,便建立一个M文件5。3)编写程序,调试程序,在MATLAB 平台上得出实验结果编写完程序,单击“Debug”按钮,即可观察到所设计滤波器幅频特性和滤波前后的波形。4.2 实例下面给出两个实例说明用MATLAB设计FIR滤波器的优点,及滤波器的滤波特性。先用最优化设计法设计一个滤波器:例1: 设计一个最小阶数的低通滤波器,采样频率fs=2000 Hz,通带截止频率为500Hz,阻带的截

15、至频率为600Hz,阻带最小衰减为40dB,通带的最大衰减为3dB。在设计之前应先确定用说明方法设计,本例可选择等波纹的最优化设计法。程序如下:fs=2000; %采样频率rp=3; %通带波纹rs=40; %阻带波纹f=500 600; %截止频率a=1 0; %期望的幅度dev=(10(rp/20)-1)/(10(rp/20)+1) 10(-rs/20);n,fo,ao,w=remezord(f,a,dev,fs);b=remez(n,fo,ao,w); %调用最优设计法中remez 函数freqz(b,1,1024,fs)程序运行后,计算机输出该滤波器的幅频及相频响应特性,如图1所示。图

16、1 滤波器输出的幅频及相频响应特性上图中幅频特性曲线从500Hz开始向下折,这是因为题设中通带截止频率为500Hz,同样图中幅频曲线在600Hz降为最低,是因为题设中阻带的截至频率为600Hz。用窗函数设计一个滤波器:例2: 设计一个低通滤波器,性能指标为通带01000Hz,阻带截止频率为2000Hz,通带波动1%,阻带波动5%,采样频率为10000Hz,采用Kaiser窗。主要程序如下:fc=1000;fs=10000;n,Wn,beta,ftype=kaiserord(1000 2000,1 0,0.05 0.05 ,fs); %得出滤波器的阶数w=2*fc/fs %模拟到数字滤波器的技术

17、指标的转换window=kaiser(n+1,beta); %使用kaiser窗函数b=fir1(n,w,window); %使用标准频率响应的加窗设计函数fir1freqz(b,1,512); %数字滤波器频率响应;t=(1:100)/fs;s=sin(2*pi*t*800)+sin(2*pi*t*3000)+sin(2*pi*t*4000); %混和正弦波信号sf=filter(b,1,s); %对信号s进行滤波滤波器长度为13,归一化截止频率为0.2,凯塞窗控制旁瓣的参数为1.5099,以及传递给函数firl用于指定滤波器类型的ftype为low,通过图2-图4可以看出它能满足设计要求。

18、 图2 滤波器的幅频与相频特性图3 滤波前混和正弦波信号的波形图4 滤波后的波形 用最小二乘法设计一个fir滤波器例3:有一个采样频率为1000Hz的信号源,sin(30t)+0.5*sin(180t)+0.2*sin(600t),应用约束最小二乘法设计一个带通滤波器,通带为0.2 0.4,对该信号进行滤波。程序如下: t=0:1/1000:1; sig=sin(2*pi*15*t)+0.5*sin(2*pi*90*t)+0.2*sin(2*pi*300*t); plot(t,sig); n=50; f=0 0.2 0.4 1; a=0 1 0; up=0.02 1.02 0.01; lo=-

19、0.02 0.98 -0.01; b=fircls(n,f,a,up,lo); newsig=fftfilt(b,sig); figure ft=t(301:350); ns=newsig(301:350); zns=interp(ns,12); znt=interp(ft,12); plot(znt,zns);该题滤波器的幅频特性曲线和相频特性曲线及滤波前后的波形如图5、图6和图7所示: 图5 滤波器的幅频特性曲线和相频特性曲线。图6 滤波前的波形图7 滤波后的波形上文分别介绍了fir滤波器设计的三种方法:窗函数法、最优化设计法和最小二乘法设计fir滤波器的程序步骤,并对程序进行了仿真,通过

20、波形图,展示了滤波器的特性曲线和很好的仿真效果。5 结论:FIR滤波器的应用十分广泛,当今的许多信号处理系统,如图像处理等系统要求具有线性相位特性。在这方面FIR滤波器有其独特的优点,能很容易地设计出具有严格线性特性的FIR系统。此外,FIR滤波器的冲激响应是有限长序列,其系统函数为一个多项式,它所含的极点多为原点,所以FIR滤波器永远是稳定的。综上所述,在Matlab中进行数字滤波器的设计,简化为函数的调用,极大方便了数字滤波器的设计。参考文献1曲东才。MATLAB平台下数字微分信号提取研究J。系统仿真学报。2002.Vol.14 No.8。2丁吉,姜涛。基于Matlab的FIR数字滤波器的设计J。长春工业大学学报。2006年9月第27卷第3期。3丁玉美,高西全。数字信号处理M。第二版。西安电子科技大学出版社。4陈玲玲 张虹。基于MATLAB的FIR数字滤波器的优化设计J。科技信息。2008年第32期。5徐金明。MATLAB实用教程M。北京:清华大学出版社,2005年。作者:钱海峰(1991,男, 学士本科生,研究方向:EDA/DSP应用技术 )

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com