!! ✨ Matlab版本为R2022b,与以前的版本兼容。本文摘录汇总于:滤波器设计工具简介 - MATLAB & Simulink Example - MathWorks 中国。
本文展示了如何使用Matlab自带的滤波器设计工具filterDesigner
进行滤波器设计,使得我们从命令行滤波器设计函数中脱离出来,从而开展模型化的FIR或IIR滤波器设计工作,其具有的主要功能如下所示:
其启动方法在命令行输入filterDesigner
,即可快速启动Matlab的滤波器设计工具如下图所示,其主要包括三个区域:
这里以一个FIR等波纹低通滤波器的设计为例,使得所有小于等于奈奎斯特频率20%的频率通过,并衰减大于或等于奈奎斯特频率50%的频率,具体的设置如下所示:
根据设计滤波器器的需求,设置如下图所示的内容:
完成上图所示的设置后,点击下面的设计滤波器即可完成滤波器的设计。
点击分析工具栏中如下所示的幅值响应与相位响应图标
可以得到设计滤波器的幅值、脉冲响应结果如下图所示:
滤波器设计工具的常用操作汇总包括如下内容:
(1)滤波器分析工具快捷键
完成滤波器设计后,如下图所示,我们可以通过点击工具栏上的快捷按钮来实现滤波器分析:
比如对于一个设计好的滤波器其幅值响应、相位响应如下图所示:
(2)更改轴单位与标记数据点
通过在滤波器显示区域中,在轴坐标上点击鼠标右键,我们就可以更改x轴或y轴的单位。如下图所示,以y轴为例,其坐标轴单位包括四种类型:
另外,我们还可以通过鼠标左键点击滤波器显示区域中的任意点来添加数据标记,来现实该点的值。我们还可以通过右键点击标记,在弹出对话菜单进行诸如移动、删除、或导入工作区等操作:
(3)更改分析参数
通过在绘图上右键点击并选择分析参数
,如下图所示,可以显示用于更改特定于分析的参数的对话框。
对于滤波器设计工具中设计好的滤波器,我们可以将其转换如下三种形式,以便后续进一步处理:
(1)导出滤波器
如果我们需要对设计好的滤波器做后续分析处理,则可以将其导出到如下所示的目标位置:
以第二部分设计的滤波器为例,将其系数(分子部分)导入到Matlab工作区。其步骤为依次点击文件
导出
,弹出如下菜单:
点击导出,如下图所示,即可将第二部分设计的滤波器导入到Matlab工作区中,这样我们就可以对其进行进一步的处理。
其中导出到
包括如下三个选项:
其中导出为
包括如下三个选型:
(2)生成Matlab代码文件
通过滤波器设计工具,我们还可以将设计的滤波器直接生成Matlab代码,以便将设计的滤波器嵌入到现有的代码中。
从文件
菜单中选择生成MATLAB代码
,然后选择滤波器设计函数
,并在生成MATLAB代码
对话框中指定文件名,比如fir_lowpass
,生成的代码如下图所示:
我们通过该函数就可以指令Lowpass_filter=fir_lowpass
来构造低通滤波器对象了。比如我们在命令行中输入Lowpass_filter=fir_lowpass
然后执行,就可以得到一个低通滤波器对象如下图所示:
(3)导出为Simulink模型
通过依次点击文件
导出到Simulink模型
,如下图所示,则在模型设计区域弹出模型参数设置界面:
在弹出界面中,我们将生成的Simulink模块名称修改为fir_lowpass
,其他的保持默认,然后点击实现模型
。如下图所示,即可将设计的滤波器导出为Siumulink模型:
(1)目标菜单的使用
通过滤波器设计中的目标
菜单,我们可以生成生成如下各种类型的代码来表示设计好的滤波器:
C
头文件;(2)与其他工具箱的交互
滤波器设计工具还与如下的其他工具箱进行交互的功能:
DSP System Toolbox
:增加高级FIR和IIR设计方法,例如,滤波器变换、多速率滤波器,还可以为滤波器生成等效模型;Embedded Coder
:为Texas Instruments C6000 处理器生成、编译与部署代码;Filter Design HDL Coder
:为定点滤波器生成可合成的VHDL或Verilog代码;Simulink
:从原子Simulink模块生成滤波器。