大家这个学习的劲头太足了,然后赶紧把 IIR 补上,还有人说一些其它的滤波器,我怎么可能不知道,只是说这俩种工程上面非常的成熟而已。
IIR = Infinite Impulse Response Filter中文:无限冲激响应滤波器
意思是:
它的输出不仅取决于当前输入信号,也取决于过去的输入和过去的输出。
这与 FIR(有限冲激响应)不同,FIR 只会“记住”有限个输入样本,而 IIR 有反馈,所以它的“记忆”理论上无限长。
想象你在山谷中大喊一声“啊——”,声音会回荡几次再慢慢消失,每次回声比上一次更小一点。 现在把这想成一个滤波器:
当前的声音(输入信号) → 新样本 x[n]
上一次回声(上次输出) → 反馈信号 y[n-1]
系统把它们加起来、衰减、再输出 → 当前输出 y[n]
于是:
每次输入都会“留下一点尾巴”;下一次又叠加新的输入;尾巴越来越短,但永远不完全消失;它对一个冲激输入的反应永远在回荡、渐渐消失。
它会把输入信号和它自己“过去的输出”混在一起,再加权相加,不断地循环反馈,让信号中某些频率成分相互抵消、衰减、或者增强。
滤波器本质上是“让某些频率容易通过,让某些频率难通过”;而“反馈”就是调节这种频率特性的关键:如果把过去输出加回来,就会让某些频率叠加共振(放大);如果把过去输出反相加回来,就会让某些频率相互抵消(衰减)。
这样,通过调整反馈系数 ,IIR 能够在频率上形成“谷”和“峰”,最终实现低通、高通、带通等各种频率选择。
离散时间域公式:
或者写成:
其中:
参数 | 含义 |
|---|---|
当前与过去的输入样本 | |
当前输出 | |
前向(feedforward)系数 | |
反馈(feedback)系数 | |
分别为前向与反馈阶数 |
设滤波器公式:
每来一个新样本:取当前输入 (最新信号);加上一点过去的输入 ;减去一点过去的输出 (反馈);得出新的 ,输出给下一次使用
就这样:
当前输出不仅取决于现在的输入,还“记得”过去的输入和输出。
步骤 | 操作 | 含义 |
|---|---|---|
① | 接收当前样本 | 采到一个新的数据点 |
② | 取一部分过去输出 反馈回来 | 让系统记忆过去的状态 |
③ | 按权重加权求和,输出新的 | 得到新的滤波结果 |
这就是 IIR 在数字信号处理器(DSP)中的实时执行过程。
通过 Z 变换得:
特点:分子部分代表输入(前向路径);分母部分代表反馈(回授路径) → 因此它的冲激响应是无限长(IIR)。
最简单的一阶低通:
当 α 接近 1 → 过去输出影响大 → 输出变化慢(只保留低频)
当 α 小 → 响应快 → 高频变化也能通过;所以调节 α 就是在调节“截止频率”。
举例:
α=0.9 → 低通,平滑噪声;α=0.2 → 高频容易通过,不太平滑。
特性 | FIR | IIR |
|---|---|---|
是否反馈 | 无反馈 | 有反馈 |
“记忆” | 有限长度(只看过去输入) | 无限长度(也记过去输出) |
响应 | 会在有限时间内归零 | 可能无限衰减(有回声) |
相位 | 可线性相位 | 一般非线性相位 |
运算量 | 较多 | 较少(效率高) |
稳定性 | 总是稳定 | 必须保证反馈系数合适(极点在单位圆内) |
所以:
FIR 是“平滑的滤波”;IIR 是“聪明的滤波”(记忆和反馈使它更高效,但要小心稳定性)。
因为是反馈的结构,所以自然而然的有稳定性问题; 它的输出不仅依赖于输入 ,还依赖于过去的输出 :
其中的 a₁, a₂, …, a_N 是反馈系数;这些反馈会“让滤波器记住过去”,也就是“无限冲激响应”的来源。(再说一次)但是如果反馈太强,输出就会无限放大或振荡,系统就不稳定;这时,信号还没输入,滤波器就自己乱套了。
IIR 的系统函数(Z 域表达式)为:
其中 的根就是滤波器的**极点 (poles)**;极点的位置决定了滤波器的稳定性。
所有极点必须在 单位圆以内(|p| < 1)
原因:
单位圆表示离散系统的“自然频率界限”;
若极点落在单位圆内 → 响应会随时间衰减 → 稳定;
若极点在圆上 → 响应永不衰减 → 振荡;
若极点在圆外 → 响应随时间放大 → 系统发散。

z 平面:单位圆与极点位置
其系统函数:
极点在 。 稳定条件:
a₁ | 极点位置 | 稳定性 | 时域表现 |
|---|---|---|---|
0.5 | 圆内 | 稳定 | 响应指数衰减 |
1.0 | 在圆上 | 临界稳定 | 永不衰减 |
1.1 | 圆外 | 不稳定 | 响应爆炸性增长 |
极点位置:
稳定条件:
这是每个二阶节(biquad)在 IIR 设计中必须检查的稳定性标准。
IIR 滤波器的反馈系数必须保证极点落在单位圆内。否则,反馈信号不会衰减而会持续放大,导致滤波器输出振荡或发散。极点越接近单位圆,系统越“尖锐”(Q 值越高),极点越靠中心,系统越平滑、响应越快。



冲激响应 y[n](一阶 IIR:)
稳定(|p|<1,示例 p=0.8):指数衰减并收敛到常数。
临界(|p|=1,示例 p=1.0):不衰减,保持在常数水准。
不稳定(|p|>1,示例 p=1.1):指数增长,发散。

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

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

振荡幅度 指数增长;响应越来越强;系统反馈能量持续放大,最终发散。
极点的模(|p|)控制系统能量是“衰减、保持还是增长”;极点的角度(∠p = ω₀)决定系统的振荡频率。
因此:在单位圆内部:振荡会衰减 → 稳定;在单位圆上:振荡恒幅 → 临界稳定;在单位圆外:振荡放大 → 不稳定。

这个仪器是多合一的
类型 | 特点 | 频率响应形状 |
|---|---|---|
Butterworth | 通带最平坦(无波纹),相位中等平滑 | 平滑“砖墙” |
Chebyshev I | 通带有波纹,过渡带更陡 | 陡峭但带内起伏 |
Chebyshev II | 通带平滑,阻带有波纹 | 阻带优化型 |
Elliptic (Cauer) | 通带、阻带都有波纹,最陡峭 | 高选择性 |
Bessel | 相位线性最佳,但过渡带最宽 | 时间响应最平滑 |
Legendre / Gaussian | 优化相位或时域平滑 | 特殊控制用 |
Moku 的 Digital Filter Box 内部就是通过选择这些滤波族 → 计算系数 → 实时更新 DSP 滤波结构。

可视化也很直观,直接选择对应的参数
输入 → 加权 b0,b1,b2 → 求和 → 输出
↑
a1,a2 反馈
优点:直观 缺点:对高阶滤波器不稳定(数值误差放大)
合并延迟线,节省存储空间(Moku 常用)
高阶滤波器由多个 2 阶节(Biquad)串联组成:
每节独立计算 → 稳定性好,易于实时调节;Moku Filter Box 内部就是用 Biquad 串联形式实现的 IIR。
在设计高阶 IIR 滤波器(比如 6 阶、8 阶、10 阶)时,直接实现完整高阶差分方程会:对数值精度极其敏感(浮点或定点误差导致振荡);难以调试与控制稳定性。
为了稳定可靠,工程上会把高阶滤波器拆成多个二阶滤波单元,每个单元称为一个 “二阶节(Second-Order Section, SOS)”,或简称 Biquad(biquadratic filter)。
二阶 IIR 滤波器的通用差分方程:
其 Z 域传递函数为:
┌──────┐
x[n] ─▶──▶×b0 ─┬─▶───┐
┌──▶×b1 ─┼──▶Σ│
│ └▶×b2 ─┘ │
│ ▼
│ z⁻¹ 延迟线
│ │
│ ▼
│ z⁻¹ 延迟线
└──────────────┘
反馈系数 a₁, a₂ 回到输入端
是最常用的 FPGA / DSP 实现结构:
x[n] ─▶─●─┬───────────┬───────────┐
│ │ │ │
×b0 ×b1z⁻¹ ×b2z⁻² ▼
│ │ │ Σ─▶ y[n]
│ │ │ ▲
└───┴─────×a₁───┴──×a₂─┘
它的特点是:
只需两个延迟寄存器;运算并行、延迟短;稳定性好、数值精度高。
现代 ADC(如 ADS127L21)或 DSP(如 SHARC)内部的 IIR 滤波器就是由多个转置型 biquad 级联组成的。

在后面有滤波器的结构
“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 有反馈,而 FIR 没有。
FIR:只依赖输入信号 → 响应有限;
IIR:还依赖过去的输出 → 可以“反复利用能量”,让频率响应更陡峭。
数学上:
FIR → 只有分子 :平滑、有限、过渡带较宽;
IIR → 多了分母 :可形成极点(poles),让响应陡峭;极点越靠近单位圆 → 滤波器越“尖锐”。
曲线
→ 没有极点,靠系数叠加构造“近似砖墙”滤波器。 → 阶数越高,过渡带才会更窄。
→ 由极点位置决定过渡陡度; → 阶数 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 的 “无限冲激响应”。

稳态值 ≈ 1.0000(单位阶跃)
最大超调 ≈ ~几 %(Butterworth 高阶会有轻微超调)
1% 稳定时间:在图中已标出(代码按“连续 50 ms 进入 ±1% 带”统计)
—— 阶跃响应关键指标 ——
稳态值 ≈ 1.000000
最大超调 ≈ 11.907 %
1% 稳定时间(连续50 ms判据)≈ 0.0200 s

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

—— 白噪声方差对比 ——
输入方差 ≈ 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(如 ADS127L11 / ADS127L21)依赖过采样 (Oversampling) 来提升分辨率。
内部数字滤波器执行:
常见两种数字滤波结构:
类型 | 特征 | 应用 |
|---|---|---|
sinc 滤波器 | 结构简单,响应单调,延迟短 | 慢速、直流测量(传感器) |
宽带滤波器 (Wideband FIR) | 通带平坦,过渡带陡峭 | 音频、测试测量、高速采样 |

散会