精华内容
下载资源
问答
  • 基本学习使用MATLAB软件中FDAtool工具箱对滤波器设计与分析
  • 7.5 MATLAB滤波器设计工具FDATool FDATool(Filter Design and Analysis Tool是MATLAB 信号处理工具箱提供的一种综合简便的图形用户工具通过该工具提供的先进可视化滤波器集成设计环境用户可以方便地设计几乎所有的...
  • 滤波器设计工具快速入门要打开滤波器设计工具,请键入filterDesigner(在 MATLAB® 命令提示符下键入。)将打开滤波器设计工具并显示“设计滤波器”面板。请注意,当您打开设计滤波器并未启用。您必须对默认滤波器设计...

    滤波器设计工具快速入门

    要打开滤波器设计工具,请键入

    filterDesigner(在 MATLAB® 命令提示符下键入。)

    将打开滤波器设计工具并显示“设计滤波器”面板。

    0e713a372f0212a6dfc91addd6a9bcad.png

    请注意,当您打开设计滤波器并未启用。您必须对默认滤波器设计进行更改以启用设计滤波器。每次您要更改滤波器设计时,均需如此。对单选按钮项或下拉菜单项(如响应类型或滤波器阶数下的那些项)的更改会立即启用设计滤波器。对文本框中设定(如 Fs、Fpass 和 Fstop)的更改要求您在文本框外点击才能启用设计滤波器。选择响应类型

    您可以选择下列响应类型之一:

    低通

    升余弦

    高通

    带通

    带阻

    微分器

    多频带

    Hilbert 变换器

    任意幅值

    如果您安装了 DSP System Toolbox™ 软件,还可以使用其他响应类型。

    注意

    并非所有滤波器设计方法对所有响应类型均适用。如果您已选择了响应类型,则可用的滤波器设计方法可能会受到限制。对于所选响应类型不可用的滤波器设计方法将从 App 的设计方法区域中移除。选择滤波器设计方法

    您可以对所选响应类型使用默认的滤波器设计方法,也可以从 App 中列出的可用 FIR 和 IIR 方法中选择一种滤波器设计方法。

    要选择 Remez 算法来计算 FIR 滤波器系数,请选择 FIR 单选按钮,并从方法列表中选择 Equiripple。设置滤波器设计设定查看滤波器设定

    您可以设置的滤波器设计设定因响应类型和设计方法而异。当您选择分析 > 滤波器设定或点击滤波器设定工具栏按钮时,显示区域会显示滤波器设定。

    您还可以通过选择查看 > 滤波器规格模板,在设计的滤波器的幅值图上查看滤波器设定。滤波器阶数

    在设计等波纹滤波器时,有两个互斥的选项来确定滤波器的阶数:

    指定阶数:您可以在文本框中输入滤波器阶数。

    最小阶:滤波器设计方法决定最小阶滤波器。

    请注意,滤波器的阶数设定选项取决于您选择的滤波器设计方法。某些滤波器方法可能不会同时提供这两个选项。选项

    可用选项取决于所选滤波器设计方法。只有 FIR 等波纹和 FIR 窗设计方法有可设置的选项。对于 FIR 等波纹,选项为密度因子。有关详细信息,请参阅 firpm。对于 FIR 窗,选项为缩放通带和窗口选项,对于以下窗口,选项有可设置的参数:

    窗参数Chebyshev (chebwin)旁瓣衰减

    Gaussian (gausswin)Alpha

    Kaiser (kaiser)Beta

    Taylor (taylorwin)Nbar 和旁瓣电平

    Tukey (tukeywin)Alpha

    用户定义函数名称、参数

    您可以通过点击 查看 按钮,在窗口可视化工具 (带通滤波器频率设定

    对于带通滤波器,您可以设置

    频率单位:

    Hz

    kHz

    MHz

    归一化(0 到 1)

    采样率

    通带频率

    阻带频率

    您可以用两个频率指定通带。第一个频率决定通带的下边缘,第二个频率决定通带的上边缘。

    同样,您可以用两个频率指定阻带。第一个频率确定第一个阻带的上边缘,第二个频率确定第二个阻带的下边缘。带通滤波器幅值设定

    对于带通滤波器,您可以指定以下幅值响应特征:

    幅值响应的单位(dB 或线性)

    通带波纹

    阻带衰减计算滤波器系数

    您已经指定了滤波器设计,现在请点击设计滤波器按钮计算滤波器系数。

    注意

    在计算滤波器设计的系数后,设计滤波器按钮将被禁用。在对滤波器设定进行任何更改后,此按钮将再次启用。分析滤波器显示滤波器响应

    您可以在显示区域或单独的窗口中查看以下滤波器响应特征。

    幅值响应

    相位响应

    幅值响应和相位响应

    群延迟响应

    相位延迟响应

    脉冲响应

    阶跃响应

    极点-零点图

    零相位响应 - 可从幅值或幅值和相位响应图中的 y 轴上下文菜单中获得。

    注意

    如果您安装了 DSP System Toolbox 产品,还可以进行另外两种分析:幅值响应估计和舍入噪声功率。只有这两种分析需要设置滤波器内部选项。

    有关上述响应及其相关工具栏按钮和其他

    您可以在同一绘图中显示两个响应,方法是选择分析 > 叠加分析并选择可用的响应。第二个 y 轴会添加到响应图的右侧。(请注意,并非所有响应都可以相互叠加。)

    您还可以在此区域显示滤波器系数和详细的滤波器信息。

    对于零相位响应之外的所有分析方法,您可以从分析菜单、上下文菜单中的“分析参数”对话框或使用工具栏按钮访问它们。对于零相位,请右键点击绘图的 y 轴,并从上下文菜单中选择零相位。

    您可以在幅值图上叠加滤波器设定,方法是选择查看 > 滤波器规格模板。使用数据提示

    您可以点击响应以添加绘图数据提示,显示关于响应上特定点的信息。

    有关使用数据提示的信息,请参阅交互式探查绘图数据。绘制频谱模板

    要将频谱模板或拒绝域边界线添加到幅值图中,请点击查看 > 用户定义的频谱模板。

    模板由频率向量和幅值向量定义。这些向量长度必须相同。

    启用模板 - 选择打开模板显示。

    归一化频率 - 选择此项可在显示的频率范围内将频率归一化至 0 到 1 之间。

    频率向量 - 输入 x 轴频率值的向量。

    幅值单位 - 选择所需的幅值单位。这些单位应与幅值图中使用的单位相匹配。

    幅值向量 - 输入 y 轴幅值的向量。更改采样率

    要更改滤波器的采样率,请右键点击任一滤波器响应图,并从上下文菜单中选择采样频率。

    要更改滤波器名称,请在滤波器名称中键入新名称。(在

    要更改采样率,请从单位中选择所需的单位,并在 Fs 中输入采样率。(对于 FVTool 中的每个滤波器,您可以指定不同采样率,也可以将同一采样率应用于所有滤波器。)

    要将显示的参数保存为默认值,以便在打开FVTool 时使用,请点击保存为默认值。

    要还原默认值,请点击还原原始默认值。在 FVTool 中显示响应

    要在单独的窗口中显示滤波器响应特征,请选择查看 > 滤波器可视化工具(在显示区域中显示的是分析而非滤波器设定时,此选项可用),或点击完整视图分析按钮。这将启动滤波器可视化工具 (FVTool)。

    注意

    如果滤波器设定出现在显示区域中,点击完整视图分析工具栏按钮将启动 MATLAB 图窗窗口,而不是 FVTool。相关联的菜单项是打印到图窗,仅当显示滤波器设定时才会启用。

    您可以使用此工具为您的设计添加注释,查看其他滤波器特征,并打印您的滤波器响应。您可以将FVTool 链接起来,以便在FVTool 中。有关详细信息,请参阅使用极点-零点编辑器编辑滤波器显示极点-零点图

    您可以使用极点-零点编辑器面板,通过移动、删除或添加极点或零点(或两者)来编辑设计的或导入的滤波器系数。

    注意

    如果您的滤波器是用极点-零点编辑器设计或编辑的,则无法生成 MATLAB 代码(文件 > 生成 MATLAB 代码)。

    您无法移动量化极点和零点。您只能移动参考极点和零点。

    点击边栏中的极点-零点编辑器按钮或选择 编辑 > 极点-零点编辑器 以显示极点-零点编辑器面板。

    极点用 x 符号表示,零点用 o 符号表示。更改极点-零点图

    绘图模式按钮位于极点-零点图的左侧。选择按钮之一来更改极点-零点图的模式。极点-零点编辑器从左到右有以下按钮:移动极点-零点、添加极点、添加零点和删除极点-零点。

    注意

    对于阶数在 100 左右或更高的滤波器,极点-零点编辑器在计算传递函数多项式时可能会遇到数值问题。因此,显示的滤波器响应可能与预期不同。要在不尝试计算高阶多项式的情况下检查极点和零点,请选择分析 > 极点-零点图。您无法在此视图中编辑滤波器。

    下列绘图参数和控件位于极点-零点图的左侧、绘图模式按钮的下方。

    滤波器增益 - 补偿滤波器极点和零点增益的因子

    坐标 - 所选极点或零点的单位(Polar 或 Rectangular)

    幅值 - 所选极点或零点的幅值(选择极坐标时出现)

    角度 - 所选极点或零点的角度(选择极坐标时出现)

    实部 - 所选极点或零点的实部(选择直角坐标时出现)

    虚部 - 所选极点或零点的虚部(选择直角坐标时出现)

    节 - 当前节的编号(对于多节滤波器)

    共轭 - 创建对应的共轭极点或零点,或者自动选择已有的共轭极点或零点。

    自动更新 - 添加、移动或删除极点或零点时,立即更新显示的幅值响应。

    编辑 > 极点-零点编辑器支持对极点或零点进行多选操作、反转和镜像操作以及删除、缩放和旋转操作。

    当您选择共轭对组中的一个极点或零点时,共轭复选框和对应的共轭点会自动选中。转换滤波器结构转换为新结构

    您可以使用编辑 > 转换结构将当前滤波器转换为新结构。所有滤波器都可以转换为以下表示:

    直接 I 型

    直接 II 型

    直接 I 型转置

    直接 II 型转置

    格型 ARMA

    注意

    如果安装了 DSP System Toolbox 产品,您还会在“转换结构”对话框中看到其他结构。

    此外,特定种类的滤波器还支持以下转换:

    最小相位 FIR 滤波器可以转换为格型最小相位

    最大相位 FIR 滤波器可以转换为格型最大相位

    全通滤波器可以转换为格型全通滤波器

    IIR 滤波器可以转换为格型 ARMA

    注意

    从一个滤波器结构转换为另一个滤波器结构可能会产生与原始滤波器不同的特征。这是由于计算机的算术运算精度有限,且转换的舍入计算会导致一些变化。

    例如:

    选择编辑 > 转换结构以打开“转换结构”对话框。

    在滤波器结构列表中选择 Direct-form I。转换为二阶节

    您可以使用编辑 > 转换为二阶节将转换后的滤波器结构存储为二阶节的集合,而不是一体式的高阶结构。

    注意

    用于修改 SOS 滤波器结构的编辑 > 重排并定标二阶节也具有以下选项。

    以下缩放选项仅在转换直接 II 型结构时可用:

    None(默认值)

    L-2(L2 范数)

    L-infinity(L∞ 范数)

    方向(Up 或 Down)决定二阶节的排序。最佳排序取决于所选缩放选项。

    例如:

    选择编辑 > 转换为二阶节以打开“转换为 SOS”对话框。

    从缩放菜单中选择 L-infinity 以进行 L∞ 范数缩放。

    将方向选项设置为 Up。

    注意

    要从一组二阶节转换回单个节,请使用编辑 > 转换为单节。导出滤波器设计将系数或对象导出到工作区

    您可以将滤波器保存为滤波器系数变量或滤波器对象变量。要将滤波器保存到 MATLAB 工作区,请执行以下操作:

    选择文件 > 导出。此时会出现“导出”对话框。

    从导出到菜单中选择 Workspace。

    从导出为菜单中选择 Coefficients 以保存滤波器系数,或选择 Objects 以将滤波器保存在滤波器对象中。

    导出系数时,请在“变量名称”部分的分子(对于 FIR 滤波器)或分子和分母(对于 IIR 滤波器)或 SOS 矩阵和定标值(对于二阶节形式的 IIR 滤波器)文本框中指定变量名称。

    导出对象时,请在离散滤波器文本框中指定变量名称。如果您的工作区中有同名变量,并且您要覆盖它们,请选中覆盖变量复选框。

    点击导出按钮。将系数导出到 ASCII 文件

    要将滤波器系数保存到文本文件中,请执行以下操作:

    选择文件 > 导出。此时会出现“导出”对话框。

    从导出到菜单中选择 Coefficients File (ASCII)。

    点击导出按钮。将出现“将滤波器系数导出到 .FCF 文件”对话框。

    选择或输入文件名,然后点击保存按钮。

    系数保存在您指定的文本文件中,MATLAB 编辑器会打开以显示该文件。文本文件还包含注释,其中描述了 MATLAB 版本号、Signal Processing Toolbox™ 版本号和滤波器信息。将系数或对象导出到 MAT 文件

    要将滤波器系数或滤波器对象作为变量保存在 MAT 文件中,请执行以下操作:

    选择文件 > 导出。此时会出现“导出”对话框。

    从导出到菜单中选择 MAT-file。

    从导出为菜单中选择 Coefficients 以保存滤波器系数,或选择 Objects 以将滤波器保存在滤波器对象中。

    导出系数时,请在“变量名称”部分的分子(对于 FIR 滤波器)或分子和分母(对于 IIR 滤波器)或 SOS 矩阵和定标值(对于二阶节形式的 IIR 滤波器)文本框中指定变量名称。

    导出对象时,请在离散滤波器(或量化滤波器)文本框中指定变量名称。如果您的工作区中有同名变量,并且您要覆盖它们,请选中覆盖变量复选框。

    点击导出按钮。此时会出现“导出到 MAT 文件”对话框。

    选择或输入文件名,然后点击保存按钮。导出到 Simulink 模型

    如果您安装了 Simulink® 产品,您可以导出 Simulink 滤波器设计模块,并将其插入新的或现有 Simulink 模型。

    您可以导出使用

    注意

    如果您安装了 DSP System Toolbox 和 Fixed-Point Designer™,可以将 CIC 滤波器导出到 Simulink 模型。

    设计滤波器后,点击实现模型边栏按钮或选择文件 > 导出到 Simulink 模型。此时会出现“实现模型”面板。

    在模块名称中指定您要使用的模块名称。

    要将该模块插入当前(最近选择的)Simulink 模型,请将目标设置为“当前”。要将该模块插入一个新模型,请选择“新建”。要将该模块插入用户定义的子系统,请选择“用户定义”。

    如果您要覆盖以前从该面板创建的模块,请选中覆盖生成的 `Filter' 模块。

    如果选中使用基本元素构建模型复选框,您的滤波器将被创建为一个子系统(Simulink)模块,该模块使用单独的子元素。在这种模式下,可以进行以下优化:

    “零增益优化” - 从滤波器结构中删除零值增益路径。

    “单位增益优化” - 用一条线(短路)来代替滤波器结构中等于 1 的增益。

    “负增益优化” - 用一条线(短路)代替等于 -1 的增益,并将滤波器结构中的对应加法更改为减法。

    “延迟链优化” - 用一个长度为 n 的延迟替代由 n 个单位延迟组成的延迟链。

    “单位定标值优化” - 从滤波器结构中删除缩放值等于 1 的乘法运算。

    下图显示一些优化的效果:

    0dc598ff495d84839613d3384864c4e8.gif

    注意

    仅当您拥有 DSP System Toolbox 许可证且您的滤波器可以用 Biquad Filter(DSP System Toolbox) 模块或 Discrete FIR Filter(Simulink) 模块设计时,使用基本元素构建模型复选框才会启用。有关详细信息,请参阅 DSP System Toolbox 文档中的 Filter Realization Wizard(DSP System Toolbox) 主题。

    设置输入处理参数,以指定生成的滤波器对输入执行基于样本还是基于帧的处理。根据您设计的滤波器类型,以下选项之一或全部两个选项可用:

    “列作为通道(基于帧)” - 选择此选项时,模块会将输入的每列视为一个单独的通道。

    “元素作为通道(基于采样)” - 选择此选项时,模块会将输入的每个元素视为一个单独的通道。

    点击实现模型按钮创建滤波器模块。如果选中使用基本元素构建模型复选框,Add(Simulink)、Gain(Simulink) 和 Delay(Simulink) 模块组成的子系统模块。

    如果双击 Simulink Filter 模块,将显示滤波器结构。生成 C 头文件

    您可能希望在外部 C 程序中包含滤波器信息。要使用包含滤波器参数数据的变量创建 C 头文件,请按照以下步骤进行操作:

    选择目标 > 生成 C 头文件。此时会出现“生成 C 头文件”对话框。

    输入要在 C 头文件中使用的变量名称。具体的滤波器结构决定了文件中要创建哪些变量。

    滤波器结构变量参数直接 I 型

    直接 II 型

    直接 I 型转置

    直接 II 型转置分子、分子长度、分母、分母长度

    格型 ARMA格型系数、格型系数长度、梯型系数、梯型系数长度

    格型 MA格型系数、格型系数长度和节数(如果滤波器只有一节,则此项处于非活动状态)

    直接型 FIR 直接型 FIR 转置分子、分子长度、节数(如果滤波器只有一节,则此项处于非活动状态)

    长度变量包含该类型系数的总数。

    注意

    变量名称不能为 C 语言保留字,如 for。

    选择导出为建议类型以使用建议的数据类型,或者选择导出为并从下拉列表中选择所需的数据类型。

    注意

    如果没有安装 DSP System Toolbox 软件,选择双精度浮点以外的任何数据类型都会致使导出的滤波器与您在

    点击生成保存文件,并保持对话框打开以进行其他 C 头文件定义。要关闭对话框,请点击关闭。生成 MATLAB 代码

    您可以生成 MATLAB 代码,以便通过命令行构造您在文件 > 生成 MATLAB 代码 > 滤波器设计函数,并在“生成 MATLAB 代码”对话框中指定文件名。

    注意

    如果您使用极点-零点编辑器设计或编辑了您的滤波器,则无法生成 MATLAB 代码(文件 > 生成 MATLAB 代码 > 滤波器设计函数)。

    以下是为

    function Hd = ExFilter

    %EXFILTER Returns a discrete-time filter object.

    %

    % MATLAB Code

    % Generated by MATLAB(R) 7.11 and the Signal Processing Toolbox 6.14.

    %

    % Generated on: 17-Feb-2010 14:15:37

    %

    % Equiripple Lowpass filter designed using the FIRPM function.

    % All frequency values are in Hz.

    Fs = 48000; % Sample Rate

    Fpass = 9600; % Passband Frequency

    Fstop = 12000; % Stopband Frequency

    Dpass = 0.057501127785; % Passband Ripple

    Dstop = 0.0001; % Stopband Attenuation

    dens = 20; % Density Factor

    % Calculate the order from the parameters using FIRPMORD.

    [N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);

    % Calculate the coefficients using the FIRPM function.

    b = firpm(N, Fo, Ao, W, {dens});

    Hd = dfilt.dffir(b);

    % [EOF]管理当前会话中的滤波器

    您可以将设计的滤波器存储在当前FVTool,或稍后在相同的或未来的

    您可以在当前滤波器信息窗格中分别使用存储滤波器和滤波器管理器按钮来存储和访问保存的滤波器。

    存储滤波器 - 显示“存储滤波器”对话框,您可以在其中指定在滤波器管理器中存储滤波器时要使用的滤波器名称。默认名称是滤波器的类型。

    滤波器管理器 - 打开滤波器管理器。

    当前滤波器显示在列表框下方。要更改当前滤波器,请突出显示所需的滤波器。如果选择编辑当前滤波器,

    要级联两个或多个滤波器,请突出显示所需的滤波器,然后按级联。新的级联滤波器会添加到滤波器管理器中。

    要更改存储的滤波器的名称,请按重命名。此时将显示“重命名滤波器”对话框。

    要从滤波器管理器中删除存储的滤波器,请按删除。

    要将一个或多个滤波器导出到 FVTool,请突出显示所需滤波器,然后按 FVTool。保存和打开滤波器设计会话

    您可以将滤波器设计会话保存为 MAT 文件,以便今后返回同一会话。

    选择保存会话按钮,将您的会话保存为 MAT 文件。第一次保存会话时,将打开“保存滤波器设计会话”浏览器,提示您输入会话名称。

    .fda 扩展名会自动添加到您保存的所有滤波器设计会话。

    注意

    您还可以使用文件 > 保存会话和文件 > 会话另存为保存会话。

    您可以通过选择打开会话按钮或文件 > 打开会话将现有会话加载到

    展开全文
  • MATLAB滤波器设计fdatool(filterDesigner)工具箱使用

    万次阅读 多人点赞 2020-01-08 10:02:38
    MATLAB滤波器设计fdatool(filterDesigner)工具箱使用 MATLAB集成了一套功能非常强大的滤波器设计和分析工具FDAtool(新版为filterDesigner),它可以很方便的设计出一个滤波器,并且可以进行性能的分析。 以下操作...

    MATLAB滤波器设计fdatool(filterDesigner)工具箱使用

    MATLAB集成了一套功能非常强大的滤波器设计和分析工具FDAtool(新版为filterDesigner),它可以很方便的设计出一个滤波器,并且可以进行性能的分析。

    以下操作使用的MATLAB环境是MATLAB R2018a

    1、启动FDAtool工具箱,在命令行窗口中输入fdatool命令,打开FDAtool工具箱。

    在这里插入图片描述

    注:如果开始界面不是上图所示,则点击红色方框即可。

    2、设计界面简单介绍:

    1)Response Type(响应类型):有低通、高通、带通、带阻等设计。

    2)Design Method(设计方法):有IIR和FIR两大类。

    3)Filter Order(滤波器阶次):阶次可以根据自己的需要设定,也可以直接选择最小阶次。

    4)Frequency Specifications(频率参数):根据自己所需要的参数进行设定。

    在这里插入图片描述

    例:设计一个一下参数的滤波器:

    1)巴特沃斯低通滤波器。

    2)阶数为10阶。

    3)采样频率为:500Hz。

    4)截止频率为:50Hz。

    3、根据以上要求设计改变FDAtool工具箱中的参数,并且点击Design Filter,就会显示出所设计的滤波器。

    在这里插入图片描述
    在这里插入图片描述

    4、可以查看滤波器的各项性能:

    1)幅度响应:

    在这里插入图片描述

    2)相位响应:

    在这里插入图片描述

    3)冲击响应:

    在这里插入图片描述

    4)零极点图:

    在这里插入图片描述

    5、将设计好的滤波器导出matlab中。

    (1)以.m文件的形式导出到matlab中:

    1)点击file,然后选择Generate MATLAB Code -> Filter DesignFunction:

    在这里插入图片描述

    2)在当前文件目录中修改导出文件名为Filter_IIR.m,点击保存:

    在这里插入图片描述

    3)然后就可以看到已经设计好的滤波器代码。

    在这里插入图片描述

    4)调用设计好的滤波器:

    在MATLAB中新建一个.m文件,然后在文件中添加如下代码:
    %% 
    % 作者:明志
    % 环境:MATLAB R2018a
    y1 = rand(100,1);
    figure('color',[1,1,1]);
    subplot(2,1,1);
    plot(y1);
    title('滤波前波形');
    %% 
    y2 = filter(Filter_IIR,y1);  % 直接使用设计好的滤波器进行滤波,filter函数是滤波函数
    subplot(2,1,2);
    plot(y2);
    title('滤波后波形');
    

    就会得到如下图形:

    在这里插入图片描述

    (2)将滤波器导出到Workspace中:

    1)点击File->Export,然后弹出选择窗口。

    在这里插入图片描述

    2)将Export to选择为Workspace、Export As选择为Object、Variable Names设置为Hd,然后点击Export即可。

    在这里插入图片描述

    3)点击Export之后会在工作区中出现名称为Hd的df2sos变量。

    在这里插入图片描述

    4)在命令行窗口中直接输入以下代码即可使用滤波器。

    在这里插入图片描述

    滤波前信号为:

    在这里插入图片描述

    滤波后信号为:

    在这里插入图片描述

    对于其他导出方式方法大同小异,只是加载的方式不同而已,读者可以自行尝试。

    展开全文
  • MATLAB中用FDATool设计滤波器及使用该文章讲述了MATLAB中用FDATool设计滤波器及使用.1. 在Matlab中键入fdatool运行Filter Design and Analysis Tool。具体使用请参见Matlab Help中的Signal Processing Toolbox->...

    MATLAB中用FDATool设计滤波器及使用

    该文章讲述了MATLAB中用FDATool设计滤波器及使用.

    1. 在Matlab中键入fdatool运行Filter Design and Analysis Tool。具体使用请参见Matlab Help中的Signal Processing Toolbox->FDATool。

    2. 在fdatool工具中应该注意的几个问题:(a)Fstop(阻带截止频率)不能大于或等于采样频率Fs/2,这是由于数字滤波器设计的方式决定的。(b)将设计好的滤波器导出,可以采用两种方式Export the filter either as filter coefficients variables or as a dfilt or mfilt filter object variable。(详细说明参见Matlab Help中的Signal Processing Toolbox-> FDATool-> Exporting a Filter Design。

    导出:File---Export弹出EXPORT对话框,选择“Export As”为“Objects”,“Varable Names”可以更改,默认为Hd。

    3. (a)如果导出的是dfilt or mfilt filter object variable,则可以用[b, a] = tf(Hd)将dfilt filter object转换为传递函数形式,然后用d=filter(b,a,x); 使用这个滤波器。其中:filter是默认函数,b、a是刚刚设计的传递函数参数,x是原始采集信号,d为滤波后的信号。x=importdata('E:\matlab_work\xy\bb\O6.txt');

    N=length(x); %取长度

    fs=4000; %采样频率

    t=(0:N-1)/fs; 输出Hd;

    [b,a]=tf(Hd);%得到传递函数

    d=filter(b,a,x); subplot(311); plot(t,x); title('原始信号');

    xlabel('t');

    ylabel('y');

    grid on;

    基于fdatool工具的数字滤波器的matlab设计

    数字滤波器的matlab设计

    1.1 fdatool界面设计

    1.1.1 fdatool的介绍

    fdatool(filter design & analysis tool)是matlab信号处理工具箱里专用的滤波器设计分析工具,matlab6.0以上的版本还专门增加了滤波器设计工具箱(filter design toolbox)。fdatool可以设计几乎所有的基本的常规滤波器,包括fir和iir的各种设计方法。它操作简单,方便灵活。

    展开全文
  • 描述matlab滤波器设计-IIR滤波器的设计与仿真1 引言在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。但是,传统的数字滤波器的设计使用繁琐的公式计算,改变...

    描述

    matlab滤波器设计-IIR滤波器的设计与仿真

    1 引言

    在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。但是,传统的数字滤波器的设计使用繁琐的公式计算,改变参数后需要重新计算,从而在设计滤波器尤其是高阶滤波器时工作量很大。利用MATLAB信号处理箱(Signal Processing Toolbox)可以快速有效地实现数字滤波器的设计与仿真。

    2 数字滤波器及传统设计方法

    数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

    IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。FIR数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。

    在对滤波器实际设计时,整个过程的运算量是很大的。设计阶数较高的IIR滤波器时,计算量更大,设计过程中改变参数或滤波器类型时都要重新计算。

    设计完成后对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。

    3 IIR滤波器的MATLAB设计

    3.1  FDATool界面设计

    3.1.1 FDATool的介绍

    FDATool(Filter Design&Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB 6.O以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。

    FDATool。界面总共分两大部分,一部分是Design Filter。在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。

    Design Method(设计方法)选项,包括IIR滤波器的Butterwotth(巴特沃思)法、Chebyshev  Type I(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。

    Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify Order=N-1)。如果选择Minimum Order,则MATLAB根据所选择的滤波器类型自动使用最小阶数。

    Frequency Specifications选项,可以详细定义频带的各参数,包括采样频率和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定。例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定,所以只需定义通带截止频率,而不必定义阻带参数。

    Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。

    Window Specifications选项,当选取采用窗函数设计,该选项可定义,它包含了各种窗函数。

    3.1.2  IIR滤波器设计实例

    本文以一个IIR滤波器的设计为例说明如何使用MATLAB设计数字滤波器。要求设计一个10阶的带通Chebyshev I滤波器,它的通带范围是100到200Hz,采样频率为1000Hz,Rp=0.5。

    本例中,首先在Filter Type中选择Bandpass(带通滤波器);在Design Method选项中选择IIR,接着在相邻的右则选项中选择Chebyshev I(切比雪夫I型);指定Filter Order项中的Specify Order=10;由于采用的是切比雪夫设计,不必在Options中选择;然后在Frequency Specifications中选择Unit为Hz,给出采样频率Fs=1000,通带Fpass1=100和Fpass2=200;最后在Magnitude Specifications中选择Unit为db,Apass=0.5。设置完成后

    点击Design Filter即可得到所设计的IIR滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性,如图1所示。设计完成后将结果保存为filterl.fda文件。

    50c92543ab48bc7e9a76ac3c975e2f49.png 

    68ff9a94f81ce2269c9f213db52c7bfa.png 

    fef5f2e7c11747e2de321b3c3dbdfdf5.png 

    图1滤波器的幅频、相频和冲激响应(特性区)

    3.2  程序设计法

    在MATLAB中,对各种滤波器的设计都有相应的计算振幅、相位和冲激响应的函数,可以用来做滤波器程序设计。

    上例的IIR滤波器的冲激响应可用程序设计如下:

    %ehebyshevl bpf

    n=10;    %阶数为10

    Rp=0.5;  %幅值衰减为0.5

    Wn[100 200]/500;

    [b,a]=chebyl(n,Rp,wn);

    [y,t]impz(b,a,101);

    stem(t,y,'.');

    在MATLAB环境下运行该程序即可得到滤波器的时域冲激响应。由于篇幅所限,这里不再详述源程序。

    3.3设计实例分析

    由图1(a)可知,这种滤波器在100-200Hz的通带范围内是等波纹的,而在阻带中是单调的,这是Chebyshev I滤波器的幅频特性。由图1(b)可知,在100-200Hz的范围内相移较小,其曲线近似一条直线,失真较小;当频率超过这一范围时,相移较大,而且其曲线是非直线的,所以失真也较大。图1(c)得到了Chebyshev  I滤波器的时域冲激响应,在5ms-100ms有冲激响应,超过这一范围的冲激响应近似为零,进而实现了Chebyshev I带通

    滤波器的设计。

    4 Simulink仿真4.1 Simulink仿真实例

    通过调用Simulink中的功能模块,可以构成数字滤波器的仿真框图。在仿真过程中,双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如原始信号x(t)=2sin(0.05wt)+w(t),w(t)为随机信号,幅值为0.2,通过一传递函数为H(z)=0.15/(1-0.8z-1)的滤波器可得到如图2的仿真结果。其中仿真过程中可导入FDATool所设计的滤波器文件。

    5e1d0486bd8334ba0d3c9d7474d566da.png 

    175dfe0fc141c99543ef82d7a1cf7262.png

    2e53598a9c10ae89c0b798e1eafb56c7.png 

    4.2  仿真分析

    比较图2中(b)和(c)的波形可知,输入的原始信号经过滤波器滤波后,(b)中波形的毛刺部分(即干扰噪声)被滤除,输出的信号更接近正弦波,如(c)中所示波形。由此说明,传递函数为H(z)=0.15/(1-0.8z-1)的滤波器的设计是恰当的。

    5 结论    利用MATLAB的强大运算功能,基于MATLAB的信号处理工具箱(Signal Processing Toolbox)的数字滤波器设计法可以快速有效地设计由软件组成的常规数字滤波器,设计方便、快捷,大大减轻了工作量。在设计过程中可以对比滤波器特性。随时更改参数,以达到滤波器设计的最优化。利用MATLAB设计数字滤波器在数字通信系统和计算机领域信号处理中,有着广泛的应用前景,可关注。

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • MATLAB滤波器设计

    2019-08-20 18:53:40
    使用MATLAB软件实现简单的滤波器,两个不同频率的正弦信号,滤出一个
  • 利用MATLAB信号处理工具设计IIR滤波器,包含程序和图像
  • MATLAB滤波器工具

    2012-03-07 08:00:00
    MATLAB滤波器工具,相关设计的一些资料,方便学习下
  • 基于 matlab 的低通滤波器 摘要:调用 MATLAB 信号处理...标 设计过渡模拟滤波器将过渡模拟滤波器系统函数转换成数字滤波器的系统函数MATLAB 信号处理工 具箱中的各种 IIR 数字滤波器设计函数都是采用双线性变换法 关
  • 通过matlab的fdatool工具箱设计FIR滤波器以99阶FIR低通滤波器为例,学习使用matlab的fdatool工具箱设计滤波器,并将滤波器系数导出到.coe文件,联合Vivado进行FPGA的FIR滤波器设计。本文滤波器参数为:低通FIR滤波器...
  • matlab设计高频滤波器

    2021-04-27 16:54:25
    最近数字图像处理的老师布置了新的实验内容,是有关不调用函数设计巴特沃斯滤波器和高斯滤波器的,在经过痛苦的挣扎后,我也算是大致理解了设计的具体流程和思路,并把它们记述在这里,方便日后查阅。 因为数字信号...
  • 0 引言数字滤波器(Digital Filter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号...二是设计专用的数字处理硬件。这个...
  • matlab滤波器设计

    2020-06-27 22:22:10
  • 打开matlab工具箱 填入相应的参数,然后把结果参数倒入到workspace中获得结果【File-> Export -> Export to 参数(选择[Work space ])】 通过命令[b,a]=sos2tf(Hd.sosMatrix,Hd.ScaleValues); 获得滤波器ab参数 ...
  • 摘 要 介绍了利用 MATLAB 信号处理工具箱进行 FIR 滤波器设计的三种方法程序设计法 FDATool 设计法和 SPTool 设计法给出了详细的设计步骤并将设计的滤波器应用到一个 混和正弦波信号以验证滤波器的性能 关键词 ...
  • 基于Matlab巴特沃斯低通滤波器设计谢继杨(成都理工大学工程技术学院,四川乐山,614000)摘要:现如今已经有相当成熟的技术去模拟滤波器,人们为了更加深入的理解巴特沃斯滤波器,于是巴特沃斯模拟滤波器便基于...
  • 文章目录前言一、在simulink中设计滤波器二、在Matlab中绘制Bode图总结 前言 在使用simulink时难免需要用到滤波器设计与使用,同时为了作图或者其他的需要,我们需要查看滤波器的相频特性,所以一般需要用到...
  • 《自适应滤波器设计Matlab实现附程序代码》由会员分享,可在线阅读,更多相关《自适应滤波器设计Matlab实现附程序代码(7页珍藏版)》请在人人文库网上搜索。1、自适应滤波器设计Matlab实现,附程序代码维纳...
  • 【转载】Matlab 滤波器设计————超级好文!!

    万次阅读 多人点赞 2019-04-18 18:25:04
    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。 滤波器设计的目标是实现数据序列的频率...
  • 摘 要 介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法、FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。...
  • FDAtool工具箱是MATLAB里专门用于生成滤波器工具箱,功能强大,操作十分方便。我们只需要输入滤波器参数,就可以产生对应滤波器的程序以及对应滤波器的参数矩阵。本文将简要介绍FDAtool工具箱,并用生成程序的方式...
  • 基于matlab滤波器设计方法

    千次阅读 2019-05-14 22:42:30
    2、完成滤波器设计之后,点击文件-》Export(导出),快捷键Ctrl+E.弹出以下窗口: step2:点击导出。这样滤波器系数就存到工作区workspace了。 以上是常用的FIR型滤波器,系数只需要b,FIR传函如下: ...
  • MATLAB CIC滤波器仿真

    2019-10-03 22:19:38
    MATLAB代码实现的CIC滤波器及仿真函数,对于CIC滤波器的学习了解有一定参考
  • FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。FIR滤波器是全零点结构,系统永远稳定;并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真。在无线通信收发机中...
  • 滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。滤波器设计的目标是实现数据序列的频率...
  • 本讲在Vivado调用FIR滤波器的IP核,使用上一讲中的matlab滤波器参数设计FIR滤波器,下两讲使用两个DDS产生待滤波的信号和matlab产生带滤波信号,结合FIR滤波器搭建一个信号产生及滤波的系统,并编写testbench进行...
  • IIR数字滤波器是数字信号处理的重要工具之一。利用Matlab信号处理工具箱和使用切比雪夫法设计IIR数字滤波器,并进行仿真。仿真结果表明,设计过程简单方便。
  • 介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法、FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。1 前言数字滤波器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,055
精华内容 1,622
关键字:

matlab滤波器设计工具

matlab 订阅