1、南 京 师 范 大 学 泰 州 学 院毕 业 论 文(设 计)( 2012 届)题 目: 基于MATLAB的语音滤波器设计 院(系、部): 电力工程学院 专 业: 电气工程及其自动化 姓 名: 严忠晨 学 号 13080436 指导教师: 叶彪明 南京师范大学泰州学院教务处 制23 / 32基于MATLAB的语音滤波器设计摘 要走进新时代,科学急速发展,数字技术带来的生活日新月异。本文借着数字信号处理之手,结合先进的数学软件MATLAB R2009a,对数字滤波技器的发展前景做出自己的分析理解推导。数字滤波器分为IIR和FIR两类。本着“求同存异”的原则,去繁化简,做出有一定程度和效果的创新总
2、结。文中深入分析了滤波器系统设计的各个功能特点、实现原理以及技术关键,分别阐述了使用MATLAB进行带通滤波器设计及仿真的具体方法。从初学者的角度,篇幅中简单介绍了MATLAB,减少了“学院式”的理论推导,降低了Fourier变换、Laplace变换、z变换、复变函数的环路环节的理解难度,着力体现以“必须够懂为度”的原则。关键词:数字滤波器 IIR FIR MATLABBased On The Matlab Voice Filter DesignAbstractWe go into a new era and the science develops rapidly .The digital
3、technology brings the life changes with each new day .This article is borrowing hand of the digital signal processing ,With advanced mathematics software MATLAB R2009a, Makes own to the digital filter technique prospects for development analysis understanding inferential reasoning . Digital filters
4、are divided into two types of IIR and FIR. In line with “seeks common ground while maintaining difference” principle , Goes to the numerous simplification , So that there is a certain degree and effect of the innovative summary. In the article has thoroughly analyzed the filter system design each fu
5、nction characteristic , Realization principle as well as technical key , elaborated separately uses MATLAB to carry on the band-pass filter design and the simulation concrete method。From the perspective of a scholar,length in the brief introduction to MATLAB,reduce the college-derived from the theor
6、y. and the Fourier transformation、the Laplace transformation、 the z transformation 、complex variable function ring circuit link understanding difficulty 。We should focus on in the must be understood as the principle.Keywords: Digital filter IIR FIR MATLAB目 录摘 要IABSTRACTII第一章 绪论11.1 数字信号处理概述11.2 数字信号
7、处理含义及学科11.2.1 数字信号处理含义11.2.2 数字信号处理学科11.3 数字信号处理系统特点11.4 数字信号处理实现方法21.5 本章小结2第二章 MATLAB概述32.1MATLAB简介32.2MATLAB特点42.3MATLAB构成42.4MATLAB信号处理工具52.4.1 Signal Processing Toolbox提供的具体功能52.4.2滤波器设计与分析工具FDATool62.4.3信号频谱分析和滤波设计工具SPTool72.4.4滤波器设计与参数设置72.5本章小节8第三章 数字滤波器概述93.1数字滤波器分类93.2数字滤波器基本原理103.3数字滤波器实现
8、113.4 IIR滤波器基本结构113.5 FIR滤波器基本结构123.6数字滤波器设计步骤123.7数字滤波器主要技术指标123.7.1特征频率123.7.2增益与衰耗133.7.3阻尼系数与品质因数133.7.4灵敏度133.7.5群延时系数143.8 IIR滤波器设计方法143.8.1模拟原型法143.8.2直接设计法163.8.3参数建模法163.9 FIR滤波器设计方法163.9.1窗函数法173.9.2频率采样设计法183.9.3最优化设计法183.10本章小结19第四章 数字滤波器的设计204.1 语音信号时域图与频谱图204.2 白噪声214.3 IIR和FIR低通数字滤波器设
9、计214.3.1 Chebyshev低通数字滤波器设计214.3.2 汉宁窗低通数字滤波器设计214.3.3 两种低通滤波器比较224.4 单频噪声254.5 IIR和FIR带阻数字滤波器设计264.5.1 Chebyshev带阻数字滤波器设计264.5.2 凯塞窗带阻滤波器设计274.5.3 两种带阻滤波器比较274.6 IIR和FIR数字滤波器比较304.7 本章小结31总结32致 谢33参考文献34第1章 绪论1.1 数字信号处理概述信号是数字信号处理领域中最基本、最重要的概念。简单的说,信号就是信息的载体,是信息的物理体现。信号既可以分为时间连续、幅度也连续的模拟信号和在时间上和幅度上
10、都经过量化的数字信号,也可以分为连续时间信号和离散时间信号。几乎在科学技术的每一领域,为了信号的提取,都需要进行信号处理。信号处理,就是以数值计算的方法对信号进行采集、变换、综合、估计与识别等加工处理。借以达到提取信息和便于应用的目的。随着计算机和信息科学的飞速发展,信号处理已经逐渐发展成为一门独立的学科,是信息科学的重要组成部分,在语音处理、图像处理、雷达、航空航天、地质勘探、通信、生物医学工程等众多领域得到了广泛的应用7。有道是“金猴奋起千钧棒 玉宇澄清万里埃”。1.2 数字信号处理含义及学科1.2.1 数字信号处理学科数字信号处理(DSP)一般有两层含义,一层是广义的理解,为数字信号处理
11、技术Digital Signal Processing;另一层是狭义的理解,数字信号处理器Digital Signal Processor3。1.2.2 数字信号处理学科(1) 信号的采集,包括A/D、D/A技术,抽样、多率抽样,量化噪声分析等。(2) 离散信号的分析,包括时域及频域分析,离散傅里叶变换理论。(3) 离散时间线性时不变系统分析。(4) 数字滤波技术。(5) 信号的建模,包括AR,MA,ARMA,PRONY等各种模型。(6) 信号估计理论,包括相关函数分析及功率谱估计等。(7) 谱分析理论,包括高阶谱分析。(8) 自适应信号处理。(9) 信号处理中的特殊算法,如同态处理、奇异值分
12、解及信号重建等。(10) 数字信号处理的实现。(11) 数字信号处理的应用9。1.3 数字信号处理系统特点(1) 精度高。模拟信号处理系统中元器件的精度很难达到10-3以上,而数字信号处理系统只要17位字长就可达到10-5的精度,可获得高性能指标。(2) 灵活性强。通过修改存储器中数字信号处理系统的系数值,就可以得到不同的系统,比改变模拟系统方便得多。(3) 可靠性好。模拟信号处理系统元器件的各种参数都受到温度的影响,随环境条件的变化而变化,并且容易出现电磁感应、杂散效应。而数字信号处理系统由性能一致、为数不多的大规模集成电路芯片构成,只有两个信号电平“0”、“1”,因此受周围环境温度及噪声的
13、影响较小,可靠性好。(4) 容易大规模集成。由于数字部分有高度规范性,便于大规模集成、大规模生产。(5) 时分复用。将各路输入信号接至一个多路开关,在同步器控制下,按一定的时间顺序依次进行A/D变换和数字处理,各路处理结果用位于输出端的分路器按相同的时间顺序分离开来,分别输出。时分复用使设备利用率提高、成本降低。(6) 多维处理。利用庞大的存储单元,可以存储一帧或数帧图像信号,实现二维甚至多维信号的处理,包括二维或多维滤波、二维及多维谱分析等9。1.4 数字信号处理实现方法(1) 采用通用计算机上用软件来实现:软件采用高级语言编写,也可利用商品化的各种DSP软件如MATLAB、SYSTEMVI
14、EW等。该方法实现简单、灵活,但实时性较差,很少用于实时系统,主要用于教学和科研的前期研制阶段。(2) 用单片机:单片机发展已经很久,价格便宜,且功能很强。可根据不同环境配不同单片机,能实现实时控制,但数据运算量不能太大,即单片机不能用于复杂的信号处理。(3) 利用通用DSP芯片:DSP芯片较之单片机有着更为突出的优点,如内部带有乘法器、累加器,采用流水线工作方式及并行结构,多总线速度快,配有适于信号处理的指令(如FFT指令)等。(4) 利用特殊用途的DSP芯片:市场上推出的专门用于FFT、FIR滤波器、卷积、相关等的专用数字芯片,其软件算法已固化在芯片内部,使用非常方便。这种方式比通用DSP
15、芯片速度更高,但功能比较单一,灵活性较差。目前世界上生产DSP芯片的主要厂家有美国德州仪器TI公司(TMS320CX系列)、ATT公司(DSP16、DSP32系列)、Motorola公司(DSP56x、DSP96x系列)、AD公司(ADSP21X、ADSP210X系列)等3。1.5 本章小结“数字处理处理”是研究用数字或序列来表示信号和处理信号。具体说,就是利用计算机或专用处理设备对信号进行分析、变换、综合、估计与识别等加工处理。今天,它正以崭新的姿态出现在科学技术的各个领域中,并且综合了系统理论、统计学、数值分析、计算机科学和超大规模集成电路等学科的理论和技术,而独立地形成为一门具有普遍意义
16、的学科9,在我们多面临的信息革命中起到重要的作用。可以说,只要使用计算机和数据打交道,几乎都要用到数字信号处理技术。可以说“天生我才必有用,千金散尽还复来”。第2章 MATLAB概述MATLAB是科研开发和工程设计的有力工具。Simulink是建立在MATLAB基础上的动态系统仿真工具。针对各种硬件目标的开发仿真,MATLAB提供有相应的实时目标开发工具。利用MATLAB及其工具箱可以快速完成各类数值计算、符号计算和数据可视化等任务,可以解决有关线性代数、矩阵分析、微积分、微分方程、信号与系统、信号分析与处理、系统控制等领域的问题;利用Simulink及其模块库,则能够方便地创建各种动态系统的
17、模型并进行仿真2。可叹“一夫当关,万夫莫开”。2.1 MATLAB简介MATLAB是美国MathWorks公司开发的新一代科学计算软件;MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写;MATLAB是一个专门为科学计算而设计的可视化计算器。利用这个计算器中的简单命令,能快速完成其他高级语言只有通过复杂编程才能实现的数值计算和图形显示。MATLAB语言是一种既可交互使用又能解释执行的计算机编程语言。所谓交互使用,是指用户输入一条语句后立即就能得到该语句的计算结果,而无需像C语言那样首先编写源程序,然后对之进行编译、连接,才能最终形成可执行文件。MATLAB语言可以用直观的
18、数学表达式来描述问题,从而避开繁琐的底层编程,并把有限的时间和精力更多地花在要解决的问题上,因此可大大提高工作效率。MATLAB的编程语法与交互使用是一致的,因此交互使用时输入的代码能够很方便地转化为可重用的函数或过程。MATLAB是解决工程技术问题的计算平台。利用它能够轻松完成复杂的数值计算、数据分析、符号计算和数据可视化等任务。其中,符号计算能够得到符号表达式的符号解(如函数积分)和任意精度数值解(如精确到小数点后100位的值)。相对于数值计算,符号计算不会带来任何机器误差,但是需要耗费更多的计算机内存和时间。另外,利用MATLAB软件包中的Similink等组件,能够对各种动态系统进行仿
19、真分析,并且能为多种实时目标生成可执行代码,这显然有利于缩短软硬件系统的研发周期。MATLAB软件由主包和各类工具箱构成。其中,主包基本上是一个用C/C+等语言编写成的函数库。该函数库提供矩阵(或数组)的各种算法以及建立在此基础上的各种应用函数和一些相关的用户友好操作界面。而工具箱则从深度和广度上大大拓展了MATLAB主包的功能和应用领域。从使用角度看,这些工具箱可分为功能性工具箱和学科性工具箱两大类。前一类工具箱通用于各个学科领域,如“符号工具箱”;后一类工具箱则与专门学科密切相关,如“信号处理工具箱”、“、神经网络工具箱”、“金融分析工具箱”等。此外,市场上还有大量不断涌现的基于MATLA
20、B的第三方软硬件产品。随着自身的不断完善和发展,MATLAB功能越来越强大,应用也越来越广泛。无论是在教育研究单位,还是在工业商业部门,MATLAB普遍被认为是能有效提高工作效率的首选软件工具。在学术界,MATLAB被认为是科学计算的标准软件(IEEE称其为同类产品中最具特色的软件),在许多学术刊物上都可以看到MATLAB应用的文章;在大学里,MATLAB成为理工科广大教师和学生常用的辅助教学工具,甚至在中小学教学中也能看到MATLAB的各种应用;在工业界,诸如Boeing,Motorola,Nokia,Quantum,TI等公司都在利用MATLAB来加快产品的研发过程。可见,MATLAB已经
21、不仅仅是一个“矩阵实验室”,而是一个能够满足不同科技领域中不同层次计算需要的高级计算工具2。2.2 MATLAB特点(1) MATLAB的基本数据类型是双精度的、无需定义的、下标从1开始的复数矩阵。其中,行向量是1n的矩阵,列向量是n1的矩阵,标量是11的矩阵。这就意味着能够在MATLAB程序中使用高度“向量化”的语句以使整个程序易写易读。例如要得到t=1,2,3时刻信号y=sin(t)的值,MATLAB只需两条语句t=1 2 3;y=sin(t)就能完成(省却了循环)。这也就是MATLAB中频繁使用的“数组运算”。再例如要求解代数方程组,MATLAB只需要一条指令x=Ab就能完成。该指令虽然
22、简单,但其内涵却非常丰富(可以求解恰定、欠定或超定方程组)。(2) MATLAB有命令行操作(像一个高级计算器)和编程执行两种使用方法,分别适用于简单的草稿式计算和复杂的应用开发。(3) 绝大多数MATLAB函数的输入输出参数个数都是可变的,调用函数时输入输出参数的个数不同,函数完成的功能会有一定的差异。(4) MATLAB操作界面友好,编程语言简练,算法高效准确,图形显示和数据可视化功能强大。(5) MATLAB的帮助系统非常完善,内容包括各个组件的入门指南、完全用户手册和示例演示等,且有多种获取和使用帮助的简便方法。例如,即使是在Help和helpdesk帮助中显示的代码也通过现场菜单执行
23、或直接打开编辑。另外,MATLAB帮助内容有PDF格式和Html格式两套,用户既可以通过阅读相关的PDF文档来系统地学习MATLAB,也可以在使用中随时查找需要的信号。(6) MATLAB采用开放性结构结构设计。这具体体现在以下三个方面:一是除少数内部函数外,所有MATLAB主包函数和各种工具函数都是可读可改的M文件(纯文本格式),这也使得新工具箱的开发和拓展非常方便,例如用户可通过修改已有的M文件或添加新的M文件来生成用户自定义工具箱;二是支持DDE、COM、ActiveX等技术,可以提供和接受Active组件服务;三是对外提供了MATLAB的C/C数学函数库、图形函数库以及相关的API函数
24、,这就便于在其他开发环境(如MS VC+或Fortran)编写的程序以提高执行速度2。2.3 MATLAB构成(1) 集成开发环境:包括操作桌面、命令窗、历史命令窗、编辑调试器、帮助浏览器、工作空间浏览器、当前路径浏览器、搜索路径浏览器等工具,方便用户使用和管理MATLAB的函数和文件。(2) 数学函数库:数学函数库(包含600多个数学应用类函数)是MATLAB语言的基础,也是各种工具箱应用的基础。这些数学函数采用国际上公认的最先进的可靠算法,经过专家优化后以简单易用的形式呈现出来,以帮助用户快速、准确、可靠地完成各种数值计算。(3) MATLAB语言:MATLAB语言使用使用灵活,它不仅具有
25、条件控制、函数调用、数据结构、输入输出、面向对象等一般程序语言特性,而且更有利于矩阵和数组的操作和运算。MATLAB语言既可以进行小规模编程,完成算法设计和算法实验等基本任务,也可以进行大规模复杂编程,例如开发GUI独立应用程序。(4) 句柄图形系统:句柄图形系统是MATLAB图形显示和数据可视化功能的基础,也是用户创建GUI应用程序的基础。它对外提供两套操作函数:一套是高层函数(以底层函数为基础),可完成基本的数据图示、图像处理、动画生成、图形显示等功能;另一套是底层函数,可充分操纵图形对象的各个特性,使图形表现更加灵活和富有特色。(5) 应用程序接口库(APIs)和MATLAB编译器:借助
26、API接口函数,一方面能够在C/C+或Fortran中直接调用MATLAB函数,或读写MATLAB的MAT数据文件,或把整个MATLAB当作计算引擎来调用;另一方面可以在MATLAB环境中直接重用C/C+,Fortran,Java等代码2。2.4 MATLAB信号处理工具MATLAB以工具箱(Toolbox)的形式提供了用于数字信号处理的大量函数,用户可以调用相应的函数进行编程完成特定的信号处理任务。不仅如此,MATLAB工具箱还提供了更加简单和直观的信号处理图形用户界面工具(GUI)滤波器设计与分析工具(FDATool)和信号处理工具(SPTool),用户可利用此工具随时对比设计要求和滤波器
27、特性,直观简便,加大地减轻了工作量,有利于滤波器设计的最优化。利用Signal Processing Toolbox辅助解决数字信号处理问题通常可以采用两种不同的命令行方式:(1) 结合工具箱函数以M文件等程序和命令的运行解决具体问题的命令行方式;(2) 利用MATLAB提供的GUI工具,如FDATool或SPTool完成任务的设计、分析与计算的GUI方式。我们平时所要设计的数字滤波器,类型和阶数并不一定是完全给定的,很多时候都要根据设计要求和铝箔效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯靠公式计算和编写简单的程序难以在短时间内完成设计。利用MAT
28、LAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大简化计算量,直观简便。而MATLAB信号处理工具箱(Signal Processing Toolbox)提供的GUI工具使滤波器设计过程直观化,在确定滤波器参数后可以方便地得到期望的滤波器形式,使初学者可以在短时间内掌握5。2.4.1 Signal Processing Toolbox提供的具体功能(1) 大量的信号和线性系统模型;(2) 数字及模拟滤波器设计、分析及实现,包含幅值、相位、零极点、脉冲响应及阶跃响应等;(3) 方便的FFT、DCT、Hilbert及其他变换;(4) 统计信号处理,用统计方法进行时间序列数据
29、建模及谱分析;(5) 多速率信号处理;(6) 波形生成、窗口生成,以及集成的图形界面用于滤波器设计、分析、谱分析及信号的可视化测量5。2.4.2 滤波器设计与分析工具FDAToolFDATool(Filter Design and Analysis Tool)是MATLAB信号处理工具箱(Signal Processing Toolbox)中一个强有力的进行快速射击与分析滤波器的图形用户界面工具。MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计包括FIR和IIR的几乎所有常规滤波器。FDATool也提供对滤波器进行分
30、析的工具,例如幅频和相频相应曲线和极零点图等。FDATool可以和MATLAB产品族的其他产品无缝结合以开发综合项目,例如结合Filter Design Toolbox进行高级FIR与IIR滤波器设计、滤波器转换及多速率滤波器设计等,结合Simulink产生滤波器的原始Simulink模块,结合Embedded Target for Texax Instruments C6000 DSP可以下载代码到相应DSP目标板中等。启动MATLAB后,在命令窗口中输入命令: fdatool按回车键后打开FDATool工具的图形用户界面主窗口,如图2-1所示5:图2-1 FDATool主窗口2.4.3 信
31、号频谱分析和滤波设计工具SPToolSPTool(Signal Processing Tool)是MATLAB信号处理工具箱中进行数字信号处理的交互式图形界面环境。它包含了工具箱中许多重要函数的功能,通过这个工具可以简便快捷地完成复杂数字信号处理任务,而又无需对工具箱中的函数十分熟悉,便于用户快速掌握和应用。SPTool可以用于信号分析、滤波器设计、滤波器分析、信号滤波、信号谱分析等处理和操作。使用SPTool内嵌的四个交互式信号处理工具,可以完成信号浏览、浏览器设计与分析的各种功能,这四个信号处理模块如下:(1) 信号浏览器Signal Browser(2) 浏览器设计与分析工具Filter
32、 Designer(3) 滤波器查看工具Filter Visualization Tool(FVTool)(4) 功率谱查看工具 Spectrum Viewer启动MATLAB后,在命令窗口输入命令: Sptool按回车键后打开SPTool的主窗口,如图2-2所示5:图2-2 SPTool主窗口2.4.4 滤波器设计与参数设置在MATLAB R2006a版本之前的信号处理工具箱中,提供了两种关于滤波器设计的图形用户界面,即前面介绍的滤波器设计与分析工具FDATool和SPTool环境下的滤波器设计器Filter Designer。尽管在MATLAB R2006a中,已经用FDATool取代了F
33、ilter Designer,但是考虑到之前版本的使用,本节仍然简要介绍SPTool中滤波器设计器的使用。Filter Designer 可以根据幅值和零极点图的设置,灵活地设计任意长度和类型的数字IIR和FIR滤波器。Filter Designer提供了如下的功能:(1) 设计具有标准的频率带宽结构的滤波器,如Bandpass、Lowpass、Bandstop、Highpass等;(2) 使用等纹波(Equiripple)、最大方差(Least squares)、窗函数(Window)等方法设计FIR滤波器;(3) 使用Butterworth、Chebyshev 、Chebyshev 、El
34、liptic等方法设计IIR滤波器;(4) 使用极零点编辑器Pole/Zero Editor,通过设置和移动极零点位置,设计任意的FIR和IIR滤波器;(5) 在滤波器幅度响应图中添加频谱5。2.5 本章小节目前,MATLAB应用已深入各个领域。它建立在向量、数组和矩阵运算基础上,可以完成常用的矩阵运算、数组运算、方程求根、数值优化等数值运算功能及函数求导积分运算功能;同时它还提供了编程实现复杂算法的编程能力,通过编程可以解决复杂的工程问题;此外还可绘制二维、三维图形,使输出结果可视化。图形用户界面工具为信号处理工具箱中的很多函数提供了直观易用的使用界面,方便用户快速地完成数字信号的载入、观察
35、和分析,数字滤波器的设计与实现,频谱的生成与分析等工作。图形界面丰富的控制选项可以满足用户各种设计与分析的要求,而且无需详细了解大量信号处理函数,用户可以将精力集中在数字信号处理的算法设计方面5。本章主要介绍了MATLAB的由来、特点、构成、信号处理工具工具箱。在MATLAB的帮助下,未来的数字信号处理世界真可谓“一水护田将绿绕,两山排闼送青来”第3章 数字滤波器概述数字滤波器是数字信号处理的一个重要技术分支。利用它可以在形形色色的信号中提取所需要的信号,并抑制不需要的信号(干扰、噪声)。数字滤波器具有稳定性好、精度高、灵活性强、体积小、重量轻等优点,越来越受到人们的重视,并在工程师实际中得到
36、了广泛的应用9。众人尽言“小楼一夜听春雨,深巷明朝卖杏花”。数字滤波器可狭义地理解为具有选频特性的一类系统,如低通、高通滤波器等;也可广义地理解为任意系统,其功能是将输入信号变换为人们所需要的输出信号9。数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换5。数字滤波器的实质是用一有限精度算法实现的离散时间线性时不变系统,以完成对信号进行滤波处理的功能。其输入是一组由模拟信号经过取样和量化的数字量,输出是经处理的另一组数字量。数字滤波器既可以是一台由数字硬件装配成的用语完成滤波计算功能的专用机,也可以是由通用计算机完成的一组
37、运算程序9。3.1 数字滤波器分类数字滤波器的种类多种多样,相应的分类方法也不尽相同,可以从功能上、从结构上,以及从实现方法或设计方法上进行分类,甚至也可以从滤波域进行分类,即根据滤波器是在时间域、频率域还是在空间域实现,对应有时域滤波器、频域滤波器及空域滤波器。不过,从总体上而言,也可以将滤波器分为两大类,即经典滤波器和现代滤波器。(1) 经典滤波器 也称为选频滤波器,其特点是假定输入信号中的有用成分和希望滤除的成分各自分布在不同的频带,这样通过选择合适的频率进行滤波,就可达到滤除噪声的目的。可见,经典滤波器都是在频域内实现滤波处理,因而可将其纳入频域滤波器范畴。(2) 现代滤波器 比经典滤
38、波器更为复杂的滤波器形式,适用于当有用信号和噪声成分的频带相互重叠、经典滤波器不能有效滤除噪声的情况。这类滤波器可以按照随机信号内部的一些统计分布规律,从干扰中最佳地提取有用信号。比较典型的现代滤波器包括维纳滤波器、卡尔曼滤波器和自适应滤波器等。与经典滤波器只集中于频域处理不同,现代滤波器已经扩展到时域和空域内进行。特此说明,本文只讨论经典滤波器的设计与实现。另外,从功能上看,或者说从滤波器的频率相应特性上看,数字滤波器又可分为:(1) 低通滤波器;(2) 高通滤波器;(3) 带通滤波器;(4) 带阻滤波器;(5) 全通滤波器;再有,按实现的网络结构或单位冲激响应的时长,数字滤波器可分成两大类
39、:(1) 无限冲激响应(IIR)滤波器;(2) 有限冲激响应(FIR)滤波器;6理想的数字滤波器频率特性如图3-1所示,这些频率特性都是以2为周期的的连续函数,而且当系统单位样值响应h(n)为n的实函数时,幅频特性呈周期偶对称,相拼特性呈周期奇对称。因此对数字滤波频率特性只要给出在0到间H(ej)的变化情况既可1。图3-1各类理想数字滤波器的频率特性3.2 数字滤波器基本原理离散LSI系统对信号的相应过程实际上就是对信号进行滤波的过程。因此,离散LSI系统又称为数字滤波器。一个离散LSI系统可以用系统函数来表示: (3-1)也可以用查分方程来表示: (3-2)以上两个公式中,当至少有一个不为0
40、时,则在有限z平面上存在极点,表达的是一个IIR数字滤波器;当全都为0时,系统不存在极点,表达的是一个FIR数字滤波器。FIR数字滤波器可以看成是IIR数字滤波器的全都为0时的一个特例。特此说明,下文上面公式被引用皆指明,不另作区分。按频率特性来讲,数字滤波器和模拟滤波器一样可分为低通、高通、带通和带阻等。数字滤波器是一个离散时间系统,在频率特性中具有周期性,因此我们讨论的频率范围仅在的范围内,相应的归一化频率在01,和1对应于Nyquist频率4。IIR数字滤波器的基本结构分为直接型,直接型、级联型和并联型。FIR数字滤波器的基本结构分为横断型(又称为直接型或卷积型)、级联型、线性相位型及频
41、率采样型等。另外,滤波器的一个新型结构格型结构也逐渐投入应用,具有全零点FIR系统格型结构、全极点IIR系统格型结构以及全零极点IIR系统格型结构8。3.3 数字滤波器实现软、硬件实现网络结构形式IIR、FIR的系统函数图3-2 数字滤波器的实现一个输出序列是其过去N点的线性组合加上当前输入序列与过去N点输入序列的线性组合。输出除了与当前的输入有关外,同时还与过去的输入和过去的输出有关,系统是带有记忆的。对于上面的算式,可以化为不同的计算形式,如直接计算、分解为多个有理函数相加、分解为多个有理函数相乘等,不同的计算形式表现出不同的计算结构,而不同的计算结构可能带来不同的效果,或者是思想简单、编
42、程方便,或者是计算精度较高等。由于数字信号是通过采样和转换得到的,而转换的位数是有限的,所以存在着量化误差。此外,计算机中数的表示也总是有限的,经此表示的滤波器的系数同样存在着量化误差,故在计算过程中因有限字长也会造成误差。量化误差主要有三种:A/D变换量化效应,系数的量化效应,数字运算的有限字长效应11。3.4 IIR滤波器基本结构IIR网络结构特点是信号流图中有反馈之路,即含有环路。其脉冲响应是无限长的。除了没有线性相位结构外,实现IIR滤波器的三种结构与实现FIR滤波器相仿,依次为:(1) 直接形式:此行始终,差分方程(3-2)式按方程直接实现。这种滤波器可分为两个部分,滑动平均部分和递
43、归部分(或者,分子和分母部分)。根据两部分运算的先后,有两种实现形式,即直接形式和直接形式结构。(2) 级联形式:分别把等式(3-1)中的系统函数的分子分母因式分解成二阶子系统。每个二阶子系统都以直接形式实现,整个系统函数由分子分母双二阶环节的级联形式实现。(3) 并联形式:系统函数用部分分式展开,合并共轭项,使之成二阶子系统的和。每一个系统用直接形式实现,整个系统函数以子系统的并联网络实现10。3.5 FIR滤波器基本结构FIR网络结构特点是没有反馈支路,即没有环路,其单位脉冲响应是有限长的。FIR滤波器总是稳定的,同IIR结构相比而言,相对简单一些。而且,FIR滤波器可设计成具有线性相位,
44、这是某些应用所希望的。现在讨论以下四种结构:(1) 直接形式:这种结构形式以直接实现差分方程(3-2)而得名。(2) 级联形式:它把(3-1)式中的多项式分解成多个二阶因式,然后用级联连接。(3) 线性相位形式:当FIR滤波器具有线性相位响应时,它的脉冲响应具有对称性。在这种形式下利用对称关系,能把倍率的计算量缩至一半。(4) 频率采样形式:这种结构基于脉冲相应的DFT,也可以基于频率响应的样本,其结果可以形成一个并联结构10。3.6 数字滤波器设计步骤数字滤波器的设计过程大致可以归纳为以下3个步骤:(1) 按照实际需要确定滤波器的性能要求;(2) 用一个因果的稳定的系统函数逼近性能要求。系统
45、函数可以分为IIR滤波器和FIR数字滤波器两种类型考虑;(3) 用有限精度的运算实现系统函数。这里包括选择实现方法、运算结构和合理的字长。根据设计出来的系统函数,可以选择用硬件实现还是用软件实现。另外,运算结构也是很重要的,不同的结构所需要存储单元和惩罚次数是不同的,前者影响复杂性,后者影响运算速度。在有限精度(有限字长)情况下,不同运算结构的误差,稳定性是不同的12。3.7 数字滤波器主要技术指标3.7.1 特征频率滤波器的频率参数主要有:(1) 通带截频为通带与过渡带的边界点,在该点信号增益下降到规定的下限。(2) 阻带截频为阻带与过渡带的边界点,在该点信号衰减下降到规定的下限。(3) 转
46、折频率为信号功率衰减到1/;2(约3db)时的频率,在很多情况下,也常以作为通带或阻带截频。(4) 当电路没有损耗时,固有频率,就是其谐振频率,复杂电路往往有多个固有频率5。3.7.2 增益与衰耗滤波器在通带内的增益并非常数。(1) 对低通滤波器通带增益一般指时的增益;高通指时的增益;带通则指中心频率处的增益。(2) 对带阻滤波器,应给出阻带衰耗,衰耗定义为增益的倒数。(3) 通带增益变化量指通带内各点增益的最大变化量,如果以db为单位,则指增益db值的变化量5。3.7.3 阻尼系数与品质因数阻尼系数是表征滤波器对角频率为信号的阻尼作用,是滤波器中表示能量衰减的一项指标,它是与传递函数的极点实
47、部大小相关的一项系数。它是由传递函数的分母多项式系数求得:式中,表示传递函数的分母多项式系数。的倒数称为品质因素,是评价带通与带阻滤波器频率选择特性的一个重要指标,为:式中的为带通或带阻滤波器的3db带宽,为中心频率,在很多情况下中心频率与固有频率相等5。3.7.4 灵敏度滤波电路由许多元件构成,每个元件参数值的变化都会影响滤波器的性能。滤波器某一性能性能指标对某一元件参数变化的灵敏度记作,定义为:灵敏度是滤波电路设计中的一个重要参数,可以用来分析元件实际值偏离设计值时,电路实际性能与设计性能的偏差程度;也可以用来估计在使用过程中元件参数值变化时,电路性能变化情况。该灵敏度与测量仪器或电路系统灵敏度概念不同,该灵敏度越小,标志着电路容错能力越强,稳定性也越高5