首页 > 范文大全 > 正文

基于Matlab的IIR数字滤波器设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Matlab的IIR数字滤波器设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】数字滤波器是数字信号处理技术的基础,用来对信号进行过滤、检测、与参数估计等处理,在通信、图像、自动控制、军事、医疗和家用电器等众多领域得到了广泛的应用。本文介绍IIR数字滤波器的相关概念,并利用MATLAB中的FDA TOOL工具箱和Simulink工具进行IIR数字滤波器的设计,建模和仿真。

【关键词】IIR数字滤波器;Matlab;FDA TOOL

随着信息时代的到来,数字信号处理已经成为当今一门极其重要的学科和技术,并且在通信、语音、图像、自动控制等众多领域得到了广泛的应用。数字滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一。现代数字滤波器可以用软件或硬件两种方式来实现。软件方式实现的优点是可以通过滤波器参数的改变去调整滤波器的性能。

MATLAB是一种面向科学和工程计算的语言,它集数值分析、矩阵运算、信号处理和图形显示于一体,具有编程效率高、调试手段丰富、扩充能力强等特点。MATLAB的信号处理工具箱具有强大的函数功能,它不仅可以用来设计数字滤波器,还可以使设计达到最忧化,是数字滤波器设计的强有力工具。

1.IIR数字滤波器

IIR数字滤波器是一种离散时间系统,其系统函数为:

假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数ak和bk,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。

IIR数字滤波器的设计一般有两种方法:

(1)借助模拟滤波器的设计方法进行。其设计步骤是,先设计模拟滤波器,再按照某种方法转换成数字滤波器。这种方法比较容易一些,因为模拟滤波器的设计方法已经非常成熟,不仅有完整的设计公式,还有完善的图表供查阅;

(2)直接在频率或者时域内进行,由于需要解联立方程,设计时需要计算机做辅助设计。其设计步骤是:先设计过渡模拟滤波器得到系统函数,然后将按某种方法转换成数字滤波器的系统函数。

2.IIR滤波器的MATLAB设计

经典的IIR滤波器的设计技术包括以下步骤:

(1)寻找一个截止频率为1的模拟低通滤波器并将这个滤波器的原型转换为所需要的宽带结构。

(2)将这个模拟滤波器变换为数字滤波器。

(3)将这个滤波器离散化。

MATLAB信号处理工具箱提供了表1中的设计函数来实现以上几步。

3.FDATOOL工具箱的使用

FDATOOL是Matlab软件中提供滤波器设计的专门工具箱,它可以设计几乎所有的常规滤波器,包括FIR和IIR滤波器。

FDATOOL界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。

Design Filter部分主要分为:

(1)Resoponse Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。

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

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

(4)Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项*1]Design Method选项决定。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。

(5)Magnitude Specifications选项,可以定义幅值衰减的情况。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6dB,所以不必定义。

4.设计仿真

4.1 FDATool仿真

设计一个IIR带通滤波器,实现l5Hz正弦波信号的滤波。FDATool中各参数设置如下:

响应类型:带通滤波器(Bandpass);

设计方法:IIR滤波器,使用巴特沃思法(Butterworth),选择通带(passhand)精确匹配;

滤波器阶数:选择最小阶数(Minimum order);

频率参数:

Hz单位,Fs=1000,Fpassl=14,Fpass2=16,Fstop1=10,Fstop2=20

幅度参数:

dB单位,Astop1=Astop2=60dB,Apass=ldB。

设置完成以后,点击Design Filter,运行结果如图1。

4.2 Simulink仿真

SIMULINK是一个进行动态系统建模、仿真和综合分析的集成软件包。它可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。

首先建立信号传输仿真模块,打开SIMUL-INK工具箱,并且建立一个Model,在这个空白Model中进行环节库及框图的建立,在SIMULINK菜单下找到Source,双击Source图标,将正弦信号源和常量信号源拉到Model中,然后分别找到DSP离散正弦信号源,乘法器和加法器以及示波器,然后把需要用来设计IIR数字滤波器的模块FDATOOL都拉到Model中,把环节都布好后,把各环节的端口按框图连接起来。

信号源为f=sin(2*pi*t*40)+sin(3*pi*t*50)+sin(2*pi*t*100),在DSP离散信号模块中设定参数分别为40HZ,75HZ,100HZ,在simulink环境中,将封装好的filterl.fda滤波器文件载入FDATOOL中,生成仿真框图和滤波效果如图2和图3所示。

图2的仿真框图表明,将40Hz,75Hz,100Hz三个不同频率的正弦信号相加,形成混合信号。而滤波的目标是得到40Hz频段信号,即尽可能地滤除其它两个干扰信号。图3给出滤波后信号与原始40Hz信号的波形对比图。图3显示:经滤波后,信号周期约为0.025s,即频率为40HZ,说明滤波效果很好。通过分析,说明SIMULINK中各种非常有用的工具箱不仅对于设计IIR数字滤波器非常有用,而且对于整个信号仿真处理具有相当可视化的效果,从仿真的效果来看,是达到了技术指标的要求。

参考文献

[1]聂光伟,雷玉勇,汤积仁,孙书蕾,袁卓林.基于matlabiir数字滤波器设计方法[J].科技创新导报,2009(19):18-19.

[2]施琴红,赵明镜.基于MATLAB/FDATOOL工具箱的IIR数字滤波器的设计及仿真[J].科技广场,2010,7:56-58.

[3]尹文花,何小刚.IIR数字滤波器切比雪夫设计法的Matlab实现[J].煤矿机电,2010,1:69-70.

[4]方刚,任小洪,贺映光,王天文.基于MATLAB和DSP的IIR滤波器的设计与仿真[J].自动化技术与应用,2010,29(7):42-44.

[5]王世一.数字信号处理(修订版)[M].北京理工大学出版社,2010.

[6]胡良剑,孙晓君.MATLAB数学实验[M].高等教育出版社,2009,2:4.

[7]程佩青.数字信号处理教程[M].北京清华大学出版社,2007.

作者简介:白康(1982—),女,河北保定人,硕士研究生,华北电力大学自动化系讲师,研究方向:智能调度与优化。