1、论文名称:基于 MATLAB 信号处理工具箱的数字滤波器设计与仿真作者:丁磊 潘贞存 丛伟摘要: 传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。本文介绍了一种利用 MATLAB 信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用 MATLAB 语言进行程序设计和利用信号处理工具箱的 FDATool 工具进行界面设计的详细步骤。利用 MATLAB 设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。本文还介绍了如何利用 MAT
2、LAB 环境下的仿真软件 Simulink 对所设计的滤波器进行模拟仿真。关键字: 数字滤波器 MATLAB FIR IIR引言:在电力系统微机保护和二次控制中,很多信号的处理与分析都是基于对正弦基波和某些整次谐波的分析,而系统电压电流信号(尤其是故障瞬变过程)中混有各种复杂成分,所以滤波器一直是电力系统二次装置的关键部件【1】。目前微机保护和二次信号处理软件主要采用数字滤波器。传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。利用MATLAB 信号处理工具箱(Signal Processing Toolbox)可以快速有效的实现数字滤波
3、器的设计与仿真。1 数字滤波器及传统设计方法数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR )滤波器。IIR 数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。所以 IIR 滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。FIR 数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有
4、窗函数法、频率采样法和等波纹最佳逼近法等。在对滤波器实际设计时,整个过程的运算量是很大的。例如利用窗函数法【2】设计 M 阶 FIR 低通滤波器时,首先要根据(1)式计算出理想低通滤波器的单位冲激响应序列 ,然后根据(2)式计算出 M 个滤波器系数 。当滤波器阶数比较高时,计算量比较大,设计过程中改变参数或滤波器类型时都要重新计算。(1)(2)设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特性,运算量也是很大的。我们平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断的调整,以达到设计的最优化。在这种情况下,滤波器的设计就要进行
5、大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计。利用 MATLAB 强大的计算功能进行计算机辅助设计,可以快速有效的设计数字滤波器,大大的简化了计算量,直观简便。2 数字滤波器的 MATLAB 设计2.1 FDATool 界面设计2.1.1 FDATool 的介绍FDATool(Filter Design 定义滤波器阶数 96 阶w1=2*pi*fc1/fs;w2=2*pi*fc2/fs; %参数转换,将模拟滤波器的技术指标转换为数字滤波器的技术指标window=hamming(c+1); %使用 hamming 窗函数h=fir1(c,w1/pi w2/pi,wind
6、ow); 使用标准响应的加窗设计函数 fir1freqz(h,1,512); 数字滤波器频率响应在 MATLAB 环境下运行该程序即可得到滤波器幅频相频响应曲线和滤波器系数 h。篇幅所限,这里不再将源程序详细列出。3 Simulink 仿真本文通过调用 Simulink 中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如构造以基波为主的原始信号 ,通过 Simulink 环境下的 Digital Filter Design(数字滤波器设计)模块导入 2.1.2 中 FDATool 所设计的滤波器文件 1.fda。仿真图和滤波效果
7、图如图 2 所示。图 2 Simulink 仿真图及滤波效果图Fig.2 Simulated connections and waveform可以看到经过离散采样、数字滤波后分离出了 83.3Hz 的频率分量( scope1)。之所以选取上面的叠加信号 作为原始信号,是由于在实际工作中是要对已经经过差分滤波的信号进一步做带通滤波,信号的各分量基本同 一致,可以反映实际的情况。本例设计的滤波器已在实际工作中应用,取得了不错的效果。4 结论利用 MATLAB 的强大运算功能,基于 MATLAB 信号处理工具箱(Signal Processing Toolbox)的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。利用 MATLAB 设计数字滤波器在电力系统二次信号处理软件和微机保护中,有着广泛的应用前景。