基于MATLAB信号处理工具箱的数字滤波器设计与仿真
本例中,首先在Filter Type中选择Bandpass(带通滤波器);在Design Method选项中选择FIR Window(FIR滤波器窗函数法),接着在Window Specifications选项中选取Hamming;指定Filter Order项中的Specify Order=95;由于采用窗函数法设计,只要给出通带下限截止频率Fc1和通带上限截止频率Fc2,选取Fc1=70Hz,Fc2=84Hz。设置完以后点击Design Filter即可得到所设计的FIR滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为1.fda文件。
在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,
以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
图1 滤波器幅频和相频响应(特性区)
Fig.1 Magnitude Response and Phase Response of the filter
2.2 程序设计法
在MATLAB中,对各种滤波器的设计都有相应的计算振幅响应的函数【3】,可以用来做滤波器的程序设计。
上例的带通滤波器可以用程序设计:
c=95; %定义滤波器阶数96阶
w1=2*pi*fc1/fs;
w2=2*pi*fc2/fs; %参数转换,将模拟滤波器的技术指标转换为数字滤波器的技术指标
window=hamming(c+1); %使用hamming窗函数
h=fir1(c,[w1/pi w2/pi],window); %使用标准响应的加窗设计函数fir1
freqz(h,1,512); %数字滤波器频率响应
在MATLAB环境下运行该程序即可得到滤波器幅频相频响应曲线和滤波器系数h。篇幅所限,这里不再将源程序详细列出。
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
图2 Simulink仿真图及滤波效果图
Fig.2 Simulated connections and waveform
可以看到经过离散采样、数字滤波后分离出了83.3Hz的频率分量(scope1)。之所以选取上面的叠加信号作为原始信号,是由于在实际工作中是要对已经经过差分滤波的信号进一步做带通滤波,信号的各分量基本同一致,可以反映实际的情况。本例设计的滤波器已在实际工作中应用,取得了不错的效果。
4 结论
利用MATLAB的强大运算功能,基于MATLAB信号处理工具箱(Signal Processing Toolbox)的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。利用MATLAB设计数字滤波器在电力系统二次信号处理软件和微机保护中,有着广泛的应用前景。
参考文献
1. 陈德树. 计算机继电保护原理与技术【M】北京:水利电力出版社,1992.
2. 蒋志凯. 数字滤波与卡尔曼滤波【M】北京:中国科学技术出版社,1993
3. 楼顺天、李博菡. 基于MATLAB的系统分析与设计-信号处理【M】西安:西安电子科技大学出版社,1998.
4. 胡广书. 数字信号处理:理论、算法与实现【M】.北京:清华大学出版社,1997.
5. 蒙以正. MATLAB5.X应用与技巧【M】北京:科学出版社,1999.
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论