当前位置:文档之家› 基于MATLAB的IIR数字滤波器的设计与DSP实现毕业论文

基于MATLAB的IIR数字滤波器的设计与DSP实现毕业论文

(此文档为word格式,下载后您可任意编辑修改!)

1 绪论 (1)

1.1课题分析 (1)

1.2数字滤波器在国内外发展概况 (1)

1.3MATLAB简介 (2)

1.4数字信号处理(DSP)器简介 (3)

1.5DSP芯片开发工具 (4)

2 IIR数字滤波器设计的方案选择及原理分析 (8)

2.1总体方案比较 (8)

2.2IIR滤波器的基本原理 (9)

2.3IIR数字滤波器的设计方法 (11)

3 IIR滤波器的MATLAB设计与仿真 (15)

3.1FDAT OOL界面设计 (15)

3.2程序设计 (18)

3.3IIR数字滤波器的仿真 (20)

4 IIR滤波器在DSP上的实现 (29)

4.1IIR数字滤波器在DSP上的实现步骤和条件 (29)

4.2IIR数字滤波器在TMS320VC5416DSP上的实现过程 (29)

5 总结 (33)

参考文献 (34)

致谢 (34)

附录一:XP-IIR-AD.C (35)

附录二:XP-IIR-AD.CMD (43)

1绪论

1.1 课题分析

在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。但是,传统数字滤波器的设计使用繁琐的公式计算,改变参数后需要重新计算,从而在设计滤波器尤其是高阶滤波器时工作量很大。利用MATLAB信号处理箱(Signal Processing Toolbox)可以快速有效地实现数字滤波器的设计与仿真。本课题正是利用MATLAB软件进行IIR数字滤波器的设计并进行仿真,这使得滤波器的设计更加快速和有效。

21 世纪是信息科学与技术的世纪, 其中, 数字信号处理技术(DSP) 已经成为当今一门

极其重要的学科。数字信号处理(DSP) 在通信, 语音, 图像, 自动控制, 雷达, 军事, 航空航天, 医疗和家用电器等很多领域已经得到广泛的应用。[10]

近年来,在数字信号处理领域具有绝对优势的DSP技术得到了迅速发展,不仅应用于通信、计算机领域,还逐渐渗透到其他科学研究领域。DSP应用得到普遍重视。数字信号处理器由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发与应用中,发挥着越来越重要的作用。[18]采用DSP芯片实现数字信号处理系统更是当前的发展趋势。因此本课题在MATLAB设计完成IIR滤波器的情况下,通过在CCS软件环境下进行编程,利用TMS320C54x进行IIR滤波器的硬件实现。

1.2 数字滤波器在国内外发展概况

数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。在近代电信设备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最为复杂的要算滤波器了。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。20世纪50年代无源滤波器日趋成熟。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。导致RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展,到70年代后期,上

述几种滤波器的单片集成已被研制出来并得到应用。80年代,致力于各类新型滤波器的研究,努力提高性能并逐渐扩大应用范围。90年代至现在主要致力于把各类滤波器应用于各类产品的开发和研制。当然,对滤波器本身的研究仍在不断进行。[7]

我国广泛使用滤波器是50年代后期的事,当时主要用于话路滤波和报路滤波。经过半个世纪的发展,我国滤波器在研制、生产和应用等方面已纳入国际发展步伐,但由于缺少专门研制机构,集成工艺和材料工业跟不上来,使得我国许多新型滤波器的研制应用与国际发展有一段距离。

数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行0与1两个电平状态)、灵活性强等优点。数字滤波器按单位脉冲响应的性质可分为无限长单位脉冲响应滤波器IIR和有限长单位脉冲响应滤波器(FIR)两种。IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。FIR数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等[2]。

目前数字滤波器的设计有许多现成的高级语言设计程序,但他们都存在设计效率较低,不具有可视图形,不便于修改参数等缺点,而MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。他以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。尤其是MATLAB工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。其中的信号处理工具箱、图像处理工具箱、小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能。

1.3 MATLAB 简介

MATLAB是由美国MathWorks公司推出的用于数值计算和图形处理计算系统环境,除了具备卓越的数值计算能力外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。[8]MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言简捷得多。MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的

分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。

MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。概括地讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。MATLAB语言以数组为基本数据单位,包括控制流语句,函数,数据结构,输入输出及面向对象等特点的高级语言,它具有以下主要特点:[8]

(1) 运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB除了提供和C语言一样的运算符号外,还提供广泛的矩阵和向量运算符。利用其运算符号和库函数可使其程序相当简短,两三行语句就可实现几十行甚至几百行C或FORTRAN的程序功能。

(2) 既具有结构化的控制语句(如for循环,while循环,break语句,if语句和switch 语句),又有面向对象的编程特性。

(3) 图形功能强大。它既包括对二维和三维数据可视化,图像处理,动画制作等高层次的绘图命令,也包括可以修改图形及编制完整图形界面的,低层次的绘图命令。

(4)功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互的功能。而学科性工具箱是专业性比较强的,如优化工具箱,统计工具箱,控制工具箱,小波工具箱,图象处理工具箱,通信工具箱等。

(5)易于扩充。除内部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用。

MATLAB 已发展成为适合众多学科,多种工作平台、功能强大的大型软件。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。

1.4数字信号处理(DSP)器简介

21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理作为技术核心,DSP 已经成为推动数字化进程的动力。作为数字化重重要的技术之一,DSP无论在其应用的深度还

是广度,正在以前所未有的速度向前发展。

数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、计算机技术和信号处理技术相结合的产物。数字信号处理器由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着越来越重要的作用。采用DSP芯片来实现数字信号处理系统更是当前的发展趋势。

目前,DSP芯片的发展非常迅速,硬件结构方面主要是向多处理器的并行处理结构、便于外部数据交换的串行总线传输、大容量片上RAM和ROM、程序加密、增加I/O驱动能力、外围电路内装化、低功耗等方面发展。软件方面主要是综合开发平台的完善,使DSP的应用开发更加灵活方便。

DSP除了具备普通微处理器所强调的高速运算和控制能力外,针对实时数字信号处理的特点,在处理器的结构、指令系统、指令流程上做了很大的改进,其主要特点如下:[10] (1)采用哈佛结构。DSP芯片普遍采用数据总线和程序总线分离的哈佛结构或改进的哈佛结构,比传统处理器的冯. 诺依曼结构有更快的指令执行速度。

(2) 采用多总线结构。DSP芯片都采用多总线结构,可同时进行取指令和多个数据存取操作,并由辅助寄存器自动增减地址进行寻址,使CPU在一个机器周期内可多次对程序空间和数据空间进行访问,大大提高了DSP的运行速度。

(3)采用流水线技术。利用流水线结构,加上执行重复操作,就能保证在单指令周期内完成数字信号处理中用得最多的乘法—累加运算。

(4)有专用的硬件乘法—累加器。

(5)有特殊的DSP指令。

(6)快速的指令周期。

(7)硬件配置强。

(8)支持多处理器结构。

(9)省电管理和低功耗。

1.5DSP芯片开发工具

可编程DSP芯片的开发需要一整套完整的软硬件开发工具。通常,DSP芯片的开发工具可以分成代码生成工具和代码调试工具。代码生产工具的作用是将用C或汇编语言编写的DSP

程序编译汇编并链接成为可执行的DSP程序;代码调试工具的作用则是对DSP程序及系统进行调试,使之能够达到设计目标。代码生产工具是指将用高级语言、汇编语言或两种语言混合编写的DSP程序转换为可执行的DSP芯片目标代码的工具程序,主要包括汇编器和链接器、C编译器。此外还有一些辅助工具程序,如文件格式转换程序、库生产程序和文档管理程序等。归纳一下,代码生成工具程序主要包括一下几种类型的程序[19]:

①C编译器;

②汇编器和链接器;

③辅助程序,如文档管理程序和代码格式转换程序等;

④库文件;

⑤RTS头文件;

开发DSP芯片,调试工具是必不可少的,TMS320系列DSP芯片的系统集成和调试工具主要有:

①C/汇编语言源码调试器;

②初学者工具DSK;

③软件模拟器(Simulator);

④评价模块EVM;

⑤软件开发系统SWDS;

⑥仿真器XDS;

(1) C/汇编语言源码调试器

C/汇编语言源码调试器是一种工作在PC机上的先进的软件接口,它与调试工具(如软件模拟器、评价模块、软件开发系统、仿真器)混合使用,调试器可以完全控制用C语言或汇编语言编写的程序。用户程序既可以用C语言调试,也可以用汇编语言调试,还可以进行C 语言和汇编语言的混合调试,调试器提供了非常友好的用户界面,面向窗口,支持鼠标和菜单式的接口使用户不必记忆复杂的指令,使用十分方便。

(2) 初学者工具DSK

初学者工具DSK是RTI公司提供给初学者进行DSP编程练习的一套廉价的实时软件调试工具。DSK板上除了有一片DSP芯片之外,还提供了可用于声音输入和输出接口的A/D、D/A 接口芯片,它可以与PC机通信,在PC机上汇编后的程序可以通过串行或并行接口下载到DSP

芯片的内部RAM执行。此外,DSK板上还将DSP芯片的地址和数据总线引出,便于用户对DSK 板进行存储器等硬件资源的扩充,并在DSK硬件的基础上形成用户独立的DSP系统。

(3) 软件模拟器

软件模拟器是一种模拟DSP芯片各种功能并在非实时条件下进行软件测试的一种调试工具。它不需要目标硬件支持,只需要在计算机上运行,是一种廉价、方便的调试工具。当然由于DSP芯片用软件模拟器实现,运行速度是软件模拟器的一个突出的缺点,软件模拟器DSP 芯片的I/O时采用与文件关联的方法来实现,因而调试中所需的I/O可从文件中读取,输出到I/O口的值也可以存储在文件中。软件模拟器的主要特征有:在计算机上执行用户DSP程序;可修改和查看寄存器;可修改和显示数据和程序寄存器,任何时候可进行存储器的修改,也可在程序输入前进行存储器的初始化;可模拟外设,高速缓存及流水线、定时等功能;可计算指令周期数;可编程的断点设置;可在取指令读写存储器及错误条件满足时设置断点;可进行累加器程序计算器,辅助寄存器的跟踪,指令的单步执行,用户可设定中断产生间隔,在遇到非法操作码和无效数据访问时提示错误信息;从文件中执行命令。

(4) 评价模块EVM

评价模块EVM是一种低成本的开发板,在EVM板上配置了数量的硬件资源,可用来进行DSP芯片评价、性能评估和有限的系统调试。调试接口也采用上述的C/汇编源代码测试器。一般EVM开发板上提供的硬件资源包括电源接口、外设接口、辅助接口等。

(5) 软件开发系统SWDS

软件开发系统SWDS是一块PC插卡,可提供低成本的评价和实时软件开发。可用来进行实时的软件调试,程序在DSP芯片上实时运行,与仿真器不同的是软件开发系统不提供实时硬件调试功能,因此,涉及目标I/O操作一般用文件I/O代替。

(6) 仿真器XDS

仿真器XDS即扩展开发系统,可用来进行系统级的集成调试,是进行DSP芯片软件开发的最佳工具。目前主要有两种类型的仿真器:一种是传统的电路仿真器,主要用于早期的TMS320C1x及TMS320C2x两代DSP芯片的仿真;另一种是先进的扫描仿真器,主要用于TMD320C3x及TMS320C2xx/C5x、TMS320C54x/C55x、TMS320C6000等DSP芯片的仿真,在这些DSP芯片上提供了用于仿真的一些信号线,采用传统的电路仿真器对用户板进行硬件仿真时,仿真器的电缆插头必须插入到用户硬件电路中DSP芯片的相应位置,也就是说,仿真电缆的

插头端子必须与DSP芯片的端子一一对应。TI的XDS/22仿真器就属于这一类,主要用于TMS320C1x及TMS320C2x等芯片的仿真。扫描仿真器不采用插入仿真的方法,而是通过DSP芯片上提供的几个仿真端子实现仿真功能,这种方法为TI公司所开发,可用来解决高速DSP芯片的仿真。由于高速DSP芯片具有高度并行的结构,快速的指令周期,高密度的封装等特点,采用传统的电路仿真方法很难实现可靠的仿真。扫描仿真消除了传统的电路仿真存在的问题,例如,仿真电缆过长会引起信号失真,仿真插头会引起可靠性差等。用户程序可在目标系统的片内或片外存储器实时运行,而不会因仿真器引入额外的等待状态。DSP芯片内部是通过移位寄存器扫描链实现扫描仿真,这个扫描仿真被外部的穿行口访问。采用扫描仿真,即使芯片已经焊在电路板上也可以进行仿真调试,这对于在生产过程中调试DSP系统带来了极大的方便。

集成开发环境CCS(Code Composer Studio)是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具,可以帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。[12]

CCS有两种工作模式,即软件仿真器和硬件在线编程。软件仿真器工作模式可以脱离DSP 芯片,在PC上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。硬件在线编程可以实时运行在DSP芯片上,与硬件开发板相结合进行在线编程和调试应用程序。CCS的主要功能如下[10]:

(1)具有可视化代码编辑界面,用户可以通过其界面直接编写C语言程序、汇编语言程序、.cmd文件等.

(2) 含有集成代码生成工具,包括汇编器、优化C编译器、连接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中。

(3)高性能的编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误。

(4)工程项目管理工具对用户程序实行项目管理。在生成目标程序和程序库的工程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理。

(5)基本调试工具具有装入执行代码(.out文件)、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试。

(6)断点工具,能在调试程序的工程中,完成硬件断点、软件断点和条件断点的设置。 (7)探测点工具,可用于算法的仿真、数据的实时监视等。

(8)分析工具,包括模拟器分析和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟。

(9)数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新。

(10)提供GEL工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL 菜单选项,可方便直观地修改变量和配置参数等。

(11)支持DSP的调试。

(12)支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)的数据交换。

(13)提供DSP/BIOS工具,增强对代码的实时分析能力,如分析代码执行的速度、调度程序执行的优先级、方便管理或使用系统资源,从而减少开发人员对硬件资源熟悉程度的依赖性。

CCS集成开发环境打开界面如图1-1所示,该环境中有12项菜单,这些菜单中能完成所有功能。

图1-1 CCS集成开发环境界面

2IIR数字滤波器设计的方案选择及原理分析

2.1总体方案比较

基于MATLAB的IIR数字滤波器的设计方案如下:

方案一:程序设计法。MATLAB 信号处理工具箱提供了几个直接设计IIR 数字滤波器的函数,直接调用就可以设计滤波器,这为设计通用滤波器提供了方便。

方案二:FDATool 界面设计。FDATool (Filter Design&Analysis Tool )是MATLAB 信号处理工具箱里专用的滤波器设计分析工具。FDATool 可以设计几乎所有的常规滤波器,包括FIR 和IIR 的各种设计方法。它操作简单,方便灵活。

方案三:模拟原型法。采用经典低通滤波器作为连续域上的设计模型,通过频域变换得到IIR 数字滤波器,最后还要进行离散化处理。MATLAB 提供的低通模拟滤波器原型函数包括:besselap ,buttap ,cheb1lp ,cheb2ap ,ellipap ;频域变换函数包括:lp2bp ,lp2bs , lp2hp ,lp2lp;离散化处理函数有bilinear 和impinvar 。

方案四:直接设计法。直接设计方法的思想是基于给定的滤波器参数直接在离散域上寻找合适的数字滤波器,他不限于常规的滤波器类型,如低通、高通、带通和带阻等。这种方法甚至可以设计多带的频率响应,MATLAB 提供yulewalk 函数用于辅助设计。

方案五:通用Butterworth 设计方法。使用这种方法设计的Butterworth 数字滤波器可以有不同数目的零点和极点,MATLAB 提供的maxflat 函数实现了这一功能。这个函数与butter 函数很相似,但他可以指定两个阶参数,其中归一化和非归一化各一个。如果这两个参数的值相同,那么他与butter 函数的结果就是相同的。

方案六:参数建模法。寻找接近于所需要设计的滤波器的通用模型,时域上的建模函数为lpc ,prony ,Stmcb;频域上的建模函数有invfreqs 和invfreqz 。

比较上述方案,在该课题里,我将采用方案一设计一个低通滤波器,采用方案二设计一个带阻滤波器。

2.2 IIR 滤波器的基本原理

2.2.1 IIR 和FIR 的性能对比

1. FIR 滤波器的一个重要特点就是能够提供准确的线性相位[1], 所以在对相位要求较严格的地方, FIR 占据了统治地位, 但是严格的线性相位的IIR 滤波器也已经被提出, 只是其阶数比普通IIR 滤波器要提高一倍, 其基本思路如下:

采用双重滤波(double filtering)技术, 将信号一次通过两个滤波器, 第二个滤波器恰好对第一个滤波器的相位特性起补偿作用, 它们两个的频率响应分别为:

()()()()()()2212,i f j f i f i f H e M f e H e M f e φφππ-== (1)

所以总的频率响应:

()()()()()()()()222212i f j f i f i f i f H e H e H e M f e M f e M f φφπππ-=== (2)

但这样造成的一个问题就是:由于满足上述关系的H1(z),H2(z)必有H2(z)=H1(1/z)。所以总是有一个滤波器是不稳定的。实际实现中, 采用了一种时间反折技术(time- reversing technique),两个滤波器的传递函数设计成相同的, 但是经过第一个滤波器得到的数据经过一次反折,即后入先出,这样经过第二个滤波器后就跟原序列经过上述H1(z),H2(z)的效果是相同的。

2. FIR 的准确线性相位是以降低幅度响应特性作为代价的[1]

, 所以相同幅度响应的FIR 滤波器要比IIR 的阶数高得多, 特别是如果要实现有锐沿的幅频特性, FIR 所需要的阶数将非常高, 而IIR 滤波器就能很好的解决这个问题。

3. 由于FIR 没有反馈系统, 它需要较多的存储器来存放滤波器系数, 所以在对相位要求不很严格的地方, 使用IIR 滤波器更节约资源。

4. 反馈系统在IIR 滤波器中带来的一个问题就是:一次运算产生的误差将会反馈到输入端再参与运算, 使误差在环路内不断积累传播, 从而对滤波器的输出造成较大的影响。所以, 有限字长效应在IIR 滤波器中比在FIR 中更加严重。为了解决这个问题,Artur Krukowski 对相同传递函数, 不同内部结构的全通IIR 滤波器基本单元的量化效应和其他一些特性作了研究,得到了各种结构的特点, 可以根据应用的需要选择不同的结构,来达到特定的指标要求,从而发挥出IIR 滤波器的最大优势。

2.2.2 IIR 滤波器的差分表示

数字滤波器一般都具有差分方程形式 ()()()01M N

m n m n y n a x k m b y k n ===

-+-∑∑ (3) 其中,x( n)为输入序列,y( n)为输出序列,和为滤波系数, N 是滤波器的阶数。当为零,则有

()()0M m m y n a x k m ==

-∑ (4)

其中,式(3)为IIR 滤波器,式(4)为FIR 滤波器。

2.2.3 IIR 滤波器的传递函数

求IIR 滤波器的传递函数H(z)时,应把差分方程【式(3)】的两边加以Z 变换,得出: ()()()01M N

m n m n m n Y Z X Z a Z

Y Z b Z --===+∑∑ (5) 式中x(Z)、Y(Z)分别表示输入信号与输出信号的Z 变换。由此,按下述求出传递函数: ()()()()()

1M m m m N n n n a

Z Y Z A Z H Z X Z B Z b Z -=-====∑∑ (6) 式中各变量为:

(1)系数,:称为抽头系数或滤波器系数,是决定滤波器特性的数值;

(2)M : 滤波器的分子多项式的阶数;

(3)N : 滤波器的分母多项式的阶数。

式(6)为有理函数(由分母多项式与分子多项式构成的函数),FIR 滤波器的场合是只有分子多项式A(Z), 而IIR 滤波器则还具有分母多项式B(Z), 固而会产生种种问题。其中特别需要注意的是稳定性问题。在这里,使A(Z)=0的Z 值称为滤波器的“零点” ,使B(Z)=0 的Z 值则称为“极点”。

2.3 IIR 数字滤波器的设计方法

利用模拟滤波器成熟的理论和设计方法来设计IIR 数字低通滤波器是经常用的方法。设计过程是:按照技术要求设计一个模拟低通滤波器,得到模拟滤波器的传输函数G(S),再按一定的转换关系将G(S)转换成数字低通滤波器的系统函数H(Z)。这样设计的关键问题就是找这种转换关系,将S 平面上的G(S)转换成Z 平面上的H(Z)。为了保证转换后的H(Z)稳定且满足技术要求,对转换关系提出两点要求:

(1) 因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。

(2) 数字滤波器的频率响应模仿模拟滤波器的频响,S 平面的虚轴映射Z 平面的单位圆,相应的频率之间成线性关系。

将传输函数G(S)从S 平面转换到Z 平面的方法用多种,但工程上常用的是标准Z 变换和双一阶Z 变换。

2.3.1 S —Z 变换的概述

S —Z 变换是一种对模拟滤波器的传递函数G(S)加以变换来求数字滤波器的传递函数H(Z)的有效方法,具有以下特点:

(1)模拟滤波器的传递函数近似理论是很成熟的, 用比较简单的数学式表达出了常见的一些滤波器(巴特沃思型、切比雪夫型、贝塞尔型等)的设计公式。因此,如果以模拟滤波器的设计公式作为基础, 则数字滤波器的设计就归结为函数变换,可望简单化。

(2)对模拟滤波器的工作特性以数字滤波嚣来加以仿真这一点,在应用上多很有用。 S —Z 变换有标准z 变换与双一阶Z 变换等,是根据所要设计的滤波器的型式(按低通滤波器、带通滤波器等加以区别)分别利用的。

2.3.2 标准Z 变换

这种变换也称为冲激不变法,是使模拟滤波器的冲激响应g(t)的采样值等于所设计的数字滤波器的冲激响应h(k),亦即使

()()()|0,1,2,...t kT h k g t k === (7)

今设模拟滤波器的传递函数G(S)由下式表达:

()1N n n n

A G S S S ==+∑ (8) 通过对式(8)进行拉普拉斯变换反演计算,可得此滤波器的冲激响应为

(9)

代入(7)式后成为

()()1|n N

S kT t kT n n g k g t A e -====∑ (10)

至此,如果再计算模拟滤波器的冲激响应序列g(k)的Z 变换,就显然与数字滤波器的传递函数H(Z)相一致。亦即得到

()(){}

100110n n N N k S kT S T k k n n k k n n k H Z g k Z

A e Z A e Z ∞∞∞-----=====????===????????∑∑∑∑∑ (11) 此无限等比级数可改写为

()111n N n S kT n A H Z e Z --==-∑ (12)

在这里把式(12)看作是由S 域向Z 域的变换,就导出了的关系(称为标准Z 变换)。

2.3.3 双一阶Z 变换(即双线性变化)

这种变换也称梯形积分法,目的在于克服标准Z 变换不适应设计产生混叠误差、频带未受限制的滤波器这一缺点。

今把由下述S —Z 变换式

(13)

所示的S 值代入模拟滤波器的传递函数G(S)中去,就得到传递函数为

()()1

1211|

Z S T Z H Z G S ---=+= (14)

的数字滤波器。通过简单的考察可知,双一阶Z 变换是把整个S 平面映射到Z 平面的单位圆内,不存在混叠现象,只要模拟滤波器是稳定的,那么数字滤波器就也是稳定的。但它们的冲激响应与频率特性切不是一样的。

把式(14)中的S 代以、Z 代以,用表示模拟滤波器G(S)的频率特性、表示数字滤波器H(Z)的频率特性,则(14)式可以写成

/2/2

/2/2

2121D D D D D D jw T iw T iw T A jw T iw T iw T e e e jw T e T e e ----==++ (15)

用欧拉公式得出模拟角频率与数字角频率的关系为 (16)

式(16)表示了与之间的畸变亦即变形。这就是说,双一阶Z 变换是给频率特性带来畸变的,它把模拟滤波器的角频率凝聚成为数字滤波器的角频率。因此,在利用双一阶Z 变换进行设计的场合,当确定模拟滤波器的指标参数时,必须把式(16)加给数字滤波器角频率的畸变考虑进来。这称为预变形。

2.3.4 利用模拟滤波器设计IIR 滤波器的步骤

(1) 将给定的数字滤波器的性能指标,按某一变换(映射)规则转换成相应的模拟滤波器性能指标。

(2) 如果要设计的不是数字滤波器,则还需要将步骤(1)中变换所得到相应的(高通,带通, 带阻)模拟滤波器性能指标变换成模拟滤波器的性能指标。这是因为模拟滤波器才有图形和表格可以利用。

(3) 用所得到的模拟低通滤波器的性能指标,利用某种模拟滤波器逼近方法,设计并查表求得此模拟低通滤波器的系统函数,以它作为设计数字滤波器的“样本”。

(4) 利用与步骤(1),(2) 中的同一变换规则,将此作为“样本”的模拟原型低通滤波器的系统函数最终变换成所需的数字各型滤波器的系统函数H (z)。

步骤(1)中的变换规则就是从模拟滤波器数字化成为数字滤波器的方法,也就是要把s 平面映射到z平面,使模拟系统函数Ha(s)变换成所需的数字滤波器的系统函数H(z)。这种由复变量s到复变量z之间的映射(变换)关系,必须满足以下两条基本要求: 第一,H(z)的频率响应必须有可能模仿Ha(s)的频率响应,即s平面的虚轴必须映射到z平面的单位圆上,也就是频率轴

要对应。第二,因果稳定的Ha(s)应能映射成因果稳定的H(z)。也就是s平面的左半平面Re[ s ]< 0 必须映射到z平面单位圆的内部|z|< 1。

“模拟原型”滤波器有多种设计方法,例如: 巴特沃思型滤波器,切贝雪夫型滤波器,椭圆函数型(考尔型)滤波器等。设计时,是将上述满足数字滤波器性能指标要求的,作为“样本”的模拟滤波器映射成数字滤波器。

3 IIR滤波器的MATLAB设计与仿真

3.1FDATool界面设计

3.1.1FDATool的介绍

FDATool(Filter Design&Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB 6.O以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。[7]

FDATool的界面总共分两大部分(其界面如图3-1所示),一部分是Design Filter。在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。

Design Method(设计方法)选项,包括IIR滤波器的Butterwotth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。

Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify Order=N-1)。如果选择Minimum Order,则MATLAB根据所选择的滤波器类型自动使用最小阶数。

Frequency Specifications选项,可以详细定义频带的各参数,包括采样频率和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定。例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定,所以只需定义通带截止频率,而不必定义阻带参数。

Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所

以不必定义。

Window Specifications选项,当选取采用窗函数设计,该选项可定义,它包含了各种窗函数。

图3-1 滤波器设计FDATool界面

3.1.2IIR带通滤波器设计实例

要求设计一个10阶的带通Chebyshev I滤波器,它的通带范围是100到200Hz,采样频率为1000Hz,Rp=0.5。

本例中,首先在Filter Type中选择Bandpass(带通滤波器);在Design Method 选项中选择IIR,接着在相邻的右则选项中选择Chebyshev I(切比雪夫I型);指定Filter Order项中的Specify Order=10;由于采用的是切比雪夫设计,不必在Options中选择;然后在Frequency Specifications中选择Unit为Hz,给出采样频率Fs=1000,通带Fpass1=100和Fpass2=200;最后在Magnitude Specifications中选择Unit为db,Apass=0.5。设置完成后点击Design Filter即可得到所设计的IIR滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性,如图3-2、3-3、3-4所示。设计完成后将结果保存为filterl.fda文件。

图3-2 滤波器的幅频特性图

图3-3 滤波器的相频特性图

图3-4 滤波器的冲激响应图

3.1.3 IIR 设计实例分析

较小,其曲线近似一条直线,失真较小;当频率超过这一范围时,相移较大,而且其曲线是非直线的,所以失真也较大。图3-4得到了Chebyshev I 滤波器的时域冲激响应,在5ms-100ms 有冲激响应,超过这一范围的冲激响应近似为零,进而实现了Chebyshev I 带通滤波器的设计。

3.2 程序设计

3.2.1 程序法介绍 MATLAB 信号处理工具箱提供了几个直接设计IIR 数字滤波器的函数,直接调用就可以设计滤波器。设计Butterworth 滤波器用函数butter(),可以设计低通、高通、带通和带阻的数字和模拟滤波器,其特性是通带内的幅度响应最大限度的平滑,但损失了截止频率处的下降斜度。

设计Chebyshev I 型滤波器用函数chebyl()。可以设计低通、高通、带通和带阻的数字和模拟ChebyshevI 型滤披器,其通带内为等波纹,阻带内为单调。Chebyshev I 型滤波器的下降斜度比II 型大,但其代价是通带内波纹较大。

设计Chebyshev II 型滤波器用函数cheby2()。可以设计低通、高通、带通和带阻的数字和模拟Chebyshev II 型滤波器,其通带内为单调,阻带内等波纹。Chebyshev II 型滤波器的下降斜度比I 型小,但其阻带内波纹较大。

设计椭圆滤波器用函数ellip(),与cheby1,cheby2类似,可以设计低通、高通、带通和带阻的数字和模拟滤波器。与 Butterworth 和chebyshev 滤波器相比,ellip 函数可以得到下降斜度更大的滤波器,得到通带和阻带均为等波纹。一般情况下,椭圆滤波 器能以最低的阶实现指定的性能指标。

3.2.2 IIR 低通滤波器设计

给定抽样频率fS= 10KHz ,要求在频率小于1KHz 的通带内,幅度特性下降小于1dB :在频率大于1.5KHz 的阻带内, 衰减大于40dB 。

利用模拟频率与数字频率之间的关系:

332110/10100.2p w ππ=???=

332 1.510/10100.3s w ππ=???=

采用Butterworth 模拟滤波器进行设计,MATLAB 设计程序如下:

wp= 0.2*p i;ws= 0.3*pi;

[n,w n ]= buttord (wp,ws,1,40, ’s’)

% 估计阶次和截止频率

[b,a ]= butter (n,wn,’s’) ;

[bz,az ]= impinVar (b,a)

% 利用impinvar 可得到冲激响应相同的数字滤波器

% 作出幅频和相频曲线图

运行结果如下:

n = 6

wn = 0.7229

bz = 0.0000 0.0007 0.0116 0.0183 0.0046 0.0001 0

az = 1.0000 -3.2943 4.8891 -4.0735 1.9859 -0.5331 0.0612

在MA TLAB 7.0中运行,利用的滤波器分析函数Freqz分析所设计出的滤波器的幅频特性和相频特性,如图3-5所示。设计结果满足指标要求。

图3-5 用Butterworth低通滤波器设计的数字低通滤波器幅频和相频特性图

相关主题
文本预览
相关文档 最新文档