1 数字滤波器的概述 ..................................................................................................................................... 2 1.1 FIR数字滤波器设计原理 .......................................................................................................... 2 1.2 FIR数字滤波器的特性 .............................................................................................................. 2 1.3 窗函数的介绍 ............................................................................................................................ 4 2 FIR数字滤波器设计及实现 ....................................................................................................................... 4
2.1 低通滤波器的设计 .................................................................................................................... 4
2.2 高通滤波器的设计 .................................................................................................................... 6 2.3 带通滤波器的设计 .................................................................................................................... 7 2.4 带阻滤波器的设计 .................................................................................................................... 8 3基于MATLAB GUI的FIR滤波器的仿真 ........................................................................................... 10
3.1 FIR数字滤波器设计所实现的任务 ........................................................................................ 10 3.2 FIR数字滤波器界面设计 ........................................................................................................ 10 3.3 FIR数字滤波器函数的编写 .................................................................................................... 11
3.3.1 菜单FilterType的回调函数 ......................................................................................... 11 3.3.2 显示类型DispType的函数 .......................................................................................... 11 3.3.3 阶数N和最小阶数N按钮的函数 .............................................................................. 12 3.3.4 文本编辑框的回调函数................................................................................................ 12 3.3.5 滤波器波形按钮的回调函数 ........................................................................................ 13 3.3.6 文本框Rp和Rs的函 数 ............................................................................................. 13 3.3.7 产生信号按钮的回调函数 ............................................................................................ 13 3.3.8 滤波后的信号按钮的回调函数 .................................................................................... 13 3.3.9 按钮Quit的回调函数 .................................................................................................. 14 3.4总程序的编写 ........................................................................................................................... 14 4 实验结果与显示 ...................................................................................................................................... 14 5 结束语 ....................................................................................................................................................... 14 6 感谢 ........................................................................................................................................................... 14 7 参考文献 ................................................................................................................................................... 14 附录 ................................................................................................................................................................ 15
基于MATLAB的FIR数字滤波器的设计与仿真
李宏华
湛江师范学院信息科学与技术学院,湛江 524048
摘 要:本文从FIR数字滤波器的设计原理和特性入手,实现了用MATLAB设计FIR数字滤波器的功能,重点阐述了通过MATLAB GUI实现了FIR数字滤波器的仿真。详细介绍了MATLAB GUI界面的构建与回调函数的程序编写与调试。
关键词:MATLAB;GUI;FIR滤波器
The Design and Simulation of FIR Digital Filter base on ATLAB
LI Honghua
Information Science & Technology School, Zhanjiang Normal University, zhanjiang, 524048 China Abstract:This paper starts with the design principles and characteristics of the FIR digital filter, Achieve the task of using MATLAB software to design the FIR digital filter, in particular introduction to complete the simulation of the FIR digital filter base on MATLAB GUI software. Comprehensive introduce to the building of GUI interface and the program compiled with debugging of the callback function.
Key word:MATLAB; GUI; FIR Filter
1 数字滤波器的概述
1.1 FIR数字滤波器设计原理
[1]中介绍了数字滤波器冲激响应的时域特征,可将数字滤波器分为2种,即无限长冲激响应滤波器( IIR)和有限长冲激响应滤波器(FIR) 。FIR具有突出的优点:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器。但与IIR相比,在满足同样的阻带衰减的情况下需要较高的阶数。FIR的冲激响应h(k)是有限长的M 阶FIR系统函数可表示为 滤波器的输出:y(k)?h(k)?x(k)??h(i)x(k?i)i?0
它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,[2]中给出的设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
在这里我们利用窗函数法设计FIR滤波器。给定所要求的滤波器的频率响应Hd ( ejw) , 要求设计一个FIR 滤波器的频率响应H( ejw) 来逼近Hd( ejw) .设计是在时域进行的, 首先由傅立叶变换导出无限长的序列hd( n) , 然后用窗函数截断hd ( n) ,即: h( n) = hd( n) w( n)。 1.2 FIR数字滤波器的特性
FIR滤波器有以下特点:
(1) 系统的单位冲激响应h(n)在有限个n值处不为零;
(2) 系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统);
(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
因为FIR数字滤波器的单位冲激响应是有限长的,所以它永远都是稳定的。[3]说明了达到
M具有线性相位这一要求,仅需要对FIR数字滤波器的冲激响应h(n)施加一定的约束。令z?ejw,
就可由H(z)得到FIR数字滤波器的频率响应:
H(e)?H(z)|z?ej???h(n)e?j?n?H(?)ej?(?) (1-2-1)
j?n?0N?1式中H(?)是H(ej?)的幅频特性,?(?)是H(ej?)的相频特性
Im(H(ej?))?(?)?arctan() (1-2-2) j?RE(H(e)) [4]中讨论了由于h(n)的长度N取奇数或偶数时对H(w)的特性有影响, FIR滤波器的幅频
特性可以分为以下4种情况:
(1)第Ⅰ种类型:h(n)为偶对称,且N为奇数 根据式:H(?)??h(n)cos[(n?0(N?1)/2N?1N?1?n)?]可以得到滤波器的幅频函数为: 2H(?)??n?0a(n)cos(?n) (1-2-3)
其中a(0)?h(N?1NN?1。幅度函数H(?)对??0,?,2?呈偶对称。 ),a(n)?2h(?n),n?1,2,…,222(2)第Ⅱ种类型:h(n)为偶对称,且N为偶数 根据式:H(?)??h(n)cos[(n?0N/2N?1N?1?n)?]可得滤波器的幅频函数为: 21??H(?)??b(n)cos??(n?)? (1-2-4)
2??n?1其中:b(n)?2h(NN?n),n?1,2,…,。幅度函数H(?)对于??0或2?呈偶对称。如果数字滤波22器在???处不为零,如本文设计的高通滤波器和带阻滤波器则不能用这一类型。
(3)第Ⅲ种类型:h(n)为奇对称,且N为奇数
?N?1??n)?可得滤波器的幅频函数为: 根据式:H(?)??h(n)sin??(2??n?0(N?1)/2N?1H(?)??n?1c(n)sin(?n) (1-2-5)
N-1?N?其中c(n)?2h??n?,n?1,2,…,。数字滤波器在?=0,?,2?处不为零如低通滤波器、
22??