的2倍减1就是?的长度。
用最优等波动法设计FIR数字滤波器的示例
指标:fs?2000Hz,通带截频0.3?,0.6? 阻带截频0.2?,0.7?,
Rp?40dB
通带波纹0.1710,阻带波纹0.01
用remez函数设计一个等波纹FIR带通滤波器,程序见附录中的(4),图像见图4-8、图4-9、图4-10。
图4-8 滤波器的增益响应
图4-9 信号滤波前时域和频域图
18
图4-10 信号滤波后时域和频域图
对比信号滤波前后的时域和频域图,发现信号滤波前是经四个不同的信号叠加而成的,经过滤波器滤波后,去除干扰信号,得到所需的信号。
4.4 在MATLAB上设计与实现FIR数字滤波器
打开MATLAB,除了许多的滤波器设计函数外,FDATool(由Toolbox提供)是一个操作简单、应用方便快捷且灵活的滤波器设计工具。用户可以通过给定的滤波器参数和设计要求,然后使用FDATool设计界面直接对滤波器进行设计。
4.4.1 FDATool工具
在命令窗口中输入:fdatool,将弹出一个默认界面,是关于FDATool设计及分析滤波器的界面。
在滤波器设计参数的指定区域内,根据给定指标和设计思路选择Filter Type和Design Method、输入Filter Order和各种频率参数等等。
完成各种设置后,单击“Design Filter”,MATLAB将按照设置的参数和要求自动设计出所需的滤波器。完成设计后,该滤波器的幅频响应曲线将绘制在原界面的“Filter Specifications”区域,该区域的名字也会改为“Magnitude Response”。
4.4.2 FDATool对滤波器进行分析
单击滤波器分析工具栏中的“单击滤波器分析工具栏中的“
”按钮,将得到滤波器的幅频响应曲线。 ”按钮,将得到滤波器的相频响应曲线。
19
单击滤波器分析工具栏中的“曲线。
单击滤波器分析工具栏中的“单击滤波器分析工具栏中的“单击滤波器分析工具栏中的“单击滤波器分析工具栏中的“单击滤波器分析工具栏中的“
”按钮,将得到滤波器的群延迟。 ”按钮,将得到滤波器的冲击响应。 ”按钮,将得到滤波器的阶跃响应。 ”按钮,将得到滤波器的零极点图。 ”按钮,将得到滤波器的传递函数系数。
”按钮,将同时显示出滤波器的幅频响应和相频响应
单击滤波器响应曲线中的点,用户可以根据系统弹出的小方框了解该点信息。
4.4.3 数字滤波器的实现
(1)切换滤波器的实现结构
滤波器在实现前要先考虑它的实现结构是否符合要求。点击菜单中的“Edit”,再点击“Convert Structure”,系统会弹出一个窗口,用户可以选择切换滤波器的实现结构。
(2)导出滤波器设计参数
点击菜单中的“File”,选择“Export”,在弹出窗口“Export To”下拉列表可以选择导出滤波器设计参数到文本文件(Text-file)、工作空间(Workspace)或mat文件(MAT-file)。其实就是导出滤波器设计的描述参数。点击主菜单“File”,再点击“Export to C Header file”,即可将滤波器的设计参数导出到C语言的头文件中。
(3)把设计滤波器转换为一个Simulink模块
若计算机安装了DSP Blockset模块,单击FDATool界面中的“设计参数区域变为滤波器的实现参数区域。
点击“Model”选择里面的“Desrination”,要新建一个模型就在下拉列表中选择“New model”,并让滤波器在该模型中实现。在“Block name”内输入该滤波器的名字。设置完参数后,单击“Reaze Model”,MATLAB会将设计的数字滤波器制作成新建模型中的一个模块。
(4)在Simulink中进行仿真
在MATLAB的命令窗口中输入:Simulink,系统将弹出一个默认界面,在主菜单“File”/“New”/“Model”新建一个工作区。在该界面内放入系统所需的模块,连好线后可以进行运行仿真。
20
”后,将滤波器的
在Simulink上设计并实现一个带通滤波器示例 指标:fs?2000Hz,通带截止频率:19~22Hz 阻带截止频率:15~26Hz,
Rp?20dB
在Simulink中设计的系统如图5-1,信号滤波的时域图如图5-2。
图5-1 Simulink中设计带通滤波器的系统图
图5-2 信号滤波前后的时域图
对比信号滤波前后的时域和频域图,发现信号滤波前是经三个不同的信号叠加而成的,经过滤波器滤波后,去除干扰信号,得到所需的信号。
21