基于MATLAB的图形化信号处理工具的FIR数字滤波器设计
2015-03-17董雷
董 雷
(华中师范大学物理科学与技术学院,湖北武汉430079)
随着对信号处理要求的提高,数字滤波器作为一种离散的LIT系统,与模拟滤波相比,具有更高的效率和精度,而且稳定度强,灵活性也更大。
MATLAB是以矩阵运算为基础的一款软件,具有强大的运算功能,集计算、编程、可视化操作于一体,是数字信号处理研究的有力工具,其中MATLAB的数字信号处理工具箱中自带的图形化信号处理设计工具-SPTOOL包含四个GUI工具:信号浏览器、滤波器设计器、滤波器浏览器和频谱浏览器,为数字信号处理的设计过程提供了更加方便有效的途径。运用sptool的交互式滤波器设计界面设计数字滤波器,不仅避免了传统数字滤波器设计过程中繁冗复杂的运算,而且显得更加直观。形化信号处理界面,如图1所示。
图1 sptool界面
1 FIR数字滤波器的设计
(1)确定滤波器指标
在实际应用中滤波器的设计常常是基于用户的要求而进行,即由用户提出指标要求。这里给出一个滤波器指标:用凯泽窗设计通带截止频率分别为1 000 Hz和2 000 Hz,阻带截止频率分别为4 000 Hz和5 000 Hz,峰值通带波纹为1 dB,最小阻带衰减为60 dB的带通滤波器,抽样频率为48 000 Hz。
(2)设计滤波器
在MATLAB的命令行窗口中输入sptool打开图
单击列表框Filters下的New按钮,打开滤波器设计器,在弹出的滤波器设计界面中根据给定的指标输入相应的参数,然后点击Design Filters,得到滤波器幅频响应如图2。设计完成后保存为bandpass.fda的文件。在设计完成后图1所示界面的filters列表会出现filter1。在simulink仿真环境下,设计保存好的滤波器文件 .fda,可以直接导入到Digital Filter Design模块中去应用。
2 FIR数字滤波器的性能验证
(1)导入测试信号
以信号 y=sin(2000πt)+sin(6000πt)+sin(10000πt)作为输入信号去测试滤波器,在命令行窗口中输入如下程序:
图2 滤波器设计界面
fs=48000;
t=(0:1000)/fs;
y=sin(2*pi*1000*t)+sin(2*pi*3000*t)+sin(2*pi*5000*t);
信号y和抽样频率fs被存入工作空间。
点击图1所示界面file菜单下的import选项将fs和y导入到signal列表中,如图3所示。导入完成后sig1就出现在signals列表中。
图3 导入测试信号
选中sig1,点击下方的view按钮,打开信号浏览器,观察测试信号的时域图,如图4所示。
图4 测试信号的时域图
(2)信号滤波处理及结果分析
选中sig2,点击下方的view按钮,观察滤波输出信号的时域图,如图5所示。与图4对比明显可以看出波形发生变化。
图5 滤波后信号时域图
选中sig1,点击spectra列表下的creat,生成sig1的频谱图默认名为spect1,选中sig2,点击spectra列表下的creat,生成sig2的频谱图默认名为spect2,可分别选中spect1和spect2,点击下面的view按钮,打开频谱浏览器,观察两个信号的频谱。也可同时选中spect1和spect2,对比观察滤波前后信号的频谱,如图6所示。可以看出滤波之前,能量集中1 000Hz,3 000 Hz,5 000 Hz,滤波之后主要集中在3 000 Hz,而1 000 Hz和5 000 Hz的频谱分量被滤波器滤掉,滤波器设计基本满足要求。
图6 滤波前后信号的频域图
3 总 结
用MATLAB的图形化信号处理设计工具可以快速有效地设计出符合用户要求的常规滤波器,既不需要复杂的计算也避免了编程和大量的函数调用。保存好的.fda文件可以直接导入到模块中仿真,减少了工作量,对于研究信号处理来说有较强的实用性。
[1] Sanjit K Mitra(美).Digital Signal Processing:A Computer Approach(Fourth Edition)[M].India:McGraw Hill Higher Education,2010.
[2] 林 川.MATLAB与数字信号处理实验[M].武汉:武汉大学出版社,2011.
[3] 李 茂,任学恒,李 涛,张怀武.基于MATLAB/Simulink的数字滤波器设计与仿真[J].磁性材料及器件,2007,01:59-61.
[4] 崔 杨,赵 利,廖连贵.基于SG FIR Filter的设计方法与分析[J].通信技术,2011,03:148-150.
[5] 史杰玉.MATLAB信号处理超级学习手册[M].北京:人民邮电出版社,2014.