MATLAB-GUI设计FIR滤波器(窗函数) 联系客服

发布时间 : 星期四 文章MATLAB-GUI设计FIR滤波器(窗函数)更新完毕开始阅读7239d5c711661ed9ad51f01dc281e53a59025159

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??高通滤波器、带阻滤波器,则不适合用这类滤波器来设计。

(4)第Ⅳ种类型:h(n)为奇对称,且N为偶数

?N?1??n)?可得滤波器的幅频函数可表示为: 根据式:H(?)??h(n)sin??(2??n?01??H(?)??d(n)sin??(n?)? (1-2-6)

2??n?1N?N?其中:d(n)?2h??n?,n?1,2,…,。幅度函数H(?)对于???呈偶对称。如果数字滤波

2?2?N/2N?1器在??0,2?处不为零如低通滤波器、带阻滤波器,则不适合用这类数字滤波器来设计。 1.3 窗函数的介绍

设计滤波器尽量要求窗函数满足以下两项要求:

(1)窗谱主瓣尽可能地窄,以获取较陡的过渡带。

(2)尽量减少窗谱的最大旁瓣的相对幅度。也就是能量尽量集中于主瓣,这样使尖峰和波纹减小,就可增大阻带的衰减。

但是这两项要求是不能同时满足的。当选用主瓣宽度较窄时,虽然得到陡峭的过渡带,但通带和阻带的波动明显增加;当选用最小的旁瓣幅度时,虽能得到平坦的幅度响应和较小的阻带波纹,但过渡带加宽,即主瓣会加宽。因此,实际所选用的窗函数往往是它们的折中。设计FIR滤波器常用的窗函数有:矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯塞窗等。

以下是几种窗函数的性能比较: 窗函数 旁瓣峰值衰等效凯塞尔主瓣过渡带精确过渡带最小阻带衰减(dB) 矩形窗 三角窗 汉宁窗 海明窗 -13 -25 -31 -41 窗(?) 0 1.33 3.86 4.86 7.04 7.865 宽(??) 4?/N 8?/N 8?/N 8?/N 12?/N 10?/N 宽(??) 1.8?/N 6.1?/N 6.2?/N 6.6?/N 11?/N 10?/N 减(Db) -21 -25 -44 -53 -74 -80 布莱克曼窗 -57 凯赛尔窗 -57 想详细了解以上几个窗函数请查阅参考文献[4]或者用命令wvtool(windows(N))查看。 2 FIR数字滤波器设计及实现 2.1 低通滤波器的设计

低通滤波器允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声。