主要内容

设计滤波器

在实时编辑器中设计一个数字过滤器

描述

设计滤波器帮助您交互式地设计数字滤波器。任务自动生成并运行MATLAB®类来设计筛选器digitalFilter对象。

首先,选择一个筛选器响应类型。该任务提供了用于指定筛选器参数的控件,这些参数取决于筛选器响应的类型,包括:

  • 过滤器订单

  • 频率约束

  • 大小限制

  • 设计方法

从显示选项列表中选择,以可视化生成的筛选器响应和其他筛选器信息。有关过滤器约束、设计方法和设计方法参数的详细描述,请参见designfilt文档。

有关实时编辑器任务的详细信息,请参见在活动脚本中添加交互式任务

打开任务

要添加设计滤波器任务到MATLAB编辑器中的实时脚本:

  • 住编辑器选项卡上,选择设计滤波器

  • 在脚本中的代码块中,键入相关的关键字,例如designfilt过滤器,或低通滤波器.选择设计滤波器从建议的命令补全。

例子

全部展开

方法的使用设计滤波器在实时编辑器中生成数字过滤器的代码。该任务帮助您交互式地设计数字滤波器,显示滤波器响应,并生成代码。

创建或加载信号

在实时编辑器中,将噪声心电图(ECG)信号加载到MATLAB®工作空间中。绘制数据图。

负载noisyecg情节(noisyECG_withTrend)

图中包含一个轴对象。axis对象包含一个line类型的对象。

心电信号有噪声。有几种噪声源可以影响信号,包括运动伪影、高频噪声和电源干扰。交互式设计一个滤波器来去除信号中的噪声。在住编辑器选项卡,展开任务列出并选择设计滤波器打开任务。

利用Kaiser窗设计低通FIR滤波器

要去除高频噪声,首先选择a低通滤波器冷杉筛选,并指定订单作为10.频率、幅度和算法参数的可用选项取决于所选的滤波器响应类型和滤波器顺序。

低通滤波器从输入信号中去除超出指定阈值的不需要的频率内容。在指定频率参数部分中,选择截止(6dB)频率频率约束列表。当采样率已知时,可以进行选择赫兹频率的单位列表。一个采样率选项将出现,您可以从工作区中的变量中选择抽样率。在本例中,采样率未知,因此指定归一化截止频率为0.3rad /样品。

对于FIR低通滤波器,在指定震级参数节中,可以指定约束来控制通带纹波和阻带衰减量。选择通带纹波和阻带衰减大小限制列表。幅度约束和滤波器顺序也会影响滤波器的过渡宽度。

任务选择一个FIR约束最小二乘根据指定的频率和幅度参数默认设计算法。将设计选项保持默认设置。

显示筛选器响应部分中,选择幅度和相位而且群时延使设计的滤波器响应可视化。在幅值图中,可以看到阻带中的衰减水平为60 dB。群延迟图显示了5个样本的延迟,并且滤波器是线性相位的。

的下面的箭头显示筛选器响应部分显示为设计的筛选器生成的代码。您可以在命令行上复制并粘贴代码,以手动编辑筛选器设计规范。

将所设计的滤波器应用于有噪声的心电信号。考虑滤波器引入的延迟并绘制结果。

负载designedFilterfilteredECG = filter(设计过滤器,noisyECG_withTrend);delay = grpdelay(designdfilter);Mdelay = mean(delay);filteredECG(1:mdelay) = [];情节(noisyECG_withTrend (1: end-mdelay))情节(filteredECG)传说([“原始”“过滤”)举行

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始的、过滤的。

设计等纹波带阻FIR滤波器

像心电图监护仪这样的医疗设备可能会受到电磁干扰的影响。电源的工作频率一般为50hz或60hz。在这个例子中,从MIT-BIH心律失常数据库中提取的心电信号中加入了一个60 Hz的正弦波作为噪声[1].采样率为360hz。要消除噪音,请打开设计滤波器设计了一个最小阶带阻FIR滤波器。将默认筛选器名称更改为bandstop60Hz

指定频率的单位作为赫兹.若要指定抽样率,请输入值或从列表中选择抽样率变量。要出现在列表中,必须将采样速率变量保存在工作空间中。创建一个变量,fs,令它等于360Hz,然后选择fs采样率列表。指定通带和阻带频率值,以衰减中心为60hz的10hz陷波滤波器在55 - 65hz之间的频率。

Fs = 360;

设置通带纹波2 (dB)0.5并增加阻带衰减(dB)80

该任务默认为等纹波设计方法。显示滤波器的幅值和相位响应。

您也可以选择过滤信息显示筛选器响应节查看有关所设计筛选器的其他详细信息。

负载ecg60Hz进入工作区。mat文件包含原始ECG信号,并添加了噪声(ecg60)和滤波后的信号(ecgFilt).绘制两个信号以可视化滤波结果。

负载ecg60HzT = 0:1/fs:(length(ecg60)-1)/fs;plot(t,[ecg60 ecgFilt])“原始”“过滤”])

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始的、过滤的。

参数

选择以下过滤器响应类型之一:

  • 低通滤波器冷杉

  • 低通滤波器信息检索

  • 高通的冷杉

  • 高通的信息检索

  • 带通冷杉

  • 带通信息检索

  • Bandstop冷杉

  • Bandstop信息检索

  • 希尔伯特变压器FIR

  • 微分器冷杉

设计最小阶滤波器或指定滤波器阶数。有些响应可能没有可用的最小订单设计,并要求您指定筛选器订单值。

指定所设计滤波器显示所需行为的频率。可用选项取决于筛选器响应类型和筛选器顺序。

请注意

你可以指定频率的单位作为标准化(0到1)(默认)或赫兹.如果指定以赫兹为单位的频率单位,则必须指定采样率。

选择滤波器在指定频率范围内的幅度响应行为。可用选项取决于滤波器响应类型、滤波器顺序和频率约束。

指定用于设计过滤器的算法。可用选项取决于滤波器响应类型、滤波器顺序以及频率和幅度约束。中的某些设计方法具有其他可用选项设计选项部分。

请注意

在一些设计案例中,存在模型顺序限制。如果所选设计方法存在偶数或奇数限制,且指定的顺序无效,则任务将顺序减1。

提示

  • 您可以通过单击任务窗口右上角的圆圈来切换自动运行选项。如果启用了自动运行,则在进行更改时,包括任务在内的当前部分将自动运行。

参考文献

[1]穆迪,g.b.和R.G.马克。MIT-BIH心律失常数据库的影响。IEEE工程学报20(3):45-50(2001):45-50。

版本历史

R2021b中引入