您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于MATLAB的数字滤波器设计
唐山学院数字信号处理课程设计题目基于MATLAB的数字滤波器设计系(部)信息工程系班级姓名学号指导教师2014年1月6日至1月10日共1周2014年1月9日课程设计成绩评定表出勤情况出勤天数缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定指导教师签名:年月日1引言数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。目前,数字信号滤波器的设计在图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。近年来迅速发展起来。MATLAB是美国MathWorks公司推出的一套用于工程计算的可视化高性能语言与软件环境。MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。MATLAB推出的工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应用,其中的信号处理(signalproeessing)、图像处理(imageproeessing)、小波(wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行的特殊滤波等优点。本文主要介绍有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)的设计原理、方法、步骤以及在MATLAB中的实现,并以实例形式列出设计程序和仿真结果。数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行的特殊滤波等优点]1[。本文主要介绍有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)的设计原理、方法、步骤以及在MATLAB中的实现,并以实例形式列出设计程序和仿真结果。2设计内容、要求及数字滤波器2.1设计内容所设计的数字滤波器应完成以下功能:(1)设计低通、带通、高通数字滤波器;(2)可以对合成信号(含低频、中频、高频分量)、语音信号进行滤波;(3)通过GUI界面进行控制。2.2设计要求1、根据题目要求进行数字滤波器总体设计。2.完成数字滤波器具体设计。(1)输入信号的选定。(2)确定设计方法、设计指标。3.滤波器程序的设计。(1)完整源程序。(2)运行结果图。2.3数字滤波器的定义和分类数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。数字滤波器,输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件]2[。对于数字滤波器而言,若系统函数为H(z),其脉冲响应为h(n),输入时间序列为x(n),则它们在时域内的关系式如下:y(n)=h(n)*x(n)(2-1)在Z域内,输入和输出存在如下关系:Y(z)=H(z)X(z)(2-2)式中,X(z)、Y(z)分别为x(n)和y(n)的Z变换。在频域内,输入和输出则存在如下关系:Y(j)=H(j)X(j)(2-3)式中,H(j)是数字滤波器的频率特性;X(j)Y(j)分别为x(n)和y(n)的频谱,而为数字角频率。数字滤波器可以有很多种分类方法,但总体上可分为两大类。一类称为经典滤波器,即一般的滤波器,其特点是输入信号中的有用成分和希望滤除的成分占用不同的频带,通过合适的选频滤波器可以实现滤波]3[。例如,若输入信号中有干扰,信号和干扰的频带互不重叠,则可滤出信号中的干扰得到纯信号。但是,如果输入信号中信号和干扰的频带相重叠,则干扰就不能被有效的滤出。另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的成分频带重叠。对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器。从时域特性上看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。对于有限冲激响应数字滤波器(FIR),其输出y(n)只取决于有限个过去和现在的输入,x(n),x(n-1),…,x(n-m),滤波器的输入输出关系可表示为y(n)=Mrrrnxb0)((2-4)对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为y(n)+Nkkknya1)(=Mrrrnxb0)((2-5)该差分方程的单位冲激响应是无限延续的。在本次设计当中我用双线性变换法设计了无限冲激响应数字滤波器(IIR),其中涉及到两种类型的滤波器,即巴特沃斯(Butterworth)滤波器和切比雪夫(Chebyshev)滤波器,包括了低通、带通和高通滤波器。3MATLAB简介3.1MATLAB概述MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软件库,集数值计算、矩阵运算和信号处理与显示于一身。该软件最初是由美国教授CleveMoler创立的。该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此产生了]5[。最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。1984年该公司推出了第一个MATLAB的商业版,并用C语言作出了全部改写。现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steveBangert主持开发编译解释程序,SteveKleiman完成图形功能的设计,JohnLittle和CleveMoler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。接着又添加了丰富的图形图像处理、多媒体功能、符号运算和与其它流行软件的接口功能,使MATLAB的功能越来越强大。MTALAB系统主要由以下五个部分组成]6[:(1)MATALB语言体系。MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB工作环境。这是对MATLAB提供给用户使用的管理功能的总称。包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。(3)图形句相系统。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能]7[。除此之外,MATLAB系统还具有如下特点:(1)具有易学易用的语言体系;(2)具有交互式的工作环境;(3)具有多层面的图像处理系统;(4)具有丰富高效的MATLAB工具箱;(5)具有便利的程序接口(API);(6)应用领域广泛;(7)嵌入了面向对象编程语言。3.2系统界面设计工具—GUI概述图形用户界面(graphicaluserinterfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。在MATLAB中GUI是一中包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MAYLAB将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:包括GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用hsave课保存图形窗口时将生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制GUI展开时的各种特征。GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置GUIDE应用程序的选项来运行GUIDE;第二步:使用界面设计编辑器进行面设计;第三步:编写控件行为响应控制(即回调函数)代码。3.3界面设计及使用说明首先我们新建一个GUI文件:File/New/GUI如下图所示:图3-1GUI创建界面选择BlankGUI(Default),其次,进入GUI开发环境如下图所示:图3-2GUI开发环境然后开始进行布件,在本次的设计中用到了六个按钮,以及七个图框。对每一个按钮进行调用程序。在此有两种方法,第一可以将程序编写在一个独立的M文件中,然后双击按钮,在Callback正添加建好的独立文件,第二可以选中按钮之后,在工具栏中选择键,会弹出一个M文件,在最低端编写程序,然后进行运行,观察波形图等。在本次设计中,我采用了第二种方法,优点在于可以按钮和出图框对应。4IIR数字滤波器的设计4.1IIR数字滤波器的设计思路IIR滤波器设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Ellipse)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求。利用双线性变化法设计滤波器的变换原理:双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。为了克服脉冲响应不变法的多值映射这一缺点,首先把整个s平面压缩变换到某一中介的s1平面的一横带里,然后再通过标准变换关系将此横带变换到整个z平面上去,这样就使s平面与z平面是一一对应关系,消除了多值变换性,同时也就消除了频谱混叠现象。利用双线性变化法设计数字滤波器的步骤:1.将设计指标归一化处理。2.根据归一化频率,确定最小阶数N和频率参数Wn。可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord等。3.运用最小阶数N设计模拟低通滤波器原型。根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:butter,chebyl,cheby2,ellip和bessel。如[B,A]=butter(N,Wn,'type')设计'type'型巴特沃斯(Butterworth)滤波器filter。N为滤波器阶数,Wc为截止频率,type决定滤波器类型,type=high,设计高通IIR滤波器,ftype=stop,设计带阻IIR滤波器。4.再用freqz函数验证设计结果。4.2数字滤波器设计在掌握了软件的使用之后,利用MATLAB软件采用双线性变化法设计了三种滤波器,即巴特沃斯低通滤波器、巴特沃斯带通滤波器和切比雪夫Ⅰ型高通滤波器。4.2.1巴特沃斯低通滤波器设计根据数字滤波器的设计原理,首先将数字域的指标转化为模拟域的指标设计模拟低通滤波器(实际中应该根据具体需要来制定技术指标,为了反映滤波器的效果本设计中是根据合成波形制定了相应的技术参数),然后应用双线性变换法将模拟滤波器转化为数字滤波器将指标
本文标题:基于MATLAB的数字滤波器设计
链接地址:https://www.777doc.com/doc-5927530 .html