IIRFilterNode - 表示通用的无限脉冲响应 (IIR)过滤器
IIRFilterNode
是 Web Audio API 的接口,它是一个 AudioNode
处理器,实现了通用的无限脉冲响应(IIR)过滤器;这种类型的滤波器也可用于实现音调控制设备和图形均衡器。它允许指定过滤器响应的参数,以便可以根据需要进行调整。
输入数量 | 1 |
---|---|
输出数量 | 1 |
通道计数模式 | "max" |
通道数 | 1 和输入一样 |
通道解释 | "speakers" |
通常,最好使用 BiquadFilterNode
接口来实现更高阶的过滤器。原因有以下几点:
- 双二阶滤波器通常对数字不太敏感。
- 双二阶滤波器的滤波器参数可以自动化。
- 可以使用
BiquadFilterNode
创建所有偶数阶 IIR 滤波器。
但是,如果需要创建奇数阶 IIR 滤波器,则需要使用 IIRFilterNode
。如果您不需要自动化或其他原因,您可能还会发现此接口很有用。
创建节点后,您无法更改其系数。
IIRFilterNode
有一个尾部时间参考;它们继续以零输入输出非静音音频。作为 IIR 滤波器,它会永远持续输入非零,但在实际中经过一段有限时间后,当输出接近零时,它可能会受到限制。所需的实际时间取决于所提供的滤波器系数。
构造函数
IIRFilterNode()
创建 IIRFilterNode
对象的新实例。
属性
此接口没有自己的属性; 但是,它从其父接口 AudioNode
继承了属性。
方法
从其父接口 AudioNode
继承了方法。它还有以下附加方法:
getFrequencyResponse()
使用滤波器的当前参数设置来计算所提供频率数组中指定频率的响应。
实例
您可以在 Codepen 上找到一个简单的 IIR 过滤器演示。另请参阅 GitHub 上的源代码。它包含不同低通频率的一些不同系数值 - 您可以将 filterNumber
常量的值更改为 0 到 3 之间的值,以查看不同的效果。
另请参阅我们的使用 IIR 过滤器指南以获取完整说明。
规范
规范 | 状态 | 备注 |
---|---|---|
Web Audio API IIRFilterNode 的定义 |
工作草案 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 49 | 支持 | 50 | 不支持 | 36 | 未知 |
IIRFilterNode() 构造函数 | 551 | 未知 | 53 | 不支持 | 42 | 未知 |
getFrequencyResponse | 49 | 支持 | 50 | 不支持 | 36 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 49 | 49 | 支持 | 50 | 未知 | 36 | 未知 |
IIRFilterNode() 构造函数 | 551 | 551 | 未知 | 53 | 未知 | 42 | 未知 |
getFrequencyResponse | 49 | 49 | 支持 | 50 | 未知 | 36 | 未知 |
1. 在版本 59 之前,不支持默认值。