1、I摘 要数字滤波器是数字信号处理中最重要的组成部分之一。在许多科学技术领域中,广泛使用滤波器对信号进行处理。数字滤波器可以分为两类,即有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器 (IIR)。本文就分别对这两类数字滤波器的设计和实现来进行分析研究。在 FIR 滤波器的设计过程中主要探讨了两个问题,其一是 FIR 线性相位滤波器的特点及相关公式推导;其二是用窗函数设计 FIR 滤波器,重点介绍了基于等波纹切比雪夫逼近准则实现了 FIR数字滤波器的优化设计并通过 MATLAB 的仿真实现。在 IIR 滤波器的设计过程中,将设计步骤分为三步,即模拟滤波器原型设计,模拟一数字滤波器变换,滤
2、波器频带变换。着重介绍了频域直接设计法和优化设计法。在这两类滤波器的整个设计过程都是按照理论分析、编程设计、具体实现的步骤来进行的。关键词:数字滤波器;MATLAB;优化设计算法;冲击响应IIABSTRACTDigital filter is one of the most important parts of digital signal processing.1J1 many fields of science and technology, it is widely used for signal processing. Digital filter can be divided as
3、the Finite Impulse Response digital filter (FIR) and the Infinite Impulse Response digital filter (IIR).The paper aims at respective study in the design and realization of these two kinds of digital filters. Two major points are discussed about the design of FIR filters: the characteristics of FIR l
4、inear phase filter and the reasoning of related formulas: the other is about the design of the FIR filters by means of window functions. Introduce with emphasis based on and so on ripple Chebychev approached the criterion to implement the FIR filters optimized design and through the MATLAB simulatio
5、n implementation.The design of IIR filters can be achieved through three steps: the design of prototype of analog low-pass filter, analog-to-digital filter conversion and the conversion of filter frequency band. Introduce the frequency range direct design law and the optimized design law emphaticall
6、y. The design of FIR and IIR follows the procedures of theoretical analysis, programming design and concrete realization.Key Word:Digital filter; MATLAB; optimization design algorithm; shock responseI目 录摘 要 .IABSTRACT.II前 言 .1第 1 章 绪 论 .21.1 数字滤波器的定义 .21.2 数字滤波器的发展概况 .21.3 MATLAB 软件介绍 .3第 2 章 数字滤波 器
7、 .62.1 数字滤波器的设计 与实现 .62.2 数字滤波器的分类 .62.3 数字滤波器的设计要求和方法 .72.3.1 幅频特性 .72.3.2 相频特性 .82.4 数字滤波器设计方法概述 .11第 3 章 有限长单位冲激响应(FIR)数字滤波器 .123.1 FIR 滤波器的窗函数法设计 .123.1.1 窗函数设计法的基本思想 .123.1.2 窗函数的种类 .133.1.3 设计实验结果 .163.2 FIR 滤波器的均方误差最小准则设计 .183.3 FIR 滤波器的最大误差最小化准则设计 .203.4 FIR 滤波器的优化设计 .22第 4 章 无限长单位冲击响应(IIR)数
8、字滤波器 .274.1 IIR 滤波器的 s-z 变换设计 .274.1.1 标准 z 变换 .27II4.1.2 双线性 z 变换 .284.1.3 设计实验结果 .294.2 IIR 滤波器的振幅平方函数近似设计 .294.3 IIR 滤波器的频率变换法设计 .314.4 IIR 数字滤波器的优化 设计 .33第 5 章 总结 .38致谢 .40参考 文献 .411前 言数字滤波是数字信号处理理论的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中
9、的有用分量。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、识别、产生等加工处理,都可纳入数字信号处理领域。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在 40 年代末期,就有人讨论过它的可能性问题,在 50 年代也有人在研究生讨论过数字滤波器的问题。但直到 60 年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼二有之;出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波
10、器的基本概念和理论。数字滤波器的基本概念和理论。数字滤波器领域的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识的转化。在初期,一般认为 IIR 滤波器比 FIR 滤波器具有更高的运算效率,因而明显的倾向于前者,但当人们提出用快速傅立叶变换(FFT)实现卷积概念之后,发现高阶 FIR 滤波器也可以用很高的运算效率来实现,这就促使人们对性能 FIR 滤波器的频域方法和时域方法并驾齐驱的局面。然而,这些均属数字滤波器的早期研究。70 年代科学技术蓬勃发展,数字信号处理开始与大规模集成电路技术、微处理技术、高速数字算术单元、双极型高密度半导体存储器、电荷转移器件等新技术、新工
11、艺结合了起来,并且引进了计算辅助设计方法,它使数字滤波器的设计仅仅是对相应模拟滤波器的逼近。一般说来,通过模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳逼近。这样,数字滤波器的分析与设计其内容也更加丰富起来;各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。 2第 1 章 绪 论1.1 数字滤波器的定义数字滤波器通常是指一个有限精度算法实现的离散线性是不变系统。通常用的数字滤波器一般属于选频滤波器,可以用下式表示:式中, 称为滤波器幅频响应, 称为滤波器的相频响应。幅频响应表示信号通过
12、该滤波器后各频率成分的衰减情况,而相频响应反映各频率成分通过滤波器后在时间上的延时情况。滤波器性能最容易通过它的幅频响应的形状来描述 。滤波器在某个频率的幅度增益决定了滤波器对此频率输入的放大因子,增益可取任意值。增益高的频率范围,信号可以通过,称之为滤波器的通带,增益低的频率范围,滤波器对信号有衰减和阻塞作用,称这位滤波器的阻带。1.2 数字滤波器的发展概况数字滤波是数字信号处理理论的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。具体
13、来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、识别、产生等加工处理,都可纳入数字信号处理领域。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在 40 年代末期,就有人讨论过它的可能性问题,在 50 年代也有人在研究生班讨论过数字滤波器的问题。但直到 60 年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有3的则二者兼二有之;出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念
14、和理论。数字滤波器的基本概念和理论。数字滤波器领域的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识的转化。在初期,一般认为 IIR 滤波器比 FIR 滤波器具有更高的运算效率,因而明显的倾向于前者,但当人们提出用快速傅立叶变换(FFT)实现卷积概念之后,发现高阶 FIR 滤波器也可以用很高的运算效率来实现,这就促使人们对性能 FIR 滤波器的频域方法和时域方法并驾齐驱的局面。然而,这些均属数字滤波器的早期研究。70 年代科学技术蓬勃发展,数字信号处理开始与大规模集成电路技术、微处理技术、高速数字算术单元、双极型高密度半导体存储器、电荷转移器件等新技术、新工艺结合了起来
15、,并且引进了计算辅助设计方法,它使数字滤波器的设计仅仅是对相应模拟滤波器的逼近。一般说来,通过模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳逼近。这样,数字滤波器的分析与设计其内容也更加丰富起来;各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。数字信号处理理论与技术的发展,主要是由于电子计算机与大规模集成电路的大量生产和广泛应用,替代了原来的模拟信号处理中的线性滤波与频谱分析所应用的模拟计算机和分立元件 L、C、R 线性网络,高度发挥了计算机技术与数字技术相结合的特色和优越性。特别是
16、微处理器和微型计算机技术日新月异的发展,将更有利于电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能化等方向发展,促使它们成为富有智能性的电子系统。现在,包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展,据估计这种趋势还要持续一个较长的时期,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性转折。1.3 MATLAB 软件介绍MATLAB 是英文 Matrix Laboratory(矩阵实验室)的缩写。它是由美国MathWorks 公司推出的用于数值计算和图形处理的数学计算环境。在 MATLAB4环境下,用户可以集成的进行程序设计、数值计算、图
17、形绘制、输入输出、文件管理等各项操作。它优异的数值计算能力和卓越的数据可视化能力使其很快在同类软件中脱颖而出。MATLAB 推出的工具箱使各界领域的研究人员可以直观方便的进行科学研究、工程应用,其中的信号处理(signal processing)、图像处理(image processing)、小波(wavelet)等工具箱为数字滤波器研究的蓬勃发展提供了有力的工具。MATLAB 语言之所以能如此迅速的普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点:1、语言简洁紧凑,使用方便灵活,库函数及其丰富。MATLAB 程序书写形式自由,利用其丰富的库函数避开了繁杂的子程序编程任务,压缩了
18、一切不必要的编程工作,由于库函数都是由本领域的专家编写,所以用户不必担心函数的可靠性。2、运算符丰富。由于 MATLAB 是 C 语言编写的,所以 MATLAB 提供了和 C 语言几乎一样多的运算符,灵活使用 MATLAB 的运算符将使程序变的极为简短。3、MATLAB 既具有结构化的控制语句,又有面向对象编程的特性。4、语法限制不严格,程序设计自由度大。5、程序的可移植性好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6、MATLAB 的图形功能强大。在 C 和 FORTRAN 语言里,绘图都很不容易,但在 MATLAB 里,数据的可视化非常简单。此外, MATLAB 还具有较强
19、的编辑图形界面的能力。7、MATLAB 具有的一项重要特色是拥有功能强大的工具箱。 MATLAB包含两部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如 control toolbox、signal processing toolbox、communication toolbox 等。8、源程序的开放性。除内部函数以外,所有 MATLAB 的核心文件和工具5箱文件都是可读可改的
20、源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。MATLAB 软件自 1984 年推向市场以来,历经十几年的发展和竞争,现已成为(IEEE 评述 )国际公认的最优秀的科技应用软件。它功能强大、界面友善、语言自然、开放性强的特点使它获得了对应用科学(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、统计、仿真、教学及至科技文字处理不可缺少的基础软件。在欧美等高校,MATLAB 已成为理工科高级课程的基本教学工具,成为攻读学位的大学生、硕士生、博士生必须掌握的技能。在设计研究单位和工业部门,MATLAB 已经成为研究和解决各种具体工程问题的一种标准软件。近
21、几年来该软件系统开始在我国国内流行,受到理工科大专院校师生及科研人员的重视。6第 2 章 数字滤波器2.1 数字滤波器的设计与实现滤波器是指用来对输入信号进行滤波的硬件和软件。所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器一般可用两种方法实现:一种是根据描述的数字滤波器的数学模型或信号流图,用数字硬件装配成一台专门的设备,构成专用的信号处理机,这就是硬件实现方式;另一种方法就是直接利用通用计算机,将所需要的运算编成程序来让计算机来执行,这也就是软件实现方式。在硬件实现方式中,是以数字组件如延迟器、加法器和乘法
22、器作为基本部件构成专用的数字信号处理系统。在软件实现方式中,它是借助于通用计算机机器语言、汇编语言或高级语言程序来做数字滤波器的运算过程。MATLAB 的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数调用。只要正确的指标参数调用相应的滤波器设计程序或工具函数,即可以得到正确的设计结果,使用非常方便。数字滤波器的设计与实现,通常按下述步骤进行:首先,根据不同用途提出数字滤波器的技术指标;然后,设计一个稳定的、因果的数学模型 H(z)来逼近所要求的技术指标;最后,设计专用的数字硬件来实现这个数学模,或者用通用的电子计算机运行软件予以实现。与微型计算机一样,CPU 也是单片机的核心部件。它一般由运算器、控制器和中断电路等组成。根据单片机的字长(CPU 一次处理的数据位数)不同,其数据处理能力不同。字长加长则数据处理能力越强,执行速度也越快。每种单片机的 CPU 都有自己的指令系统,用于编制应用程序。不同厂家的单片机有不同的指令。2.2 数字滤波器的分类