首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >有反馈的新世界:IIR 滤波器

有反馈的新世界:IIR 滤波器

作者头像
云深无际
发布2026-01-07 11:31:04
发布2026-01-07 11:31:04
1.1K0
举报
文章被收录于专栏:云深之无迹云深之无迹

大家这个学习的劲头太足了,然后赶紧把 IIR 补上,还有人说一些其它的滤波器,我怎么可能不知道,只是说这俩种工程上面非常的成熟而已。

数字滤波器的半壁江山:与 FIR 告别

IIR 是什么?

IIR = Infinite Impulse Response Filter中文:无限冲激响应滤波器

意思是:

它的输出不仅取决于当前输入信号,也取决于过去的输入和过去的输出

这与 FIR(有限冲激响应)不同,FIR 只会“记住”有限个输入样本,而 IIR 有反馈,所以它的“记忆”理论上无限长。

其中「无限冲激响应」的由来

想象你在山谷中大喊一声“啊——”,声音会回荡几次再慢慢消失,每次回声比上一次更小一点。 现在把这想成一个滤波器:

当前的声音(输入信号) → 新样本 x[n]

上一次回声(上次输出) → 反馈信号 y[n-1]

系统把它们加起来、衰减、再输出 → 当前输出 y[n]

于是:

每次输入都会“留下一点尾巴”;下一次又叠加新的输入;尾巴越来越短,但永远不完全消失;它对一个冲激输入的反应永远在回荡、渐渐消失。

工作原理

它会把输入信号和它自己“过去的输出”混在一起,再加权相加,不断地循环反馈,让信号中某些频率成分相互抵消、衰减、或者增强。

为什么它能滤波?

滤波器本质上是“让某些频率容易通过,让某些频率难通过”;而“反馈”就是调节这种频率特性的关键:如果把过去输出加回来,就会让某些频率叠加共振(放大);如果把过去输出反相加回来,就会让某些频率相互抵消(衰减)。

这样,通过调整反馈系数 ,IIR 能够在频率上形成“”和“”,最终实现低通、高通、带通等各种频率选择。

IIR 滤波器的数学表达式

离散时间域公式:

或者写成:

其中:

参数

含义

当前与过去的输入样本

当前输出

前向(feedforward)系数

反馈(feedback)系数

分别为前向与反馈阶数

滤波器工作的动态过程(逐样更新)

设滤波器公式:

每来一个新样本:取当前输入 (最新信号);加上一点过去的输入 ;减去一点过去的输出 (反馈);得出新的 ,输出给下一次使用

就这样:

当前输出不仅取决于现在的输入,还“记得”过去的输入和输出。

工作机制总结成“三步”:

步骤

操作

含义

接收当前样本

采到一个新的数据点

取一部分过去输出 反馈回来

让系统记忆过去的状态

按权重加权求和,输出新的

得到新的滤波结果

这就是 IIR 在数字信号处理器(DSP)中的实时执行过程。

对应的系统函数(Z 域)

通过 Z 变换得:

特点:分子部分代表输入(前向路径);分母部分代表反馈(回授路径) → 因此它的冲激响应是无限长(IIR)

举个常见的例子:低通滤波器

最简单的一阶低通:

当 α 接近 1 → 过去输出影响大 → 输出变化慢(只保留低频)

当 α 小 → 响应快 → 高频变化也能通过;所以调节 α 就是在调节“截止频率”。

举例:

α=0.9 → 低通,平滑噪声;α=0.2 → 高频容易通过,不太平滑。

与 FIR 的直观区别

特性

FIR

IIR

是否反馈

无反馈

有反馈

“记忆”

有限长度(只看过去输入)

无限长度(也记过去输出)

响应

会在有限时间内归零

可能无限衰减(有回声)

相位

可线性相位

一般非线性相位

运算量

较多

较少(效率高)

稳定性

总是稳定

必须保证反馈系数合适(极点在单位圆内)

所以:

FIR 是“平滑的滤波”;IIR 是“聪明的滤波”(记忆和反馈使它更高效,但要小心稳定性)。

反馈系数必须合适(极点在单位圆内)

因为是反馈的结构,所以自然而然的有稳定性问题; 它的输出不仅依赖于输入 ,还依赖于过去的输出 :

其中的 a₁, a₂, …, a_N 是反馈系数;这些反馈会“让滤波器记住过去”,也就是“无限冲激响应”的来源。(再说一次)但是如果反馈太强,输出就会无限放大或振荡,系统就不稳定;这时,信号还没输入,滤波器就自己乱套了。

数学解释:极点(Pole)与单位圆

IIR 的系统函数(Z 域表达式)为:

其中 的根就是滤波器的**极点 (poles)**;极点的位置决定了滤波器的稳定性。

稳定条件:

所有极点必须在 单位圆以内(|p| < 1)

原因:

单位圆表示离散系统的“自然频率界限”;

若极点落在单位圆内 → 响应会随时间衰减 → 稳定;

若极点在圆上 → 响应永不衰减 → 振荡;

若极点在圆外 → 响应随时间放大 → 系统发散。

z 平面:单位圆与极点位置
z 平面:单位圆与极点位置

z 平面:单位圆与极点位置

简单一阶 IIR 例子

其系统函数:

极点在 。 稳定条件:

a₁

极点位置

稳定性

时域表现

0.5

圆内

稳定

响应指数衰减

1.0

在圆上

临界稳定

永不衰减

1.1

圆外

不稳定

响应爆炸性增长

二阶 IIR(双二阶节)例子

极点位置:

稳定条件:

这是每个二阶节(biquad)在 IIR 设计中必须检查的稳定性标准。

稳定性总结

IIR 滤波器的反馈系数必须保证极点落在单位圆内。否则,反馈信号不会衰减而会持续放大,导致滤波器输出振荡或发散。极点越接近单位圆,系统越“尖锐”(Q 值越高),极点越靠中心,系统越平滑、响应越快。

不同的冲激响应

image-20251015160250457
image-20251015160250457
image-20251015160259000
image-20251015160259000
image-20251015160311478
image-20251015160311478

冲激响应 y[n](一阶 IIR:)

稳定(|p|<1,示例 p=0.8):指数衰减并收敛到常数。

临界(|p|=1,示例 p=1.0):不衰减,保持在常数水准。

不稳定(|p|>1,示例 p=1.1):指数增长,发散。

当极点是复共轭对时(即滤波器产生振荡响应)的三种情况

image-20251015160606257
image-20251015160606257

稳定(|p| < 1, r = 0.8)

振荡幅度 逐渐减小;响应为“指数衰减振荡”;表示系统能量逐步耗散。

image-20251015160614674
image-20251015160614674

临界(|p| = 1, r = 1.0)

振荡幅度 保持恒定;响应是“恒幅正弦”;系统不发散也不衰减,处于边界稳定状态。

image-20251015160622271
image-20251015160622271

不稳定(|p| > 1, r = 1.05)

振荡幅度 指数增长;响应越来越强;系统反馈能量持续放大,最终发散。

极点的模(|p|)控制系统能量是“衰减、保持还是增长”;极点的角度(∠p = ω₀)决定系统的振荡频率。

因此:在单位圆内部:振荡会衰减 → 稳定;在单位圆:振荡恒幅 → 临界稳定;在单位圆:振荡放大 → 不稳定。

常见 IIR 滤波器家族(以Moku仪器为例子)

这个仪器是多合一的
这个仪器是多合一的

这个仪器是多合一的

类型

特点

频率响应形状

Butterworth

通带最平坦(无波纹),相位中等平滑

平滑“砖墙”

Chebyshev I

通带有波纹,过渡带更陡

陡峭但带内起伏

Chebyshev II

通带平滑,阻带有波纹

阻带优化型

Elliptic (Cauer)

通带、阻带都有波纹,最陡峭

高选择性

Bessel

相位线性最佳,但过渡带最宽

时间响应最平滑

Legendre / Gaussian

优化相位或时域平滑

特殊控制用

Moku 的 Digital Filter Box 内部就是通过选择这些滤波族 → 计算系数 → 实时更新 DSP 滤波结构。

可视化也很直观,直接选择对应的参数
可视化也很直观,直接选择对应的参数

可视化也很直观,直接选择对应的参数

IIR 的实现结构(常用三种)

直接形式 I(Direct Form I)

代码语言:javascript
复制
输入 → 加权 b0,b1,b2 → 求和 → 输出
                  ↑
                 a1,a2 反馈

优点:直观 缺点:对高阶滤波器不稳定(数值误差放大)

直接形式 II(Direct Form II)

合并延迟线,节省存储空间(Moku 常用)

二阶节(Biquad)结构(实际工程标准)

高阶滤波器由多个 2 阶节(Biquad)串联组成:

每节独立计算 → 稳定性好,易于实时调节;Moku Filter Box 内部就是用 Biquad 串联形式实现的 IIR。

高阶滤波器的单元:Biquad(biquadratic filter)

在设计高阶 IIR 滤波器(比如 6 阶、8 阶、10 阶)时,直接实现完整高阶差分方程会:对数值精度极其敏感(浮点或定点误差导致振荡);难以调试与控制稳定性。

为了稳定可靠,工程上会把高阶滤波器拆成多个二阶滤波单元,每个单元称为一个 “二阶节(Second-Order Section, SOS)”,或简称 Biquad(biquadratic filter)。

Biquad 的数学形式

二阶 IIR 滤波器的通用差分方程:

其 Z 域传递函数为:

结构框图(信号流向)

直接型(Direct Form I)

代码语言:javascript
复制
          ┌──────┐
x[n] ─▶──▶×b0 ─┬─▶───┐
       ┌──▶×b1 ─┼──▶Σ│
       │  └▶×b2 ─┘    │
       │              ▼
       │          z⁻¹ 延迟线
       │              │
       │              ▼
       │          z⁻¹ 延迟线
       └──────────────┘
      反馈系数 a₁, a₂ 回到输入端

转置型(Transposed Form II)

是最常用的 FPGA / DSP 实现结构:

代码语言:javascript
复制
x[n] ─▶─●─┬───────────┬───────────┐
        │ │           │           │
       ×b0 ×b1z⁻¹     ×b2z⁻²     ▼
        │   │           │      Σ─▶ y[n]
        │   │           │      ▲
        └───┴─────×a₁───┴──×a₂─┘

它的特点是:

只需两个延迟寄存器;运算并行、延迟短;稳定性好、数值精度高。

现代 ADC(如 ADS127L21)或 DSP(如 SHARC)内部的 IIR 滤波器就是由多个转置型 biquad 级联组成的。

在后面有滤波器的结构
在后面有滤波器的结构

在后面有滤波器的结构

为什么叫 “biquadratic”

“Biquadratic” 的字面意思是:

“二次项分子 + 二次项分母”的系统。

因为:

分子、分母都是二次(quadratic)方程→ 所以“bi-quadratic”(两个二次方程)简称 biquad

高阶滤波器的分解

任何 N 阶 IIR 都可以分解成若干 biquad:

总阶数

拆解形式

4 阶

2 个 biquad

6 阶

3 个 biquad

8 阶

4 个 biquad

10 阶

5 个 biquad

每个节内部独立,整体输出为级联形式:

这样做的好处:

每个 biquad 的极点可单独控制;调试更稳定;系数量可控;数值精度更高(定点时尤其明显)。

实际高通二阶节

分子零点在 ±ω₀ 处 → 高通;分母极点在单位圆内 → 稳定;响应陡峭、振铃轻微;实现时只需两个延迟、四个乘法、三个加法。

二阶节(Biquad)结构 是实现 IIR 滤波器的标准模块,每个节都实现一个二阶传递函数,具有 2 个极点 + 最多 2 个零点。

IIR 的频率响应特性

由系统函数 计算:

典型特征:

截止带陡峭;通带/阻带波纹取决于滤波族;相位非线性(延迟随频率变化);稳定性依赖于极点位置(必须在单位圆内)。

IIR滤波器能在更低阶数下实现更陡峭的频率选择性

什么叫“频率选择性陡峭”?

滤波器的主要任务是区分:想要的频率(通带),不想要的频率(阻带)

理想情况下希望:

通带 → 完全通过

阻带 → 完全抑制

过渡带 → 越窄越好(越“陡”越“好”)

为什么 IIR 可以“更低阶”实现同样的效果?

关键在于:

IIR 有反馈,而 FIR 没有。

FIR:只依赖输入信号 → 响应有限;

IIR:还依赖过去的输出 → 可以“反复利用能量”,让频率响应更陡峭。

数学上:

FIR → 只有分子 :平滑、有限、过渡带较宽;

IIR → 多了分母 :可形成极点(poles),让响应陡峭;极点越靠近单位圆 → 滤波器越“尖锐”。

频率响应比较示例(公式层面)

FIR 低通(举例):

曲线

→ 没有极点,靠系数叠加构造“近似砖墙”滤波器。 → 阶数越高,过渡带才会更窄。

IIR 低通(举例):

→ 由极点位置决定过渡陡度; → 阶数 N 越大,响应越陡;但即便 N=4,也已经很“锐利”。

工程上的选择

项目

FIR

IIR

资源(FPGA DSP slice)

多(几十个乘法器)

少(几个乘法器)

计算延迟

功耗

相位响应

线性

非线性(可补偿)

稳定性

天生稳定

需保证极点在单位圆内

所以在实际设计中常见的策略:前端抗混叠、过采样 → 用 IIR(Butterworth / Chebyshev);后端高精度滤波、均衡 → 用 FIR(线性相位)。

IIR 滤波器 通过反馈形成极点,使频率响应能量集中,只需更低阶数即可实现更陡峭的截止特性。它的优势是计算效率高、滤波陡峭;代价是相位非线性,需要注意稳定性(极点必须在单位圆内)。

对比
对比

对比

在相同截止频率(100 Hz)下:

IIR(4 阶 Butterworth):截止处非常陡峭,只用 4 阶就能达到接近“砖墙”的效果;说明反馈极点让响应更尖锐。

FIR(40 阶 Hamming 窗):过渡带较宽,衰减更平滑;即使 10 倍以上的阶数,也没有 IIR 那么陡峭。

IIR 通过反馈形成极点 → 更高的“频率选择性”;FIR 靠线性叠加实现近似 → 需要更多抽头、更高阶。 这就是为什么在资源受限或带宽要求高的系统里,通常选择 低阶 IIR 作为主滤波结构。

IIR 滤波器的时域特性

image-20251015163602386
image-20251015163602386

随时间指数衰减,有“尾迹”——这就是 IIR 的 “无限冲激响应”。

image-20251015163610344
image-20251015163610344

稳态值 ≈ 1.0000(单位阶跃)

最大超调 ≈ ~几 %(Butterworth 高阶会有轻微超调)

1% 稳定时间:在图中已标出(代码按“连续 50 ms 进入 ±1% 带”统计)

代码语言:javascript
复制
—— 阶跃响应关键指标 ——
稳态值 ≈ 1.000000
最大超调 ≈ 11.907 %
1% 稳定时间(连续50 ms判据)≈ 0.0200 s
image-20251015163629800
image-20251015163629800

对多频正弦(50 Hz + 200 Hz) 的瞬态响应:输出中 200 Hz 分量迅速被压低,50 Hz 基本保留。

image-20251015163636207
image-20251015163636207
代码语言:javascript
复制
—— 白噪声方差对比 ——
输入方差 ≈ 0.9567
输出方差 ≈ 0.1824
方差变化(dB)≈ -7.20 dB  (负值=方差降低)

对白噪声的时域平滑:方差从 0.9567 降到 0.1824,对应 ≈ −7.20 dB 的方差降低(等价于时域能量的减少),直观看到波形被平滑。

后记

感谢大家看到这里,最后写一点 ADC 的东西。

在高精度测量、音频或工业控制中, ADC(模数转换器)采集的信号经常会受到噪声、干扰、以及混叠 (aliasing) 的影响。

传统做法是:在 ADC 前加 **模拟抗混叠滤波器 (Analog AAF)**;在 ADC 后用 FPGA / DSP 实现数字滤波器

但问题是:模拟滤波器设计复杂、体积大;FPGA 滤波消耗功耗、开发周期长;传统 Δ-Σ ADC 内部滤波器不可修改。

因此,现在大家都是推出了新架构的 Δ-Σ ADC(如 ADS127L21),它在芯片内部集成了 可编程 FIR + IIR 数字滤波器;用户可以在 ADC 内直接实现自定义滤波功能,无需外部 FPGA 或模拟滤波电路。

Δ-Σ ADC 中的数字滤波器

Δ-Σ ADC(如 ADS127L11 / ADS127L21)依赖过采样 (Oversampling) 来提升分辨率。

内部数字滤波器执行:

  1. 低通滤波;
  2. 抽取 (Decimation)。

常见两种数字滤波结构:

类型

特征

应用

sinc 滤波器

结构简单,响应单调,延迟短

慢速、直流测量(传感器)

宽带滤波器 (Wideband FIR)

通带平坦,过渡带陡峭

音频、测试测量、高速采样

散会
散会

散会

从ADS127L18 看宽带滤波器

Σ-Δ型ADC内的宽带数字滤波器(Wideband FIR)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IIR 是什么?
    • 其中「无限冲激响应」的由来
  • 工作原理
  • 为什么它能滤波?
  • IIR 滤波器的数学表达式
  • 滤波器工作的动态过程(逐样更新)
  • 工作机制总结成“三步”:
  • 对应的系统函数(Z 域)
  • 举个常见的例子:低通滤波器
  • 与 FIR 的直观区别
  • 反馈系数必须合适(极点在单位圆内)
  • 数学解释:极点(Pole)与单位圆
    • 稳定条件:
    • 简单一阶 IIR 例子
    • 二阶 IIR(双二阶节)例子
  • 稳定性总结
  • 不同的冲激响应
  • 当极点是复共轭对时(即滤波器产生振荡响应)的三种情况
    • 稳定(|p| < 1, r = 0.8)
    • 临界(|p| = 1, r = 1.0)
    • 不稳定(|p| > 1, r = 1.05)
  • 常见 IIR 滤波器家族(以Moku仪器为例子)
  • IIR 的实现结构(常用三种)
    • 直接形式 I(Direct Form I)
    • 直接形式 II(Direct Form II)
    • 二阶节(Biquad)结构(实际工程标准)
  • 高阶滤波器的单元:Biquad(biquadratic filter)
  • Biquad 的数学形式
  • 结构框图(信号流向)
    • 直接型(Direct Form I)
    • 转置型(Transposed Form II)
  • 为什么叫 “biquadratic”
  • 高阶滤波器的分解
  • 实际高通二阶节
  • IIR 的频率响应特性
  • IIR滤波器能在更低阶数下实现更陡峭的频率选择性
    • 什么叫“频率选择性陡峭”?
  • 为什么 IIR 可以“更低阶”实现同样的效果?
  • 频率响应比较示例(公式层面)
    • FIR 低通(举例):
    • IIR 低通(举例):
  • 工程上的选择
  • IIR 滤波器的时域特性
  • 后记
  • Δ-Σ ADC 中的数字滤波器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档