第21卷第5期乐山师范学院学报Vol.21,No.5May.2006
2006年5月JournalofLeshanTeachersCollege
FIR数字滤波器的设计及应用
樊玲
何光普
(乐山师范学院物电系,四川乐山614004)
摘要:本文介绍了基于MATLAB语言采用窗函数法设计的FIR数字滤波器,以及FIR滤波器的应用:信号除噪和
特定信号频率分量的提取。
关键词:FIR;窗函数;数字滤波器;高通滤波器;信号除噪
中图分类号:TIV713.7
文献标识码:A
文章编号:1009-8666(2006)05-0042-02
滤波器可广义地理解为一个信号选择系统,它让某些信号成分通过,阻止或衰减另一些成分[1]。其中数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的。数字滤波器可以用软件或专用数字信号处理芯片来实现。软件实现具有高灵活性的优点,通过改变滤波器参数即可改变滤波器的性能[2]。
目前数字滤波器的设计有许多现成的高级语言设计程序,但它们的设计效率较低,不具有可视图形,不便于修改数值分参数等缺点,而MATLAB语言是一套集矩阵运算、析、信号处理和图形显示于一体的高性能数值计算和可视化软件,它拥有针对不同领域的强大工具箱函数,其中的信号处理工具箱可以方便地设计FIR滤波器。本文将介绍使用MATLAB语言设计FIR数字滤波器及其应用示例。
3、FIR滤波器由于单位冲激响应是有限长的,因而可
(FFT)算法来实现过滤信号,从而可以用快速傅立叶变换大大提高运算效率。
FIR滤波器的缺点:对于相同的设计指标,FIR滤波器
所要求的阶数比IIR滤波器要高,信号的延迟偏大[4]。
2FIR滤波器的设计
数字滤波器是一个线性移不变离散时间系统,利用有限精度算法来实现。数字滤波器的设计步骤为:首先根据(z),最后利实际需要确定其性能指标,再求得系统函数H用有限精度算法实现。
本文利用MATLAB的信号处理工具箱函数进行滤波器的设计和仿真。下面将以几种FIR数字滤波器设计为例,介绍在MATLAB中滤波器的设计。
1FIR滤波器
无限长单位冲激响应(FIR)滤波器的单位冲激响应h(n)是有限长的(0≤n≤N-1),其系统函数为[3]:
(z)=\"h(n)z-nH
n=0N-1
2.1数字低通滤波器的窗函数法设计
根据下列技术指标,设计一个数字FIR低通滤波器。
!p=0.2\",Ap=0.25dB,!r=0.4\",Ar=50dB
根据窗函数最小阻带衰减的特性,由于海明窗可提供大于50dB的衰减,因此选择海明窗。设计结果如图1所示。
滤波器的长度为35阶,实际通带波动0.0301dB,最小阻带衰减55dB,满足设计要求。
FIR滤波器具有以下优点:
1、具有严格的线性相位,同时又具有任意的幅度特
性,因此满足要求信道具有线性相位特性的图像处理以及数据传输。
2.2数字带通滤波器的窗函数法设计
根据下列技术指标,设计一个数字FIR高通滤波器。低端阻带边缘低端通带边缘
2、FIR滤波器的单位抽样响应是有限长的,因而滤波
器一定是稳定的。
!r1=0.2\",Ar1=60dB!p1=0.4\",Ap1=1dB
收稿日期:2005-11-10
(1977-),女,四川眉山人,乐山师范学院物理与电子信息系讲师,硕士,主要从事信号处理研究。作者简介:樊玲
42
图1低通滤波器的设计
高端通带边缘!p2=0.6\",Ap2=1dB
高端阻带边缘
!r2=0.8\",Ar2=60dB
根据窗函数最小阻带衰减的特性,选择布莱克曼窗可以达到75dB的最小阻带衰减,它提供的过渡带宽为11π/
N。设计结果如图2所示。
图2带通滤波器的设计
滤波器的长度为56,实际通带波动0.0027dB,最小阻带衰减73dB,满足设计要求。
3FIR滤波器的应用
采用FIR滤波器可以有效地对数字信号进行各种期望的处理。例如,一个采集的实际信号,希望从中提取不同频率的信号分量;或者采集的实际信号含有噪声分量,需要滤除噪声等。上述对数字信号的处理可以通过使用不同的滤波器来实现。
3.1特定频率分量提取的应用
首先介绍对采样信号不同频率分量的提取。对于实际采集到的信号,一般先从该信号中截取需要处理的部分,在该部分信号中,分别采用低通滤波器提取相对频率在0~
25间的信号分量;使用带通滤波器提取相对频率在50~100间的信号分量;使用高通滤波器提取相对频率高于100的频率分量。
结果如图3,可见通过不同的滤波器可以提取确定频率范围内的信号分量。
3.2信号消噪应用
图3特定信号频率的提取
在实际工程应用中,有用信号通常表现为低频信号或是一些比较平稳的信号,而噪声信号则通常表现为高频信号,因此可使用低通滤波器进行滤除。
结果如图4,可见用滤波器进行除噪的方法可以对信号的噪声按要求进行抑制。
图4信号的消噪
5结论
利用MATLAB语言设计数字滤波器简单方便,是数字滤波器软件实现的有利工具。针对实现不同功能的数字信号处理系统,可以在设计和开发阶段借助MATLAB语言设计相应的滤波器,通过计算机进行系统仿真验证,得到合适的滤波器。
参考文献:
[1]程佩青.数字信号处理教程[M].北京:清华大学出版社,2001.[2]OppenheimAV,SchaferRW.DigitalsignalProcessing.Pren-ticeHall,Inc.,1975,董士嘉译.数字信号处理[M].北京:科学出
版社,1981.
[3]胡书广.数字信号处理--理论、算法与实现[M].北京:清华大学出版社,1997.
[4]McClellanJH,ParksTW.AUnifiedApproachtotheDesignofOptimumFIRLinear-PhaseDigitalFilters.IEEETrans.CircuitTheory,1973,CT-20(6):697-701.
43