首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机应用
   基于MATLAB的IIR滤波器设计      ★★★ 【字体: 】  
基于MATLAB的IIR滤波器设计
收集整理:佚名    来源:本站整理  时间:2012-07-06 19:49:16   点击数:[]    

[本篇论文由5var5VAR论文频道为您收集整理,5VAR论文频道http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]

第一章 绪论
1.1 研究的动机与目的
    数字滤波器是数字信号处理理论的一部分。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示,简单的说数字信号处理就是用数值计算的方法对信号进行处理。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。数字滤波器在通信 、语言 、图像 、自动控制 、雷达 、军事 、航空航天 、医疗 和家用电器等众多领域得到了广泛的应用 ,尤其在图像处理 、数据压缩等方面取得了令人瞩目的进展和成就。鉴于此 ,数字滤波器的设计就显得尤为重要。
现阶段对数字滤波器的研究具有时代意义,通过对前人研究方法和结果的总结,可以更好的将大学本科所学与实际应用问题相联系,做到学以至用。本文主要还是对前人的研究进行一个综述,然后结合课本上的基础知识,运用经典设计法中的脉冲响应不变法和双线性变换法进行IIR数字滤波器的设计,并通过Matlab进行仿真。

1.2 研究背景
1.2.1 数字滤波器的发展状况
     数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在上世纪40年代末期就有人讨论它的可能性问题,在50年代也有人讨论过数字滤波器,但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼而有之。出现了数字滤波器的各种通近访法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论。数字滤波器的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识转化。在初期,一般认为IIR滤波器比FIR滤波器具有更高的运算效率,因而明显地趋向于前者,但当人们提出用快速傅利叶变换(FFT)实现卷积运算的概念之后,发现高阶FIR滤波器也可以用很高的运算效率来实现,这就促使人们对高性能FIR滤波器的设计方法和数字滤波器的频域设计方法进行了大量的研究,从而出现了此后数字滤波器设计中频域方法与时域方法并驾齐驱的局面。然而,这些均属数字滤波器的早期研究,早期的数字滤波器尽管在语音、声纳、地震和医学的信号处理中曾经发挥过作用,但由于当时计算机主机的价格很昂贵,严重阻碍了专用数字滤波器的发展。70年代科学技术蓬勃发展,数字信号处理开始与大规模和超大规模集成电路技术、微处理器技术、高速数字算术单元、双极性高密度半导体存储器、电荷转移器件等新技术、新工艺结合了起来,并且引进了计算机辅助设计方法,它是数字滤波器的设计仅仅是对相应模拟滤波器的逼近。一般说来,通过对模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲击响应,而采用计算机辅助设计则有可能实现频域与时域的最佳逼近,或频域时域联合最佳逼近。这样,数字滤波器的分析与设计其内容也更加丰富起来:各种新的数字处理系统,也都能用专用数字硬件加以实现。
1.2.2 MATLAB软件简介
      MATLAB的 最初版本是由Cleve Moler博士用FORTRAN语言开发的矩阵分析软件,MATLAB是“矩阵实验室”(MATrix  LABoratory)的缩写,它是一种以矩阵运算为基础的交互式程序语言,最早用来作为LINPACK(线性代数软件包)和ELSPACK(基于特征值计算的软件包)矩阵软件工具包的接口。在80年代初期,由Cleve Moler和John Little采用C语言改写了MATLAB的内核。不久,他们成立了MathWorks软件开发公司,并于1984年将MATLAB正式推向市场。1992年初推出了应用于Windows 操作系统的MATLAB 4.x版,1997年推出5.1版本,1998年推出5.2版本,1999年推出MATLAB 5.3版本,2000年又推出更为简单易学的MATLAB 6.0版本。随着MATLAB版本的升级,其内容不断扩充和改进,人机界面越来越生动、友好,语言也越来越简单易学,同时,对使用环境也提出了更高的要求。MATLAB自1984年正式推出以后,其功能越来越强大,已成为国际公认的最优秀的数学软件之一,尤其是MATLAB 6.0,其应用范围涵盖了工业、电子、医疗以及建筑等领域。
 由于数字滤波器的概念比较抽象,加上其数字计算又比较繁琐,所以借助好的计算机软件来进行辅助设计,是数字滤波器研究领域的一个发展趋势。这样的软件有很多种,其中最具代表性的就是MATLAB。MATLAB具有强大的数值运算及分析功能,可以对数字滤波器进行快速精确的设计,因其编程简单直观,用户界面友善,开放性强等优点,自面世以来在国际上备受推崇,被IEEE称为国际公认最优秀的科技应用软件。利用MATLAB的强大运算功能,基于MATLAB的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。并可对不同的要求,随时更改参数,以达到滤波器设计的最优化。利用MATLAB设计数字滤的方法产行生的数字滤波器系数能被许多设计软件调用,通用性强。合理利用MATLAB提供的强大工具支持和仿真工具,将为数字滤波的设计带来极大的便利。

1.3 研究方法
无限长冲击响应数字滤波器(IIR)特点是具有无限持续时间的冲激响应 ,由于这种滤波器一般需要用递归模型来实现 ,因而又称为递归滤波器。现在对IIR数字滤波器的设计方法的研究还是很普遍的,国内外都有很多学者参与这方面的研究,因此其设计方法也是多种多样如:脉冲响应不变法,双线性变换法,涉及多参数优化问题的粒子群优化计算法,连续蚁群优化算法(ACOR),考虑全局优化的模拟退火算法(SA),遗传算法(GA)[9],Tabu算法[10]等。
本文主要运用最基本的脉冲响应不变法和双线性变换法来设计IIR数字滤波器,在文中详述了两者的设计原理和优缺点,并通过Matlab程序实现仿真。同时对这两种方法原理和程序运行结果的进行比较与分析,以便更好的优化对IIR数字滤波器的设计。

1.4 论文內容概述
    第一章,开头部分介绍了本课题的研究目的和动机,接下来简单介绍了数字滤波器的一些背景及相关知识,包括其发展状况,辅助软件Matlab;然后对研究方法做了概述。第二章,简单介绍了数字滤波器的原理、分类,IIR数字滤波器的三种结构及数字滤波器设计的一般要求。第三章,重点介绍了IIR数字滤波器的两种设计方法即脉冲响应不变法和双线性变换法,包括两者的原理与优缺点。第四章,文中给出两个设计实例,分别用脉冲响应不变法和双线性变换法去设计,并运用Matlab实现仿真,最后对结果做了分析。第五章,对Matlab中滤波器设计与分析工具(FDATool)做了

简单的介绍,并给出了一个实例进行仿真设计。第六章,对全文进行总结。

第二章 数字滤波器
2.1 数字滤波器的原理
数字滤波器是对数字信号实现滤波的线性时不变系统。数字滤波实质上是一种运算过程,实现对信号的运算处理。输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。时域离散系统的频域特性: ,其中 、 分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性), 是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。输入序列的频谱 经过滤波后变为 。因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择的 使得滤波后的 满足设计的要求,这就是数字滤波器的滤波原理。

2.2 数字滤波器的分类
数字滤波器按其冲击响应的时域特性可分为无限冲击响应(IIR)数字滤波器和有限冲击响应(FIR)数字滤波器两种[11]。
IIR数字滤波器的系统函数为
                (2.2.1)
该滤波器的脉冲响应 在 区间有值。
FIR数字滤波器的系统函数为
                  (2.2.2)
该滤波器的脉冲响应 的有限个点上有值。
   

按频域来分数字滤波器和模拟滤波器一样,可以分为低通、高通、带通和带阻滤波器[12]。它们的理想特性如图2.2.1所示。理想滤波器是不可能实现的,因为他们的单位脉冲响应均是非因果且是无限长的,我们只能按照一些准则来无限逼近它,因此理想滤波器可以看作逼近的标准。另外,数字滤波器的传输函数 都是以 为周期的,滤波器的低通频带处于 的整数倍,而高频频带处于 的奇数倍附近,这一点和模拟滤波器是有区别的。
 
图2.2.1 理想低通、高通、带通和带阻滤波器幅度特性
2.3IIR数字滤波器的网络结构
2.3.1 直接型
将 阶差分方程重写如下:
                    (2.3.1)
设 ,按照差分方程可以直接画出网络结构如图2.3.1( )所示。图中第一部分系统函数用 表示,第二部分用 表示,那么 。将图2.3.1( )中两部分流图交换位置就如图2.3.1( )所示。如果途中节点变量 ,则前后两部分延时支路可以合并,形成如图2.3.1( )所示的网络结构流图。
我们把图2.3.1( )所示的叫做直接1型结构,其特点是直观,但速度慢,不经济(需要 个延时器),图2.3.1( )所示的是直接2型,它比1型速度快、经济(只需要 或 个延时器),但它们的系数都不能直接控制滤波器特性。图2.3.1( )所示的这类流图我们称为IIR直接型网络结构。
 

图 2.3.1 (a)直接1型结构,(b)直接2型结构,(c)IIR直接型网络结构
2.3.2 级联型
    现在将(2.2.1)公式中分子、分母多项式分别进行因式分解,得到:
                  (2.3.2)
式中 是常数, 分别表示零点和极点。 是实数或者是共轭成对的复数,将共轭成对的零点(极点)放在一起,形成一个二阶多项式,其系数仍是实数;在将分子、分母均为实系数的二阶多项式放在一起,形成一个二阶网络 。 如下式:
                (2.3.3)
式中, 、 、 、 和 均为实数。这样 就分解成一些一阶或二阶数字网络的级联形式,如下式:                             (2.3.4)
式中 表示一个一阶或二阶的数字网络的系统函数,每个 的网络结构均采用直接型网络结构,如图2.3.2所示。

 
图 2.3.2 (a)直接型一阶网络结构, (b)直接型二阶网络结构

级联型结构的特点是延迟单元少,二阶基本节利用率高(可以时分复用),还可以单独调节各对零极点而不影响其他。
2.3.3 并联型
将级联型的 展成部分分式形式,则得到IIR并联型结构。
                 (2.3.4)
式中, 通常为一阶网络或二阶网络,网络系数均为实数。二阶网络的系统函数一般为
                    (2.3.5)
式中, 、 、 和 都是实数。如果 ,则构成一阶网络。由(2.3.5)式,其输出 表示为
           (2.3.6)
上式表明将 送入每个二阶(包括一阶)网络后,将所有输出加起来得到输出 。
并联型运算速度最快,可以单独调整极点,但不能单独调整零点,各基本节的误差不会相互影响。

2.4 数字滤波器的设计要求
假设数字滤波器的传输函数 用下式表示:
     &n

          

bsp;              (2.4.1)
式中 为幅频特性, 为相频特性。幅频特性表示信号通过该滤波器后各频率成分衰减情况,而相频特性反映各频率成分通过滤波器后在时间上的延时情况。一般选频滤波器的技术要求由幅频特性给出,相频特性一般不作要求,但如果对输出波形有要求,则需要考虑相频特性的技术指标,如语音合成、波形传输、图像信号处理等。
对各种理想滤波器,我们必须设计一个因果可实现的滤波器去实现。另外,也要考虑复杂性与成本问题,因此实际中通带和阻带中都允许一定的误差容限,即通带不一定是完全水平的,阻带不一定都绝对衰减到零。
图2.4.1 表示低通滤波器的幅度特性, 和 分别为通带截止频率和阻带截止频率。通带频率范围为 ,在通带中要求 ,阻带频率范围为 ,在阻带中要求 ,从 到 称为过渡带,一般是单调下降的。但通带内和阻带内允许的衰减一般用dB数表示,通带内允许的最大衰减用 表示,阻带内允许的最小衰减用 表示, 和 分别定义为:
  dB                     (2.4.2)

   dB                     (2.4.3)
如将 归一化为1,(2.4.2)和(2.4.3)式则表示成:
  dB                    (2.4.4)

  dB                   (2.4.5)
当幅度下降到 时, ,此时  dB,称为 dB通带截止频率。 、 和 统称边界频率,它们在滤波器设计中是很重要的。

第三章 IIR数字滤波器的设计方法
    IIR数字滤波器是一种离散时间系统,其系统函数为
                     (3.1)
假设 ,当 时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数 和 ,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。
3.1 脉冲响应不变法
3.1.1 脉冲响应不变法原理
    脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列 模仿模拟滤波器的冲激响应 ,即将 进行等间隔采样,使 正好等于 的采样值,满足                                                            (3.1.1)
式中, 是采样周期。如果令 是 的拉普拉斯变换, 为 的 变换,利用采样序列的 变换与模拟信号的拉普拉斯变换的关系得:
       (3.1.2)

  是脉冲响应不变法将模拟滤波器的 平面变换成数字滤波器的 平面的标准映射关系式。其映射关系如下图:
图 3.1.1  , 平面与 平面之间的映射关系

由(3.1.2)式可看出数字滤波器的频率响应和模拟滤波器的频率响应间的关系为
                   (3.1.3)
这就是说,数字滤波器的频率响应是模拟滤波器频率响应的周期延拓。正如采样定理所讨论的,只有当模拟滤波器的频率响应是限带的,且带限于折叠频率以内时,即
                     (3.1.4)
才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,而不产生混叠失真,即
                     (3.1.5)
但是,任何一个实际的模拟滤波器频率响应都不是严格限带的,变换后就会产生周期延拓分量的频谱交叠,即产生频率响应的混叠失真,如图3.1.2所示。这时数字滤波器的频响就不同于原模拟滤波器的频响,而带有一定的失真。当模拟滤波器的频率响应在折叠频率以上处衰减越大、越快时,变换后频率响应混叠失真就越小。这时,采用脉冲响应不变法设计的数字滤波器才能得到良好的效果。对某一模拟滤波器的单位冲激响应 进行采样,采样频率为 ,若使 增加,即令采样时间间隔

          

减小,则系统频率响应各周期延拓分量之间相距更远,因而可减小频率响应的混叠效应。
图 3.1.2 脉冲响应不变法中的频响混叠现象

3.1.1 脉冲响应不变法的优缺点
    从以上讨论可以看出,脉冲响应不变法使得数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,也就是时域逼近良好,而且模拟频率 和数字频率 之间呈线性关系 。因而,一个线性相位的模拟滤波器(例如贝塞尔滤波器)通过脉冲响应不变法得到的仍然是一个线性相位的数字滤波器。
    脉冲响应不变法的最大缺点是有频率响应的混叠效应。所以,脉冲响应不变法只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小。至于高通和带阻滤波器,由于它们在高频部分不衰减,因此将完全混淆在低频响应中。如果要对高通和带阻滤波器采用脉冲响应不变法,就必须先对高通和带阻滤波器加一保护滤波器,滤掉高于折叠频率以上的频率,然后再使用脉冲响应不变法转换为数字滤波器。当然这样会进一步增加设计复杂性和滤波器的阶数。

3.2 双线性变换法
3.2.1 双线性变换法原理
    脉冲响应不变法的主要缺点是产生频率响应的混叠失真,这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到 之间,再用 转换到 平面上。也就是说,第一步先将整个 平面压缩映射到 平面的 一条横带里;第二步再通过标准变换关系 将此横带变换到整个 平面上去。这样就使 平面与 平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图3.2.1所示:


 图 3.1.2 双线性变换的映射关系
为了将 平面的整个虚轴 压缩到 平面 轴上的 段上,可以通过以下的正切变换实现:
                   (3.2.1)
式中, 仍是采样间隔。经推导可得到S平面和Z平面的单值映射关系为:
                      (3.2.2)
                        (3.2.3)

   (3.2.2)与(3.2.3)式是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换。
   (3.2.1)式与(3.2.2)式之间的双线性变换符合映射变换应满足的两点要求即因果稳定。首先,把 代入(3.2.2)式,可得:
                    (3.2.4)
即 平面的虚轴映射到 平面的单位圆。
其次,将 代入式(3.2.3),得:
                          (3.2.5)
由此可得:
                        (3.2.6)

由此看出,当 时, ;当 时, 。也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。这说明如果 是因果稳定的,那么经双线性转换后得到的 仍是因果稳定的。


3.2.1 双线性变换法的优缺点
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。这是因为 平面与 平面是单值的一一对应关系。 平面整个 轴单值地对应于 平面单位圆一周,即频率轴是单值变换关系。(3.2.1)式表明, 平面上 与 平面的 成非线性的正切关系,如图3.2.1所示。在零频率附近,模拟角频率 与数字频率 之间的变换关系接近于线性关系;但当 进一步增加时, 增长得越来越慢,最后当 时, 终止在折叠频率 处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。


 图 3.1.2 双线性变换法的频率变换关系
  
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,由于这种频率之间的非线性变换关系,就产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变。对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。


第四章 IIR数字滤波器的仿真
4.1 脉冲响应不变法的程序实现
4.1.1 设计实例
利用冲击响应不变法设计一个低通Chebyshev 型数字滤波器,其通带上限

          

临界频率为0.3KHz,阻带临界频率为0.4KHz,采样频率为1000Hz,在通带内最大衰减为0.3dB,阻带内的最小衰减为80dB[13]。


4.1.2 设计过程
第一步
        将数字滤波器的频率特征转换成模拟滤波器的频率特性:
        通带上限临界频率为 ,阻带临界频率为 ,
        通带内最大衰减为 dB,阻带内的最小衰减为 dB;
 第二步
        计算滤波器的最小阶数 和通带截止频率 ,可调用MATLAB 中的cheb1ord
        函数来计算。
第三步
       根据上面求得的最小阶数 来创建Chebyshev低通原型,可调用cheb1ap函数来实
       现。
第四步
       调用lp2lp函数将模拟低通滤波器转化为另一截止频率 (弧度/秒)模拟低通滤
       波器。
第五步
     利用脉冲响应不变法将模拟低通滤波器 转换成数字带通滤波器 。


4.1.3 程序流程图

开始

读入数字滤波器技术指标

将指标转换成模拟低通滤波器的指标

计算模拟低通滤波器阶数N和3dB截止频率

模拟域频率变换,从模拟低通到模拟低通

用脉冲响应不变法将H(s)转换成数字低通滤波器H(z)

输入信号后显示相关结果

结束

4.1.4 MATLAB程序
MATLAB 程序1如下:
clear
%将数字滤波器的频率特征转换成模拟滤波器的频率特性
wp=300*2*pi;ws=400*2*pi;rp=0.3;rs=80;Fs=1000;
[N,Wc]=cheb1ord(wp,ws,rp,rs,'s');            %选择滤波器的最小阶数
[Z,P,K]=cheb1ap(N,rp);                    %创建Chebyshev低通原型
[A,B,C,D]=zp2ss(Z,P,K);                   %零极点增益模型转换为状态空间模型
[AT,BT,CT,DT]=lp2lp(A,B,C,D,Wc);         %实现低通向低通转换
[num1,den1]=ss2tf(AT,BT,CT,DT);           %状态空间模型转换为传递函数模型
%运用脉冲响应不变法把模拟滤波器转变为数字滤波器
[num2,den2]=impinvar(num1,den1,Fs);
[H,W]=freqz(num2,den2);
plot(W*Fs/(2*pi),abs(H));
grid;
xlabel('频率/Hz')
ylabel('幅值')
title('频率响应1')


运行结果:

 
图 4.1.4 Chebyshev 型数字滤波器的频率响应图( Hz)
    上图很好的表现Chebyshev 型数字滤波器的两个特性:通带具有等间距波纹,较大的阻带衰减,这说明在 Hz的条件下,采用脉冲响应不变法达到了最初的设计要求。
MATLAB 程序2如下:
clear
%将数字滤波器的频率特征转换成模拟滤波器的频率特性
wp=300*2*pi;ws=400*2*pi;rp=0.3;rs=80;Fs=10;
[N,Wc]=cheb1ord(wp,ws,rp,rs,'s');            %选择滤波器的最小阶数
[Z,P,K]=cheb1ap(N,rp);                    %创建Chebyshev低通原型
[A,B,C,D]=zp2ss(Z,P,K);                   %零极点增益模型转换为状态空间模型
[AT,BT,CT,DT]=lp2lp(A,B,C,D,Wc);         %实现低通向低通转换
[num1,den1]=ss2tf(AT,BT,CT,DT);           %状态空间模型转换为传递函数模型
%运用脉冲响应不变法把模拟滤波器转变为数字滤波器
[num2,den2]=impinvar(num1,den1,Fs);
[H,W]=freqz(num2,den2);
plot

          

(W*Fs/(2*pi),abs(H));
grid;
xlabel('频率/Hz')
ylabel('幅值')
title('频率响应2')


运行结果:
 
图 4.1.5 Chebyshev 型数字滤波器的频率响应图( Hz)
   上图所示的Chebyshev 型数字滤波器频率响应图与理论所设想的完全不一致,与Butter-Worth低通滤波器的频率响应图有点类似,这说明在 Hz的条件下,采用脉冲响应不变法进行设计是行不通的。
4.2 双线性变换法的程序实现
4.2.1 设计实例
设计IIR带通滤波器,带通的中心频率为 ,通带截止频率 , ;通带最大衰减 dB;阻带最小衰减 dB;阻带截止频率 , s。
4.2.2 设计过程
第一步,根据任务确定性能指标:
带通滤波器的阻带边界频率关于中心频率 几何对称,因此
通带截止频率 , ;阻带截止频率 , ;  阻带最小衰减 dB和通带最大衰减 dB;
第二步
用公式(3.2.1): 对带通数字滤波器 的数字边界频率预畸变,得到带通模拟滤波器 的边界频率主要是通带截止频率 , ;阻带截止频率 , 的转换。将 s代入得:
通带截止频率:
    
阻带截止频率:
     
阻带最小衰减 dB和通带最大衰减 dB;
第三步
运用低通到带通频率变换公式 将模拟带通滤波器指标转换为模拟低通滤波器指标:
 ;
 ;
得出 , 。
模拟低通滤波器指标: , , dB, dB。
第四步
设计模拟低通原型滤波器。用模拟低通滤波器设计方法得到模拟低通滤波器的传输函数 ;借助巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等。
第五步
调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。
第六步
利用双线性变换法将模拟带通滤波器 转换成数字带通滤波器 。

4.2.3 程序流程图
开始

读入数字滤波器技术指标

将指标转换成归一化模拟低通滤波器的指标

设计归一化的模拟低通滤波器阶数N和3db截止频率

模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)

用双线性变换法将H(s)转换成数字带通滤波器H(z)

输入信号后显示相关结果

结束


4.2.4 MATLAB程序
MATLAB 程序1如下:
clear
wp0=0.5*pi;wp1=0.4*pi;wp2=0.6*pi;
Ap=3;ws2=0.7*pi;As=15;T=5*pi*10^(-6);   %数字带通滤波器技术指标
%频率预畸变
ws1=wp0-(ws2-wp0);      %计算带通滤波器的阻带下截止频率
wt1=(2/T)*tan(wp1/2);wt2=(2/T)*tan(wp2/2);
wz1=(2/T)*tan(ws1/2);wz2=(2/T)*tan(ws2/2);
w0=(2/T)*tan(wp0/2);        
B=wt2-wt1;     %带通滤波器的通带宽度
 %将指标转换成归一化模拟低通滤波器的指标
lamds1=(((wz1^2)-(w0^2))/(B*wz1));    %带通到低通的频率变换
lamds2=(((wz2^2)-(w0^2))/(B*wz2));
lamdp1=(((wt1^2)-(w0^2))/(B*wt1));
lamdp2=(((wt2^2)-(w0^2))/(B*wt2));  
if abs(lamds1)>abs(lamds2)
      lamds=abs(lamds2)
else lamds=abs(lamds1)
end
     lamdp=1;
%设计归一化的模拟低通滤波器       
N=buttord(lamdp,lamds,Ap,As,'s'); %设计归一化的模拟低通滤波器阶数N和3dB截止频率
[bLP,aLP]=butter(N,lamdp,'s');  %计算相应的模拟滤波器系统函数G(p)
w=linspace (0,2*pi,500);
h=freqs(bLP,aLP,w);
subplot(2,2,2);plot(w,20*log10(abs(h))); %画模拟滤波器幅频特性
axis([0,2*pi,-50,0]);
grid on;
xlabel('w(rad) ');
title('模拟低通幅度(dB)1')
[bBP,aBP]=lp2bp(bLP,aLP,w0,B);  %模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)
 %用双线性变换法将H(s)转换成数字带通滤波器H(z)
[b,a]=bilinear(bBP,aBP,1/T);     
w=linspace (0,2*pi,500);
h=freqz(b,a,w);
subplot(2,1,2);
plot(w,abs(h));
grid on
xlabel('w(rad)')
ylabel('H(jw)')
title('频谱函数1')
subplot(2,2,1);
plot(w,20*log10(abs(h)));
axis([0,2*pi,-120,20]);
grid on
xlabel('w(rad)')
ylabel('增益(dB)')
title('数字带通幅度(dB)1')

在程序1中我们取 s,其运行结果如下:lamds =2.2361
 
图 4.2.4 双线性变换法运行结果频谱图( s)
  &nb

          

sp;  上图显示的分别是模拟低通幅度谱,数字带通幅度谱和数字带通的频谱函数图。从图中可以看出低通原型的每一个边界频率都映射为带通滤波器两个相应的边界频率。根据通带截至频率和阻带截至频率与频谱函数曲线比较,在 s的条件下采用双线性变换法设计满足设计要求。

MATLAB 程序2如下:
clear
wp0=0.5*pi;wp1=0.4*pi;wp2=0.6*pi;
Ap=3;ws2=0.7*pi;As=15;T=2;   %数字带通滤波器技术指标
%频率预畸变
ws1=wp0-(ws2-wp0);      %计算带通滤波器的阻带下截止频率
wt1=(2/T)*tan(wp1/2);wt2=(2/T)*tan(wp2/2);
wz1=(2/T)*tan(ws1/2);wz2=(2/T)*tan(ws2/2);
w0=(2/T)*tan(wp0/2);        
B=wt2-wt1;     %带通滤波器的通带宽度
 %将指标转换成归一化模拟低通滤波器的指标
lamds1=(((wz1^2)-(w0^2))/(B*wz1));    %带通到低通的频率变换
lamds2=(((wz2^2)-(w0^2))/(B*wz2));
lamdp1=(((wt1^2)-(w0^2))/(B*wt1));
lamdp2=(((wt2^2)-(w0^2))/(B*wt2));  
if abs(lamds1)>abs(lamds2)
      lamds=abs(lamds2)
else lamds=abs(lamds1)
end
     lamdp=1;
%设计归一化的模拟低通滤波器       
N=buttord(lamdp,lamds,Ap,As,'s'); %设计归一化的模拟低通滤波器阶数N和3dB截止频率
[bLP,aLP]=butter(N,lamdp,'s');  %计算相应的模拟滤波器系统函数G(p)
w=linspace (0,2*pi,500);
h=freqs(bLP,aLP,w);
subplot(2,2,2);plot(w,20*log10(abs(h))); %画模拟滤波器幅频特性
axis([0,2*pi,-50,0]);
grid on;
xlabel('w(rad) ');
title('模拟低通幅度(dB)')
[bBP,aBP]=lp2bp(bLP,aLP,w0,B);  %模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)
 %用双线性变换法将H(s)转换成数字带通滤波器H(z)
[b,a]=bilinear(bBP,aBP,0.5);     
w=linspace (0,2*pi,500);
h=freqz(b,a,w);
subplot(2,1,2);
plot(w,abs(h));
grid on
xlabel('w(rad)')
ylabel('H(jw)')
title('频谱函数')
subplot(2,2,1);
plot(w,20*log10(abs(h)));
axis([0,2*pi,-120,20]);
grid on
xlabel('w(rad)')
ylabel('增益(dB)')
title('数字带通幅度(dB)')

在程序2中我们采用 S,其运行结果:lamds =2.2361
 
图 4.2.5 双线性变换法运行结果频谱图( S)
    上图显示的是在 S的条件下,运用双线性变换法设计的结果,与 s条件下的设计结果一致,达到了设计要求。

4.3 结果分析
在运用脉冲响应不变法设计数字滤波器的过程中,可以明显的看出采样频率对设计结果的影响,当采用较高的频率 Hz时,运用脉冲响应不变法可以很好的实现数字滤波器的设计。从图4.1.4中可以清楚的看出通带内的波纹并且是等间隔的,阻带衰减很快,这是Chebyshev 型数字滤波器的频率特征,这说明脉冲响应不变法很好的很好的重现了模拟滤波器的频率特性。当我们采用较低的频率 Hz时,脉冲响应不变法就不能实现数字滤波器的设计了。如图4.1.5所示,通带很不明显,且通带内没有波纹,阻带衰减很慢,这说明脉冲响应不变法没有能实现设计要求。其原因是显而易见的,当采用频率过低时,出现了频率响应的混叠,这也是脉冲响应不变法的最大缺点,因此在脉冲响应不变法的设计中要注意频率的选取,尽量选高频。
但在双线性法设计过程中,频率的选取对设计几乎没有影响,采用 s和  s的设计结果如图4.2.4,图4.2.5所示,两者几乎一样,这说明双线性变换法很好的克服了脉冲响应不变法中出现的频率响应混叠现象,这也是双线性变换法最大的优点。关于这一点,无论是在先前的理论还是这里的程序中都得到了验证。但双线性的这个优点也来之不易,在设计过程中,要进行两次域的变换,在变换过程中失去了线性这一性质,而且增加了设计步骤与计算量。
总的来说,这两种方法还是各有千秋,各有所长,两者有相辅相成的关系,脉冲响应不变法适合低通、带通的设计,不适合高通、带阻的设计,在线性要求比较高的场合可以运用此方法进行数字滤波器的设计;双线性变换法在对相位线性要求不高的场合运用广泛,它适合低通、高通、带通、带阻的设计。


第五章 信号处理界面设计IIR数字滤波器
     在第四章中,主要运用MATLAB 函数进行IIR数字滤波器的设计,需要对已设计的滤波器的频率响应要进行校核,要得到幅频、相频响应特性,运算量是很大的,且比较繁琐。而利用MATLAB 强大的信号处理界面工具进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量,方便直观。

5.1 运用FDATOOL设计IIR 数字滤波器
   在MATLAB命令窗口下,执行fdatool命令,将弹出一个FDATOOL窗口,如图5.1

          

所示:
 

图 5.1.1 FDATool窗口
    
     下面我们用一个例子说明如何应用FDATool进行滤波器的设计。
      例子[12]:假设设计一个低通滤波器,其通带波纹为0.5dB,通带的截止频率为9000Hz,阻带衰减为40dB,阻带大于40dB的边界频率为12000Hz,采样频率为24000Hz。
     利用FDATool进行设计的步骤如下:
     (1)用鼠标单击Filter菜单下的Design Filter,激活窗口。在Design Filter窗口中包括很多区域,我们在Response Type 选项栏里选择Low pass(低通);
     (2)在窗口左下角的Design Method一栏里选择IIR结构,再细选Butter-Worth(巴特沃斯);
     (3)在Filter Order一栏中选择Minimum order (最优化阶数);
     (4)频率的设置。在Frequency Specification 一栏中的Fs(采用频率)中输入24000,Fpass中输入9000,Fstop中输入12000;
     (5)滤波器参数的设置。在窗口最右边的Magnitude Specification一栏中的Apass 中输入0.5,Astop中输入40;
     (6)点击设计窗口下方的Design Filter按钮,软件就会自动进行滤波器的设计。
下图是按照上述步骤设计的Butter-Worth低通数字滤波器的幅度谱,


 
图 5.1.2 Butter-Worth低通数字滤波器的幅度谱

   通过菜单选项Analysis 还可以在特性区看到所设计的相频响应、冲击响应和零极点配置等特性。
 
 
   图 5.1.3 Butter-Worth低通数字滤波器的相频特性


 
 
图 5.1.4 Butter-Worth低通数字滤波器的冲击响应


 

图 5.1.4 Butter-Worth低通数字滤波器的零极点分布图


5.2 结论
从以上这些界面中我们可以清晰明了的看到设计的该滤波器的各项参数指标,设计的结果直接用幅频图显示出来放便明了,而且还能通过界面的简单操作查看相频、冲击响应、零极点等特性图形。其最大的特点就是对所要设计的滤波器的参数修改相当容易,不像程序,修改一个参数可能产生连带作用,虽然简单但是其界面是设定好的,也就是说能修改的参数是有限的,而且它能设计的也是一些相对简单的滤波器,也许这个优点也就是它的缺点。总之,使用FDATOOL 工具包设计和分析滤波器,是非常方便易行的,而且交互性良好,不需要极其复杂的程序编制就可以实现,对初学者来说还是有很大的帮助的。
第六章 总结
     本文从研究目的入手,浅谈了一些滤波器的背景知识,描述了数字滤波器的原理、分类、结构和设计要求;详述了脉冲响应不变法和双线性变换法的基本原理和优缺点,并且完成了Matlab的仿真。最后,还对滤波器界面设计工具FDATOOL 做了简单的介绍。
     通过对脉冲响应不变法和双线性变换法的仿真比较,我对这两种方法有了更进一步的认识。在理论上,通过对两者的细述,我有了更大的区分度:脉冲响应不变法只是选取了模拟滤波器 域中因果稳定的部分区域( ),然后将其离散化映射到 域的单位圆内,这样虽保证了线性,但在离散化的过程中受到采样频率的制约,容易产生频率响应的混叠现象;双线性法实际上就是为了解决频率响应的混叠现象才被创造出来的,它将整个 域中因果稳定的域非线性压缩到 中消除了频率响应的混叠现象但失去了线性;在程序的设计上,两者遵循的基本思路是相同的,但有细节上的差异:由于两种方法适用的滤波器不是同一种类型的,因此在程序设计中调用的函数会有差别,脉冲响应不变法中调用lp2lp函数(模拟低通到模拟低通),双线性法中调用lp2bp函数(模拟低通到模拟带通)。在这个过程中,我认为最大的收获就是通过改变采用频率的大小从程序上验证了脉冲响应不变法容易产生频率响应的混叠现象,而双线性变换法则可以避免频率响应的混叠现象。
    通过毕业论文的撰写,我对大学所学的知识有了更进一步的认识,同时在论文撰写过程中所需要的毅力,对知识的渴求,对正确性的追求,以及该过程所要求的严谨的态度,无论是在今后的工作还是学习中对我们都能起到巨大的促进作用。

          


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:数学实验在数学教学中的地位与作用

  • 下一篇文章:鞋秀电子商务网站的设计与实现
  • 返回上一页】【打 印】【关闭窗口
    中查找“基于MATLAB的IIR滤波器设计”更多相关内容 5VAR论文频道
    中查找“基于MATLAB的IIR滤波器设计”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››Delphi 5 数据库应用中ODBC数据源的...
  • ››用Visual Basic 6.0实现自动化测试...
  • ››用JAVA制作ICQ
  • ››在IIS 4.0上配置虚拟主机实现虚拟I...
  • ››利用VB开发CAI课件
  • ››基于GP算法的知识发现系统
  • ››基于Client/Server 的课件系统的设...
  • ››WWW对大量数据查询的一种实现
  • ››基于PHP的Web数据库访问
  • ››Developer/2000中的Forms参数及应用...
  • ››基于MATLAB的IIR滤波器设计
  • ››基于MATLAB信号处理工具箱的数字滤...
  • ››基于MapX的GIS动态操作与实现
  • ››基于MapX的多字段专题饼图的设计
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .