基于matlab的fir数字滤波器设计.doc_第1页
基于matlab的fir数字滤波器设计.doc_第2页
基于matlab的fir数字滤波器设计.doc_第3页
基于matlab的fir数字滤波器设计.doc_第4页
基于matlab的fir数字滤波器设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

巢湖学院2005级电子信息工程毕业论文(设计)巢 湖 学 院学 士 论 文(设计)题 目 基于matlab的fir数字滤波器设计姓 名 Michael 所在院系 物理与电子科学系 专业班级 05电子信息工程(2)班 学 号 05029072 指导教师 啊 兵 日 期 2009年 5月 26日 基于matlab的fir数字滤波器设计05电信(2) Michael 指导教师 啊兵摘 要:介绍了应用Matlab语言设计FIR数字滤波器时采用直接程序设计法。同时介绍了FIR数字滤波器几种设计方法的函数调用格式;通过实例,给出了程序设计法的详细步骤,并在Matlab的Simulink环境下,对所设计的滤波器进行了仿真。关键词:数字滤波器;MatlabAbstract: It Introduced the application of Matlab language when designing FIR digital filter with direct procedures. 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的特点MATLAB(Matrix Laboratory)机矩阵实验室是由美国MathWorks公司推出的一款集数值分析、矩阵计算、信号处理和图形显示于一体的工具软件。它的命令语句功能非常强大,包含了大量高度集成的可直接调用的函数,高效简洁;另一方面,它又是一个开放系统,针对不同的学科,推出了不同的工具箱。自1984年推向市场以来,经过十几年的发展和竞争,现已成为国际认可(IEEE)的最优化的科技应用软件一。正是由于MATLAB具有良好的扩展性以及强大的数据分析和处理能力,现已广泛应用于矩阵代数、数值计算、数字信号处理、振动理论、神经网络控制、动态仿真等领域。MATLAB是用M语言编程,尽管不能在M文件中直接调用C语言程序,但可以通过MATLAB提供的应用编程接口(API)来与外部接口,在MATLAB环境中调用C语言或Fortran程序、输入或输出数据以及与其他软件程序建立客户/服务器关系。在MATLAB中调用C语言程序,必须通过MEX文件来实现。2. FIR数字滤波器滤波就是有选择性地提取或去掉(或削弱)某一段或某几段频率范围内的信号,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。数字滤波器可分为IIR (无限冲激响应)和FIR (有限冲激响应)两种结构。随着计算机技术和集成电路技术的发展,数字信号处理以其方便、灵活的特点,越来越引起人们的重视。数字滤波器是数字信号处理的重要内容,数字滤波器的设计已成为数字信号处理研究中的热点之一。应用Matlab语言可以快捷地设计出由软件组成的数字滤波器,很容易通过对参数的修改进行性能的优化。FIR滤波器(即有限长冲击响应滤波器, Finite Imp ulse Response Digital Filter)最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性,这使它在语音处理、图像处理等要求高保真的数字信号处理中显得十分重要。第二章 FIR数字滤波器的设计原理1. FIR滤波器设计原理由于FIR 滤波器冲击响应hn是有限长序列,因此这种结构可用非递归结构来实现1。FIR 数字滤波器系统函数一般形式为:。FIR 滤波器数学表达式可用差分方程来表示:。式中:y(n)输出序列;h(k)滤波器系数;n滤波器阶数;x(k)输入序列。应用Matlab 设计FIR滤波器的主要任务就是根据给定的性能指标,设计一个H(z) ,使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。FIR滤波器的主要设计方法有窗函数法、最优化设计法及约束最小二乘逼近法2。在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,这使得滤波器的设计缓慢,周期变长,不利于设计的优化。Matlab信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应的函数,方便快捷,见表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为权向量最小二乘法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(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数字滤波器的频率响应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)构造希望逼近的频率响应函数。根据设计需要,一般选择相应的线性相位理想滤波器(理想低通,理想高通,理想带通,理想带阻)。应当注意,理想滤波器的截止频率wc点(对低通滤波器)近似为最终设计的FIRDFD的-6dB频率。(3)计算:(4)加窗得到设计结果:3.2实际设计时,一般采用MATLAB工具箱函数实现。步骤(1)由设计者根据设计指标完成,步骤(2)-(4)的解题过程可调用设计函数fir1来实现。Fir1时用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下:hn=fir1(N,wc,ftype,window) fir实现线性相位FIR滤波器的标准窗函数法设计。“标准”时指再设计低通、高通、带通、带阻FIR滤波器时,分别取相应的理想低通、高通、带通、带阻滤波器,故而设计的滤波器的频率响应称为标注频率响应。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,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)函数返回长度为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,阻带的截至频率为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所示。图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 %模拟到数字滤波器的技术指标的转换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可以看出它能满足设计要求。 图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=-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

温馨提示

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

评论

0/150

提交评论