主要内容

使用滤波器设计

滤波器设计程序是一个强大的用户界面的设计和分析过滤器。滤波器设计允许您快速设计数字FIR和IIR滤波器通过设置滤波器性能规格,通过导入过滤器从MATLAB®工作区或通过添加、移动或删除极点和零点。滤波器设计还提供了工具来分析过滤器,如大小和相位响应情节和pole-zero情节。

开始

打开滤波器设计,类型

filterDesigner
在MATLAB命令提示符。

一个每日一帖对话框显示设计师建议使用过滤器。然后,界面显示一个默认的过滤器。

过滤器Designer界面有三个主要区域:

  • 当前过滤信息

  • 过滤器和显示区域

  • 设计小组

界面的上半部分显示当前过滤器的过滤器规格和响应信息。当前过滤信息区域,在左上角显示过滤器属性,即滤波器结构、秩序、使用的部分数量和过滤器是否稳定。它还提供了访问过滤器管理器使用多个过滤器。

过滤器显示区域,在右上角,显示不同的滤波器响应,如级响应,群时延和过滤系数。

的下半部分界面的交互部分过滤器设计师。设计小组,下半部分是你定义你的过滤器规格。它控制是什么显示在其他两个上游地区。其他面板可以显示下半部分通过使用侧边栏按钮。

该工具包括上下文相关的帮助。您可以右键单击或单击这是什么?按钮来获取信息工具的不同部分。

请注意,当您打开过滤器设计师,设计滤波器不启用。你必须做出改变默认的过滤器设计为了使设计滤波器。这是适用于每一次你想改变滤波器的设计。单选按钮更改物品或下拉菜单项如以下响应类型过滤器订单启用设计滤波器立即。更改规格等文本框Fs,成就,Fstop需要你点击文本框外的启用设计滤波器

选择一个响应类型

你可以选择几种反应类型:

  • 低通滤波器

  • 提出了余弦

  • 高通滤波

  • 带通

  • Bandstop

  • 微分电路

  • 多波段

  • 希尔伯特变换器

  • 任意大小

  • 任意群延迟

  • 见顶

  • 开槽

设计一个带通滤波器,选择旁边的单选按钮带通响应类型地区的应用。

请注意

并不是所有的滤波器设计方法可用于所有响应类型。一旦你选择响应类型,这可能限制滤波器设计方法。滤波器设计方法,没有可供选择的响应类型从设计方法的应用。

选择一个滤波器设计方法

您可以使用默认的响应类型滤波器设计方法你选择,或者你可以选择一个从可用的FIR和IIR滤波器设计方法中列出应用程序的方法。

选择雷算法来计算数字滤波器系数,选择冷杉单选按钮并选择Equiripple列表的方法。

设置过滤器设计规范

查看过滤器规格

滤波器的设计规范,你可以设置根据不同反应类型和设计方法。当您选择显示区域说明过滤规范分析>过滤器规格或者当你点击过滤器规格工具栏按钮。

您还可以查看过滤器规格大小情节设计滤波器的选择视图>规范的面具

过滤器订单

你有两个相互排斥的选项确定订单,当你设计一个equiripple过滤器过滤:

  • 指定的顺序:你在一个文本框输入过滤器订单。

  • 最低订购量滤波器设计方法确定了最低订购量的过滤器。

选择最低订购量对于这个例子单选按钮。

注意过滤器秩序规范的选择取决于您选择的滤波器设计方法。一些滤波器方法可能没有这两个选项。

选项

可用的选项取决于选择的滤波器设计方法。只有冷杉Equiripple和冷杉窗口设计方法有可设置的选择。冷杉Equiripple,选择是密度的因素。看到firpm为更多的信息。冷杉窗口的选项扩展通频带,窗口选择,下面的窗口,一个可设置的参数:

窗口

参数

切比雪夫(chebwin)

旁瓣衰减

高斯(gausswin)

α

皇帝(凯撒)

β

泰勒(taylorwin)

Nbar和旁瓣水平

图基(tukeywin)

α

用户定义的

函数名、参数

您可以查看窗口的窗口可视化工具(WVTool)通过单击视图按钮。

对于这个示例,设置密度的因素16

带通滤波器频率规范

带通滤波器,可以设置

  • 频率的单位:

    • 赫兹

    • 千赫

    • 兆赫

    • GHz

    • 归一化(0,1)

  • 采样频率

  • 通频带的频率

  • 阻带频率

您指定的通带两个频率。第一个频率决定了低通带边缘,和第二频率决定了通带的上边缘。

类似地,您指定的阻带两个频率。第一个频率决定了第一个阻带的上边缘,和第二频率决定了较低的第二个阻带边缘。

对于这个示例:

  • 保持单位赫兹(默认)。

  • 设置采样频率(Fs)2000年赫兹。

  • 设置第一阻带(Fstop1)200年赫兹。

  • 设置通频带的开始(Fpass1)300年赫兹。

  • 设置的通频带(Fpass2)700年赫兹。

  • 设置第二个阻带的开始(Fstop2)800年赫兹。

带通滤波器级规范

带通滤波器,可以指定以下级响应特性:

  • 单位级响应(dB或线性)

  • 通带纹波

  • 阻带衰减

对于这个示例:

  • 保持单位dB(默认)。

  • 设置通带波纹(apas)0.1dB。

  • 设置两个阻带的阻带衰减(Astop1,Astop2)75年dB。

计算滤波器系数

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

注意到设计过滤器按钮被禁用一旦你计算系数的滤波器设计。这个按钮再次启用了一旦你进行任何更改过滤器规格。

分析了过滤

显示过滤器的反应

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

  • 级响应

  • 相位响应

  • 大小和相位响应

  • 群延迟响应

  • 相位延迟响应

  • 脉冲响应

  • 阶跃响应

  • Pole-zero情节

  • ——可以从零相位响应y设在上下文菜单级或大小和相位响应图。

  • 级响应估计

  • 舍入噪声功率谱

级响应估计舍入噪声功率谱内部分析使用过滤器。

上面描述的反应及其相关工具栏按钮和其他滤波器设计工具栏按钮,看看FVTool

你可以通过选择显示两个反应相同的阴谋分析>叠加分析并选择一个可用的反应。第二个y设在右侧添加响应的阴谋。(注意,并不是所有的反应都可以互相覆盖。)

您还可以显示滤波器系数和本地区详细的过滤信息。

所有的分析方法,除了零相位响应,你可以访问它们分析菜单,从上下文菜单中分析参数对话框,或通过使用工具栏按钮。零相位,右键单击y设在的情节和选择零相位从上下文菜单中。

例如,过滤器的大小反应,选择级响应按钮在工具栏上。

你也可以覆盖过滤器规格大小的情节通过选择视图>规范的面具

请注意

您可以使用规范面具FVTool只有FVTool发射滤波器设计。

使用数据提示

您可以单击响应添加情节数据提示显示特定点响应信息。

使用数据提示的信息,请参阅交互式地探索绘制数据

绘制光谱面具

添加光谱面具或拒绝区域行级图,点击视图>用户定义的光谱面具

面具由频率向量和级定义向量。这些向量必须相同的长度。

  • 使面具——选择打开面具显示。

  • 归一化频率——选择规范化频率显示频率范围在0和1之间。

  • 频率向量——输入一个向量的x设在频率值。

  • 级单位——选择所需的大小的单位。这些单位应与使用的单位大小的阴谋。

  • 级矢量——输入一个向量的y设在大小值。

下面的大小反应显示了光谱的面具。

改变采样频率

改变滤波器的采样频率,右键单击任何滤波器响应的阴谋和选择采样频率从上下文菜单中。

改变过滤器的名称,键入新名称过滤器的名字。(在FVTool如果你有多个过滤器,选择所需的滤波器,然后输入新名称。)

改变采样频率,选择所需的单位单位并输入的采样频率Fs。(为每一个过滤器fvtool,你可以指定一个不同的采样频率或采样频率适用于所有过滤器。)

保存显示参数为默认值时使用过滤器设计师或FVTool打开,点击保存为默认

恢复默认值,点击恢复原始默认值

在FVTool显示响应

显示过滤器响应特性在一个单独的窗口中,选择视图>过滤器可视化工具(如果任何分析,除了过滤器规格,显示地区)或单击全视图分析按钮:

这将启动过滤可视化工具(fvtool)。

请注意

如果过滤器规格所示显示区域,单击全视图分析工具栏按钮启动一个MATLAB代替FVTool图窗口。有关详细信息,请参见注释添加到图表。相关的菜单项印刷图,只有在启用显示过滤器规格。

您可以使用这个工具来标注您的设计,查看其他过滤特征和打印滤波器响应。你可以链接过滤设计师和fvtool更改立即反映在fvtool滤波器设计。看到FVTool为更多的信息。

编辑过滤器使用极/零编辑器

显示Pole-Zero情节

您可以编辑设计或进口滤波器的系数通过移动,删除或添加波兰人和/或零使用钢管/零编辑器面板。

请注意

你不能生成MATLAB代码(文件>生成MATLAB代码)如果你的过滤器设计或编辑与杆/零编辑器。

你不能移动量子化的极点和零点。你只能移动参考极点和零点。

单击极/零编辑器按钮栏或选择编辑>极/零编辑器此面板显示。

波兰人显示使用x符号和零显示使用o符号。

改变Pole-Zero情节

情节模式按钮位于左边的杆/零阴谋。选择一个按钮改变模式极/零的阴谋。北极/零编辑这些按钮从左到右:极移动,添加极,添加零和删除杆或零。

以下情节参数和控制位于左边的杆/零下面的情节和情节模式按钮。

  • 获得——因素补偿滤波器的极点(s)和零(s)收益

  • 坐标单位(极地矩形)选择杆或零

  • ——如果极坐标被选中时,所选的极级或零

  • ——如果极坐标被选中时,所选角杆(s)或0 (s)

  • 真正的——如果直角坐标被选中时,真正的选择杆(s)或零组件(s)

  • 虚构的——如果选择直角坐标系中,虚构的成分选择杆或零

  • 部分——multisection过滤器,当前部分

  • 共轭——创建一个相应的共轭极点或零个或自动选择共轭极点或零如果它已经存在。

  • 自动更新——立即更新显示的大小反应两极或添加0时,移动,或删除。

编辑>极/零编辑器项目选择多极/ 0,反相和镜像波兰人/ 0,和删除、缩放和旋转杆/ 0。

移动一个零在纵轴上产生以下结果:

  • 所选零对绿色所示。

  • 当你选择一个零的一对共轭,共轭复选框和共轭自动选中。

  • 级响应图因为立即更新自动更新是活跃的。

将滤波器结构

转换到一个新的结构

您可以使用编辑>转换结构将当前过滤到一个新的结构。所有过滤器都可以转化为如下表示:

  • 直接形式我

  • 直接形式二世

  • 直接形式我转置

  • 直接形式二转置

  • 晶格ARMA

请注意

如果你安装了DSP系统工具箱™产品,您将会看到更多的结构转换结构的对话框。

此外,可用以下转换为特定类型的过滤器:

  • 最小相位FIR滤波器可以转换为点阵最小相位

  • 最大相位FIR滤波器可以转换为点阵最大的阶段

  • 可以转换为点阵Allpass Allpass过滤器

  • 可以转换为点阵ARMA IIR滤波器

请注意

转换从一个过滤器结构到另一个可能产生比原来的结果具有不同特点。这是由于计算机的有限精度算法和转换的舍入的变化计算。

例如:

  • 选择编辑>转换结构打开对话框转换结构。

  • 选择直接形式在列表中过滤结构。

转换成二阶部分

您可以使用编辑>转换为二阶部分存储转换后的滤波器结构为二阶部分的集合而不是单一的高阶结构。

请注意

也用于以下选项编辑>二阶部分重新排序和规模,您可以用它来修改一个SOS滤波器结构。

以下规模第二选项可用当转换直接形式结构只有:

  • 没有一个(默认)

  • l2(l2规范)

  • L-infinity(l规范)

方向(向上下来)确定二阶节的顺序。根据最优排序的变化规模选项选中。

例如:

  • 选择编辑>转换为二阶部分打开转换为SOS对话框。

  • 选择L-infinity规模菜单l规范扩展。

  • 离开向上随着方向选择。

    请注意

    从二阶部分转换为单个部分,使用编辑>转换为单节

输出滤波器的设计

输出系数或对象到工作区

您可以保存滤波器作为滤波器系数变量或过滤系统™对象变量。对MATLAB工作区保存过滤:

  1. 选择文件>出口。导出对话框。

  2. 选择工作空间出口到菜单。

  3. 选择系数出口的菜单保存滤波器系数或选择系统对象保存过滤器在过滤系统对象。

  4. 系数的分配使用的变量名分子(FIR滤波器)分子分母(用于IIR滤波器),或SOS矩阵范围值(IIR滤波器的二阶节形式)文本框在变量名地区。

    系统对象,分配的变量名离散滤波器(量子化的过滤器)文本框中。如果你有工作空间中的变量使用相同的名称,你想覆盖,选择覆盖变量复选框。

  5. 单击出口按钮。

输出系数一个ASCII文件

将滤波器系数保存到一个文本文件,

  1. 选择文件>出口。导出对话框。

  2. 选择系数文件(ASCII)出口到菜单。

  3. 单击出口按钮。导出滤波器系数.FCF文件对话框。

  4. 选择或输入一个文件名,然后单击保存按钮。

系数是保存在您指定的文本文件,和MATLAB显示编辑器打开该文件。文本文件还包含评论与MATLAB版本号,信号处理工具箱™版本号,和过滤信息。

出口MAT-File系数或对象

保存滤波器系数MAT-file或过滤器对象变量:

  1. 选择文件>出口。导出对话框。

  2. 选择MAT-file出口到菜单。

  3. 选择系数出口的菜单保存滤波器系数或选择对象拯救一个过滤器的过滤对象。

  4. 系数的分配使用的变量名分子(FIR滤波器)分子分母(用于IIR滤波器),或SOS矩阵范围值(IIR滤波器的二阶节形式)文本框在变量名地区。

    为对象,分配的变量名离散滤波器(量子化的过滤器)文本框中。如果你有工作空间中的变量使用相同的名称,你想覆盖,选择覆盖变量复选框。

  5. 单击出口按钮。出口MAT-File对话框。

  6. 选择或输入一个文件名,然后单击保存按钮。

出口到金宝app模型

如果你有仿真软件金宝app®产品安装,你可以导出你的过滤器设计和仿真软件块插入到新的或现有的仿真软件金宝app模型。

您可以导出一个过滤器设计使用任何滤波器设计方法在滤波器设计应用程序。

请注意

如果你有DSP系统工具箱和定点设计师™安装,您可以导出CIC滤波器仿真软件模型。金宝app

  1. 设计滤波器后,单击实现模型侧边栏按钮或选择文件>出口到仿真软件模型金宝app。面板显示的实现模型。

  2. 在指定要使用的名称块名称

  3. 将块插入到当前选择(最近)仿真软件模型,设置金宝app目的地当前的。嵌入块到一个新的模型,选择。将块插入到一个用户定义的子系统,选择用户定义的

  4. 如果你想覆盖一块以前创建的从这个小组,检查覆盖生成“过滤器”

  5. 如果您选择了使用基本要素构建模型复选框,你作为创建过滤器子系统(金宝app模型)块,使用单独的子元素。在这种模式下,以下优化(s)是可用的:

    • 优化零收益——删除新鲜感获得路径从滤波器结构。

    • 优化统一收益-替代电线(短路)收益等于1的滤波器结构。

    • 优化负收益——替代电线(短路)收益等于1和改变相应增加,减少过滤结构。

    • 优化延迟链——替代延迟链组成的n与单延迟单元的延迟n

    • 优化统一尺度值——删除乘法刻度值等于1的滤波器结构。

    下面的插图显示了一些优化的影响:

    优化效果

    请注意

    使用基本要素构建模型复选框启用只有当你有一个DSP系统工具箱许可证和过滤器可以使用数字滤波器设计模块库。有关更多信息,请参见滤波器实现向导

  6. 设置输入处理参数指定是否生成过滤器执行示例——或框架处理输入。根据你设计的滤波器类型,一个或两个以下选项可用:

    • 基于列渠道(框架)——当您选择此选项,块把每一列输入作为一个单独的通道。

    • 基于元素通道(样本)——当您选择此选项,块把输入的每个元素作为一个单独的通道。

  7. 单击实现模型按钮来创建过滤器。当使用基本要素构建模型复选框被选中时,滤波器设计实现了滤波器作为一个子系统块使用总和(金宝app模型),获得(金宝app模型),延迟(金宝app模型)块。

如果你双击模型过滤器,过滤器结构显示出来。金宝app

其他方法来导出一个过滤器

你也可以把你的过滤器C头文件或生成MATLAB代码从命令行构建你的过滤器。有关详细说明,请参见以下部分:

生成一个C头文件

你可能想要在外部C程序包含过滤信息。与变量创建一个C头文件包含滤波器参数数据,遵循这个过程:

  1. 选择目标>生成C头。生成C标题对话框。

  2. 输入变量名中使用C头文件。特定的滤波器结构决定了变量创建的文件

    滤波器结构

    可变参数

    直接形式我
    直接形式二世
    直接形式我转置
    直接形式二转置

    分子,分子长度*,分母,分母长度*,和数量的部分(如果过滤器只有一个不活跃的部分)

    晶格ARMA

    晶格多项式系数,晶格多项式系数的长度*,梯子多项式系数,梯子多项式系数*长度,数量的部分(如果过滤器只有一个不活跃的部分)

    格马

    晶格多项式系数,晶格多项式系数*长度,和数量的部分(如果过滤器只有一个不活跃的部分)

    直接形式冷杉直接形式冷杉转置

    分子,分子长度*,和数量的部分(如果过滤器只有一个不活跃的部分)

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

    请注意

    变量名不能C语言保留字,如“。”

  3. 选择出口的建议使用建议的数据类型或选择出口的并从下拉选择所需的数据类型。

    请注意

    如果你没有DSP系统工具箱软件安装,选择双精度浮点结果以外的任何数据类型的过滤不完全匹配你的过滤器设计设计师。这是由于舍入和删除差异。

  4. 点击生成生成C头文件。点击关闭关闭对话框。

生成MATLAB代码

你可以生成MATLAB代码构造滤波器设计滤波器设计师从命令行。选择文件>生成MATLAB代码>滤波器设计函数并指定的文件名生成对话框MATLAB代码。

请注意

你不能生成通过MATLAB代码文件>生成MATLAB代码>滤波器设计功能(与系统对象)或通过文件>生成MATLAB代码>数据过滤功能(与系统对象),如果你的过滤器设计或编辑与杆/零编辑器。

下面是生成的MATLAB代码当你选择文件>生成MATLAB代码>数据过滤功能(与系统对象)在本例中为equiripple带通滤波器设计。

高清= ExFilter % ExFilter函数返回一个离散时间过滤对象。% MATLAB代码%由MATLAB 9.1 (R)和DSP系统工具箱9.3。%上生成:17 - 11月- 2016 14:55:28 % Equiripple带通滤波器设计使用FIRPM函数。%在赫兹频率值。Fs = 2000;%采样频率Fstop1 = 200;%的第一个阻带频率Fpass1 = 300;%的第一个通带频率Fpass2 = 700;%的第二个通带频率Fstop2 = 800;%的第二个阻带频率Dstop1 = 0.000177827941; % First Stopband Attenuation Dpass = 0.0057563991496; % Passband Ripple Dstop2 = 0.000177827941; % Second Stopband Attenuation dens = 16; % Density Factor % Calculate the order from the parameters using FIRPMORD. [N, Fo, Ao, W] = firpmord([Fstop1 Fpass1 Fpass2 Fstop2]/(Fs/2), [0 1 ... 0], [Dstop1 Dpass Dstop2]); % Calculate the coefficients using the FIRPM function. b = firpm(N, Fo, Ao, W, {dens}); Hd = dsp.FIRFilter( ... 'Numerator', b); % [EOF]

在当前会话管理过滤器

你可以存储在当前过滤器过滤器设计设计师会话为层叠在一起,出口FVTool或召回后的相同或未来的滤波器设计会议。

你存储和访问保存的过滤器存储滤波器过滤器管理器按钮,分别在当前过滤信息面板中。

存储滤波器——显示存储过滤对话框中指定过滤器的名字时使用存储过滤器的过滤器管理器。默认的名字是过滤器的类型。

过滤器管理器——打开过滤器管理器。

下面列出当前过滤器列表框。改变当前过滤器,突出所需的滤波器。如果您选择编辑当前过滤器、过滤设计师显示当前选择的过滤器规格。如果你做任何修改规格,立即更新存储滤波器。

级联两个或两个以上的过滤器,突出所需的过滤器和新闻级联。一个新的级联滤波器被添加到过滤器管理器。

改变存储过滤器的名称,出版社重命名。重命名过滤器对话框显示。

删除存储从过滤器管理器过滤,出版社删除

出口一个或多个过滤器FVTool,突出过滤器(s)和新闻FVTool

保存和打开过滤器设计会议

您可以保存您的过滤器设计会话MAT-file同一会话并返回到另一个时间。

选择保存会话按钮作为一个MAT-file保存会话。你第一次保存会话,会话保存滤波器设计浏览器打开,提示你输入一个会话名称。

例如,保存设计会议TestFilter.fda在当前工作目录中输入TestFilter文件名称字段。

.fda扩展是自动添加所有过滤器设计会话保存。

请注意

您还可以使用文件>保存会话文件>保存会话拯救一个会话。

现有会话加载到可以通过选择滤波器的设计和分析工具公开会议按钮,公开会议按钮,文件>公开会议。加载滤波器设计会话浏览器打开,允许您选择从你以前保存的过滤器设计会议。

相关的话题