日期:2023-01-24 阅读量:0次 所属栏目:软件技术
1 引言
在数字信号处理中,数字滤波占有极其重要的地位,目前对数字滤波器的设计有多种方法,其中著名的MA TLAB软件包,功能强大、使用方便。相比传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。利用matlab信号处理工具箱(signal processing toolbox)可以快速有效的设计由软件组成的常规数字滤波器的设计方法,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。
2 FIR滤波器简介
FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
根据数字滤波器冲激响应的时域特征,可将数字滤波器分为2种,即无限长冲激响应滤波器(IR DF)和有限长冲激响应滤波器((FR DF)。 FR DF具有突出的优点:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器。因此FR DF在数字信号处理中得到广泛的应用。但与IR D F相比,在满足同样的阻带衰减的情况下需要较高的阶数。滤波器阶数越高将占用更多的D SP运算时间。因此,对FR DF的设计日标是在满足指标要求的情况下尽量减少滤波器的阶数。数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。 FR DF的冲激响应h (k)是有限长的M阶FR DF系统函数可表示为
(1)
滤波器的输出为
(2)
它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
3 FIR滤波器设计步骤
数字滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工具箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:
3.1 确定指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中具有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:
1) 只包含实数算法,不涉及复数运算;
2) 不存在延迟失真,只有固定数量的延迟;
3) 长度为N的滤波器〔阶数为N-1〕,计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。
3.2 逼近
确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。
3.3 性能分析和仿真
上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
4 利用MATLAB设计FIR滤波器
4.1 hamming窗函数设计
本文以带通滤波器为例。在小电流接地系统中注入83.3hz 的正弦信号,对其进行跟踪分析,要求设计一带通数字滤波器,滤除工频及整次谐波,以便在非常复杂的信号中分离出该注入信号。参数要求:96阶fir数字滤波器,采样频率1000hz ,采用hamming 窗函数设计。
首先在filter type中选择bandpass 带通滤波器);在design method 选项中选择firwindow(fir滤波器窗函数法),接着在windows pecifications 选项中选取hamming ;指定filter order 项中的specify order=95;由于采用窗函数法设计,只要给出通带下限截止频率fc1和通带上限截止频率fc2,选取fc1=70hz,fc2=84hz。设置完以后点击design filter 即可得到所设计的fir滤波器。通过菜单选项analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为文件。
在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的fir滤波器和iir滤波器也都可以使用fdatool来设计。
4.2 程序设计法
在matlab 中,对各种滤波器的设计都有相应的计算振幅响应的函数,可以用来做滤波器的程序设计,上例的带通滤波器可以用程序设计如下:
c=95; %定义滤波器阶数96阶
w1=2*pi*fc1/fs;
w2=2*pi*fc2/fs; %参数转换,将模拟滤波器的技术指标转换为数字滤波器的技术指标
window=hamming(c+1); %使用hamming窗函数
h=fir1(c,[w1/piw2/pi],window); %使用标准响应的加窗设计函数
fir1
freqz(h,1,512); %数字滤波器频率响应
在matlab环境下运行该程序即可得到滤波器幅频相频响应曲线和滤波器系数h。篇幅所限,这里不再将源程序详细列出。
4.3 simulink仿真
本文通过调用simulink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真果。结通过simulink环境下的digital filterdesign(数字滤波器设计)模块导入2.1.2中fdatool所设计的滤波器文件。从结果可以看出信号的各分量基本同一致,可以反映实际的情况。
5 总结
利用matlab的强大运算功能,基于matlab信号处理工具箱(signal processing toolbox)的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。利用matlab设计数字滤波器在信号处理软件和微机保护中,有着广泛的应用前景。
参考文献:
[1] 刘松强.数字信号处理系统及其应用[M].北京:清华大学出版社,1997.
[2] 陈桂明,张明照,戚红雨.应用M A TLAB语言处理数字信号与数字图像[M].北京:科学出版社,2001.
[3] 张雄伟,曹铁勇.D SP芯片的原理与开发应用[M].北京:电子工业出版社,2001.
[4] V inay K,John G P.数字信号处理及其M A TLAB实现[M].北京:电子工业出版社,1998.
[5] 陈德树. 计算机继电保护原理与技术[M].北京:水利电力出版社,1992.
[6] 蒋志凯. 数字滤波与卡尔曼滤波[M].北京:中国科学技术出版社,1993
[7] 楼顺天、李博菡. 基于matlab的系统分析与设计-信号处理[M].西安:西安电子科技大学出版社,1998.
[8] 胡广书. 数字信号处理:理论、算法与实现[M].北京:清华大学出版社,1997.
[9] 蒙以正. matlab5.x应用与技巧[M].北京:科学出版社,1999.
[10] 邹锟,袁俊泉,龚享依.Matlab6.x信号处理[M].北京:清华大学出版社,2002.10.
[11] 李海涛,邓樱.MATLAB程序设计教程[M].北京:高等教育出版社,2002.8.
[12] 卢特维.信号处理滤波器设计-基于MATLAB和Mathematica的设计方法(英文版)[M].北京:电子工业出版社,2002.9.
[13] 李林.利用DA算法实现大规模FIR滤波器[J].试验科学与技术.2002,4(2):7-9
[14] 黄大卫.数字滤波器[M].中国铁道出版社,1991.11.
本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229983.html