IIRFilterNode

Baseline 已广泛支持

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

Web Audio API 中的 IIRFilterNode 接口是一个 AudioNode 处理器,它实现了一个通用的无限冲激响应 (IIR) 滤波器;这类滤波器也可用于实现音调控制设备和图形均衡器。它允许指定滤波器的响应参数,以便根据需要进行调整。

EventTarget AudioNode IIRFilterNode
输入数量 1
输出数量 1
通道计数模式 "max"
声道数 与输入端相同
通道解释 “speakers”

通常,最好使用 BiquadFilterNode 接口来实现高阶滤波器。有几个原因:

  • 双二阶滤波器通常对数值的微小变化不太敏感。
  • 双二阶滤波器的滤波器参数可以被自动化。
  • 所有偶数阶 IIR 滤波器都可以使用 BiquadFilterNode 创建。

但是,如果您需要创建奇数阶 IIR 滤波器,则需要使用 IIRFilterNode。如果您不需要自动化,或者出于其他原因,您也可能会发现此接口很有用。

注意:一旦节点被创建,您就无法更改其系数。

IIRFilterNodes 具有一个尾部时间参考;它们会持续输出非静音的音频,即使输入为零。作为 IIR 滤波器,非零输入会永远持续下去,但在实际应用中,当输出足够接近零时,可以将其限制在某个有限时间内。实际需要的时间取决于提供的滤波器系数。

构造函数

IIRFilterNode()

创建一个新的 IIRFilterNode 对象实例。

实例属性

此接口本身没有属性;但是,它继承了其父接口 AudioNode 的属性。.

实例方法

继承了其父接口 AudioNode 的方法。它还具有以下附加方法:

getFrequencyResponse()

使用滤波器当前的参数设置,为提供的频率数组中指定的频率计算响应。

示例

您可以找到一个简单的 IIR 滤波器演示。还可以查看GitHub 上的源代码。它包含了一些针对不同低通频率的系数,您可以更改 filterNumber 常量的值(在 0 和 3 之间)来查看不同的可用效果。

还可以参阅我们的使用 IIR 滤波器指南以获得完整的解释。

规范

规范
Web Audio API
# IIRFilterNode

浏览器兼容性

另见