目录
第1章 引言 1
1.1 研究背景和意义 1
1.2研究现状 1
1.3 主要内容和工作安排 2
第2章 MATLAB简介 3
2.1 Matlab简介 3
2.2 Matlab的发展及现状 3
2.3 数字信号处理工具箱 4
2.4本章小结 5
第3章 IIR滤波器简介 6
3.1 数字滤波器设计 6
3.2 数字滤波器的分类 7
3.3 IIR滤波器简介 7
3.4巴特沃斯滤波器 8
3.5切比雪夫滤波器 8
3.6椭圆滤波器 9
3.7本章总结 9
第4章 传统的IIR滤波器设计方法 10
4.1 传统的设计方法 10
4.1.1 双线性变换法 11
4.1.2脉冲响应不变法 11
4.3本章小结 11
第5章 Matlab设计IIR滤波器 12
5.1 FDATool工具箱设计滤波器 12
5.2 程序设计法 14
5.2.1 比较各类IIR滤波器设计方法 16
5.3 滤波器设计仿真 19
5.3.1低通滤波器设计 19
5.3.2高通滤波器设计 22
5.3.3带通滤波器设计 23
5.3.4带阻滤波器设计 25
5.4 本章小结 26
第6章 总结与展望 28
6.1 总结 28
6.2 后续研究工作展望 28
参考文献 29
致谢 30
附录A 31
附录B 英文翻译 32
第1章 引言
数字滤波器在数字信号处理中一个非常重要的分支。数字滤波器在信号滤波、降噪等领域中有着很广泛的应用。目前信息技术发展如此迅捷,数字滤波器的研究显然非常重要。
1.1 研究背景和意义
数字滤波器在数字信号处理领域中起着非常重要的作用,在工程应用上有着极高的价值,长期都是电子通信行业的研究焦点和最关键的环节之一。从广义上去理解数字滤波器的定义,可将其看做一个流程组成的系统:遵循某种计算方法把输入的数字信号序列转化为另外的信号组合来实现对输入的滤波,通过输出信号来达到用户的需求,实现某种技术上的指标。数字滤波器设计,以每个单位的脉冲响应来进行区别可划为FIR和IIR两种数字滤波器。
过去的方法是先遵循某种技术指标来形成符合规定的模拟滤波器,使用脉冲响应不变、双线性变换的方法,经由庞杂的计算来将模拟滤波器转变为数字滤波器。这样的方法缺点在于所费时间太多,而在这些设计之后,还必须要对其频率响应开展校对核验,才能获取其幅频等特征。通常情况下我们期望获得的数字滤波器其阶数等性质并非是已经确定了的,要想实现最佳的设计结果,还得经过反复的调整与修正可以。为了解决这样的问题,可以借助Matlab其有力的计算、仿真以及可视化能力来辅助计算机的计算,能够高效地完成数字滤波器的设计工作,还能够随时更改参数、观察其带来的变化,大大地减少了计算量,简单实用。这种在短时间内完成复杂的滤波器设计,单纯的靠公式计算或者编写简单的程序,是无法实现的。
1.2研究现状
由于传统的设计方法需要进行大量复杂的运算,人们花费了数年的时间,以期探索出更为高效的滤波器设计方法。很多研究者针对设计中的优化方法进行了非常多的研究,得到了一些研究成果,尤其是最近一段时期,随着社会总体科技水平的提升,利用计算机本身的优化计算来开展数字滤波器研究有了长足的进步。比如Matlab这款软件,为各类的数字滤波器进行了计算方法上的改进。也有人提出了种群算法(例如,PSO)运用于设计数字滤波器,也是一种非常实用的优化算法。
这些优化算法提供了数字滤波器的设计的一种新的思路,受到了广大学者的关注和更进一步深入研究。
1.3 主要内容和工作安排
本文的工作安排如下:
第一章是引言,对数字滤波器国内外研究现状及意义进行了阐释和介绍。
第二章对Matlab软件的功能和现状进行了概述,并介绍了其中数字滤波器相关功能的使用。
第三章主要介绍IIR滤波器设计的理论基础,重点分析了四种数字滤波器的设计方法。
第四章主要介绍传统的滤波器设计方法,以及所要运用到的双线性变换法和脉冲相应不变法,。
第五章介绍滤波器的Matlab设计方法,包括数字信号处理工具箱的界面设计方法,以及基于库函数的程序设计方法,并比较各类滤波器设计的优缺点。
第六章对全文进行了总结,并通过本次研究一些不足的地方,提出对未来研究工作的展望。
第2章 MATLAB简介
Matlab作为目前最具权威的科学计算标准软件,在数字运算、数字信号处理领域都有广泛的应用。
2.1 Matlab简介
Matlab全称Matrix Laboratory,是一款用于数学运算的强大软件,由Mathworks公司开发。其强大的数值运算、符号运算和图形可视化功能是Matlab成为众多数学运算软件中最优秀的软件之一,被广泛运用与数学运算、设计仿真、数字信号处理等领域。
MATLAB的内核是用C语言编写的,其内核与其他诸多的辅助功能组合形成了Matlab的完整体系,对各类工具箱及内核的协调衔接能够实现Matlab的许多功能。Matlab语言拥有非常庞大的库函数,它面向对象进行编程从而得到非常的高的工作效率。
Matlab的基础构成单位是矩阵,它的指令和常见的数学、工程表达式十分接近,所以运用Matlab来处理计算能够比起C语言等方法更为简便快捷。在此基础上,Matlab还吸收了Maple等软件的长处,获得了C++、Fortran和java等语言的支持,将自身优化升级为了一个功能强大的数学运算工具。
Matlab的长处主要包含以下四点:
1,可以对数值、符号以及复杂数学的运算进行高效的简化计算。
2,拥有强大的图形处理能力,可以对图形进行可视化的设计与结果运算。
3,拥有对用户友好而简洁的UI设计,Matlab语言和常用的数学、工程语言也非常相似,便于用户理解上手。
4、为用户提供了大量方便实用的应用工具,例如本文用到的信号处理工具箱。
2.2 Matlab的发展及现状
上世纪70年代,在The University of New Mexico任教计算机科学系主任的Cleve Moloer,研究出了一个非常便于使用的程序,以此来方便学生们对Linpack、Eispack数据库的调用,这种界面程序极大程度地提高了学生的效率,便成了最初形态的MATLAB。
经过几年的发展,在1984年,约翰·里多、克里夫·莫勒尔和斯蒂夫·班格尔特携手创建了MathWorks公司,从此Matlab软件便开始在市场上迅速蔓延开来。那时是使用C语言来编写软件内核的,并且在本就很强力的数值运算功能中附加了可视化功能。这样的软件一经推出,便用它优质而开放的开发环境、高性能的运算功能,成为了数学运算软件界的冠军。并迅速淘汰掉了一些旧的数学运算领域的软件,它们都纷纷转向Matlab平台并以此重构。上世纪90年代,该软件成为了国际数学运算界公认、默认使用的计算软件。
如今在全球所有的学术界内,都已将Matlab软件看做为精确、高效、可靠的数值运算工具。在诸多的顶尖学术期刊,特别是信息科学类的顶级刊物中,都能够发现Matlab的身影。
而在研究学者开展科研时,都会将Matlab软件看做是他们进行有效计算、设计开发的优选工具。尤其是信号测量、通信分析等行业, MATLAB的运用都有显著的效果。
2.3 数字信号处理工具箱
在命令栏输入fdatool能够唤出FDAtool功能,其是Matlab针对滤波器的开发而设计的一种哥哥工具箱,通过它的各项功能能够简便而可视地获得各类滤波器。在Mtalab中打开FDAtool会出现如下的界面:
图2.2.1 FDATool设计界面
根据需要通过设置参数就可以实现具体的滤波器设计,以下是对应参数的具体解释:
FS:采样频率,数据采集设备的采集速率;
Fpass:通带带宽;
Fstop:截止频率;
Filter Order:滤波器阶数;
Apss:带通起伏;
Astop:阻带衰减;
Response Type:描述滤波器类型。
2.4本章小结
本章介绍了Matlab的基本功能、使用方法、发展历史,以及数字信号处理箱的简单使用方法。
第3章 IIR滤波器简介
数字滤波器是一种装置,它的输入为数字信号、输出也为数字信号,功能是经由某种算法能够改变输入信号中不同频率成分的占比,或者除去特定频率成分。伴随现今信息科学水平的飞速前进,数字滤波器也跟着成为重要的研究方向。
3.1 数字滤波器设计
数字滤波器遵循要求来运算信号从而实现滤波的功能。对其储存器设计不同的程序要求,就能够达到不同的滤波目的。对于数字滤波器而言,其功能的改变或新增通过内置程序的变更即可实现,无需对其元件进行处理,要处理低频信号等问题也无需更改元件的体积。使用数字滤波的技术能够突破以往模拟滤波器受元件约束的问题。
通常,数字滤波器能够被一个线性离散时不变的系统来表达,其表达式见图2.1.1:
图2.1.1 线性离散时不变系统
其时域输入输出关系是:
若y(n)、x(n)的傅里叶变换存在,则输入输出的频域关系是:
当输入信号通过滤波器系统后,其输出中不再含有的频率成分,仅使的信号成分通过,其作用是对输入信号起到滤波的作用。
当数字滤波器的输入和输出信号均为离散时间信号时,则这个滤波器的单位冲激响应也一定呈现离散的特性。假设用延时器来完成硬件的一个时,用软件来完成乘法器与加法器的功能时,这个硬件只需要采取有限精度的计算方法就可以完成。所以,数字滤波器相比模拟滤波器,其实现手段更为简单便捷,得到的滤波性能也更为优质。
一般而言,数字滤波器的设计需要按照以下4个环节来实现:
第一,根据任务的规则来规划滤波器的总体性能及其指标;
第二,使用离散线性时不变系统的相关函数来不断接近预期的指标,这个系统要用具因果稳定性。
第三,通过有限精度算法来完成系统函数的选择,包含合理的运算结构、科学的字长等。
第四,通过利用具备通用性的软件、特定的元件或者两两结合等技术方法,来完成工程。
3.2 数字滤波器的分类
依据通带的不同可以将数字滤波器区分为四类,分别为:低通、高通、带通、带阻,在具体的设计过程中,技术指标的明确基本上就意味着确定了滤波器的型号。
依据设计的方式不同可以将滤波器区分为以下几类,分别是巴特沃茨 (Butterworth)滤波器,切比雪夫 (Chebyshev)滤波器等。
依据单位脉冲响应的不同能够区分滤波器,分为无线冲击响应IIR(Infinite Impulse Response)滤波器和有限冲击响应FIR(Finite Impulse Response)滤波器这两大类。上述两种类型的滤波器具体的不同之处为:IIR型的幅频具有较精准特性,却并非线性相位;FIR型为线性相位,幅频的精度稍弱。此外,有限的单位响应可以方便编程,有助于信号处理。
依据信号处理方式的不同可以将滤波器分为两种,即经典滤波器与现代滤波器。
3.3 IIR滤波器简介
对于该类型的滤波器而言,其系统函数经过处理后能够用封闭函数表示,另外,该滤波器属于一种递归结构。该类型的滤波器的幅频具有精准度很高的特点,然而该滤波器并非相性相位,通常在那些相位信息敏感度较低的情况下处理信号。
此外,IIR型滤波器具有许多特性,在脉冲响应方面的特点为无限持续时间脉冲响应,并且几乎全部的模拟滤波器在脉冲方面的特定与其一致,于是两者之间可以进行匹配。因此,在进行IIR滤波器设计工作的时候可以先进行模拟滤波器的设计工作,接下来进行相关的变换进而得到数字IIR滤波器,转变主要采用两种方式,即脉冲响应不变法以及双线性变化法。
3.4巴特沃斯滤波器
这种类型的滤波器的优势相当多,其中之一便是频率响应曲线图形相当平坦,变化很小,并且阻频带慢慢减少直到为零。在震幅与对角频率的相关曲线上,呈现出角频率提高振幅反而降低的现象,并且朝着负无穷发展。
对于巴特沃斯滤波器而言,一阶类型的衰减率每倍频为6分贝,二阶类型的衰减率每倍频为12分贝,三阶类型的衰减率每倍频为18分贝,以此类推。可以看出该滤波器的振幅是关于对角频率的单调减函数,而且其振幅关于对角频率的曲线图形变化趋势不会由于阶数的不同而出现变化,这是在众多滤波器中唯一特有的类型。随着滤波器的阶数的增加,振幅的减少会越来越迅速。
该滤波器的函数详见下式:
3.5切比雪夫滤波器
切比雪夫滤波器,又名“车比雪夫滤波器”,是在通带或阻带上频率响应幅度等波纹波动的滤波器。相比较于巴特沃斯滤波器该滤波器在过渡带的减少更迅速,然而在幅频方面没有前者那么平顺。在频率响应方面该滤波器以及理想滤波器的精准度是最高的,然而通频带中会出现一定的幅度变化。
依据频率响应曲线的特点,可以将比雪夫滤波器分为两种:
1、I型切比雪夫滤波器
在通带(或称“通频带”)上频率响应幅度等波纹波动的滤波器称为“I型切比雪夫滤波器”。在第一类切比雪夫滤波器中,可以将幅度和频率的关系如下公式所示,其中n为阶数。
2、II型切比雪夫滤波器
在阻带(或称“阻频带”)上频率响应幅度等波纹波动的滤波器称为“II型切比雪夫滤波器”。
II型切比雪夫滤波器的转移函数为:
3.6椭圆滤波器
椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter):这是在通带和阻带等波纹的一种滤波器。椭圆滤波器相比较与其它的滤波器而言,在阶数一样的情况下,其通带以及阻带的变化都是最小的。并且,其通带和阻带的变化基本一致,这个和巴特沃斯滤波器与切比雪夫滤波器是有一定差别的。相比较与上文中两类滤波器而言,在性能一致的情况下,该滤波器的阶数是最小的。
该滤波器的相关函数如下:
3.7本章总结
本章介绍了IIR滤波器的设计原理,以及数字滤波器的几种分类,列举了其中的巴特沃斯滤波器,切比雪夫滤波器,椭圆滤波器。
第4章 传统的IIR滤波器设计方法
传统的设计方法一般是先得到符合要求的模拟滤波器,然和通过响应的转换方法进而得到所需的数字滤波器,转换主要采用两种方式,即脉冲响应不变法以及双线性变化法。
4.1 传统的设计方法
通常而言IIR数字滤波器在设计的时候可以采用两种方式,即间接设计以及直接设计。对于间接设计法而言通常需要借用模拟滤波器的设计方法开展设计工作,依据相关的设计指标进行对应的模拟滤波器设计工作,接下来通过一定的方式变换模拟滤波器进而得到数字滤波器。
鉴于模拟滤波器的设计到目前为止先当的成熟可靠,而且还有许多优秀的滤波器提供选择空间,相关的公式较为完整,并且在实际中由不少场合需要进行模拟滤波器数字方正,因此间接设计法的使用范围相当多。此外,直接设计法需要解方程组,因此需要使用计算机。在当今,计算机得到普及,不少函数以及程序已经存入库中,在设计的过程中直接调用,比如MATLAB仿真平台,在该平台中可以进行IIR滤波器的设计工作。
对于间接设计法而言,它是一种相当电信的设计思路,首先在明确技术要求的基础上,进行模拟滤波器的设计工作,接下来通过相关的转换得到数字滤波器,转换主要采用两种方式,即脉冲响应不变法以及双线性变化法。该方法的优点为可以在一些现成的经典的模拟滤波器的基础上提高设计效率,降低时间,迅速完成设计工作。
1、按照一定的变换将给出的数字滤波器的指标转换为模拟带通滤波器的技术指标。
2、根据转换后的技术指标设计模拟低通滤波器G1(s), G1(s) 是低通滤波器的传递函数。
3、将模拟低通滤波器 G1(s) 转换成模拟带通滤波器 G2(s)
4、再按照一定的变换规则将 G2(s) 转换成数字带通滤波器的传递函数。
4.1.1 双线性变换法
双线性变换法用正切变换实现非线性频率压缩,将S平面变换到S1平面,再将S1平面映射到 Z平面上。其中正切变换式为:
S1平面映射到 Z平面的变换式为:
双线性变换法的优点:该方法能够避免由于频谱混迭而出现失真的情况,因为S平面与Z平面是单值映射关系,进而可以防止频谱“混迭”情况的出现。该方法的不足之处为:因为舍弃了频率变换线性的特点,导致模拟与数字域呈现一种非线性的关系,进而使得瞬时响应的指标下降。
4.1.2脉冲响应不变法
该方法又名冲激响应不变法,主要通过模拟滤波器的相关理论进行数字滤波器的设计工作,即使得后者可以模拟前者的特点,并且上述的模拟是基于不同的角度进行的。其中脉冲响应不变法是一种基于脉冲响应的方法,该方法可以使数字滤波器的单位脉冲响应序列h(n) 模仿模拟滤波器的冲击响应ha(t), 使h(n)正好等于ha(t)的采样值,即h(n)=ha(nT)T为采样周期。
4.3本章小结
本章主要介绍了使用传统的方法设计IIR数字滤波器,这种方法往往需要大量的寻算,过程及其复杂。