MATLAB 的 designfilt 与黄油函数

信息处理 matlab 脑电图
2022-02-18 00:11:29

我对信号处理比较陌生,并且一直使用 MATLAB 的designfilt选项来满足我的信号处理需求。然而,最近,我看到人们只使用 MATLAB 的黄油函数。我们都主要只是分析 EEG 信号。我只是好奇是什么让他们这样做,因为我目前没有看到上述两个功能之间的主要区别。

同样,我对信号处理还是很陌生。

1个回答

顾名思义,该函数butter用于构造Butterworth IIR 滤波器

该函数designfilt也可用于设计巴特沃斯滤波器,但您可以使用此函数设计其他类型的滤波器。

您需要什么类型的过滤器取决于您的应用。例如,巴特沃斯滤波器在截止频率附近滚降比切比雪夫滤波器或椭圆滤波器要慢,它可能决定您的选择。

从编码人员的角度来看,designfilt即使在构建 Butterworld 过滤器时,使用 也可能更可取。该函数使用名称-值语法并允许创建digitalFilter对象:

d = designfilt(resp,Name,Value)

,ddigitalFilter对象。digitalFilter对象将线性过滤器的所有参数捆绑到一个容器中。该对象digitalFilter是不可变的,创建后,您只能使用通过命令打开的过滤器设计助手对其进行编辑designfilt(d)

另一方面, 的语法butter更简单,滤波器类型突出,函数显式返回系数矩阵。

但最突出的特点butter是,使用语法

[___] = butter(___,'s')

指示选项“s”(将其与用于数字滤波器设计的默认“z”进行对比),butter返回模拟滤波器设计的系数矩阵——根据定义,digitalFilter 对象无法轻易提供。