FIR 与 IIR 数字滤波器的区别总结

FIR 与 IIR 数字滤波器的区别总结

数字滤波器按冲激响应长度分为两类:**FIR(Finite Impulse Response,有限长冲激响应)**与 IIR(Infinite Impulse Response,无限长冲激响应)。它们在结构、稳定性、相位特性、设计方法与实现成本等方面差异明显。


1. 定义与差分方程形式

FIR(非递归,无反馈)

y[n]=∑k=0Mbk,x[n−k] y[n]=\sum_{k=0}^{M} b_k,x[n-k] y[n]=k=0∑Mbk,x[n−k]

FIR 只有前向加权求和,没有反馈项,冲激响应在有限长度后变为 0,因此称"有限长"。

IIR(递归,有反馈)

y[n]=∑k=0Mbk,x[n−k]−∑k=1Nak,y[n−k] y[n]=\sum_{k=0}^{M} b_k,x[n-k]-\sum_{k=1}^{N} a_k,y[n-k] y[n]=k=0∑Mbk,x[n−k]−k=1∑Nak,y[n−k]

IIR 含反馈项,冲激响应通常无限延续,因此称"无限长"。


2. 系统函数、极点零点与稳定性

FIR

H(z)=∑k=0Mbkz−k H(z)=\sum_{k=0}^{M} b_k z^{-k} H(z)=k=0∑Mbkz−k

FIR 为多项式形式(可看作仅有零点的结构,除延时带来的原点因素外无有限极点),在固定系数下天然稳定(BIBO 稳定)

IIR

H(z)=∑k=0Mbkz−k1+∑k=1Nakz−k H(z)=\frac{\sum_{k=0}^{M} b_k z^{-k}}{1+\sum_{k=1}^{N} a_k z^{-k}} H(z)=1+∑k=1Nakz−k∑k=0Mbkz−k

IIR 为有理函数,具有零点与极点 。稳定性取决于极点位置:全部极点在单位圆内才稳定。系数量化或设计不当可能造成稳定性风险。


3. 相位特性:线性相位谁更容易?

FIR 的优势:容易实现严格线性相位

若冲激响应满足对称或反对称:

  • 对称:h[n]=h[M−n]h[n]=h[M-n]h[n]=h[M−n]
  • 反对称:h[n]=−h[M−n]h[n]=-h[M-n]h[n]=−h[M−n]

则 FIR 可实现严格线性相位(群时延恒定),更利于波形不失真(音频、通信等场景常用)。

IIR:通常难以严格线性相位

IIR 一般很难做到严格线性相位(除非用全通补偿或特殊结构,代价高、实现复杂),多为近似线性相位。


4. 计算复杂度与实现成本

在满足相同幅频指标(如过渡带很窄、阻带衰减很高)的情况下:

  • IIR 通常低阶就能达到要求
    → 乘法次数少、存储少、实时性好。
  • FIR 往往需要更高阶数
    → 运算量更大,但结构更简单、稳定性更强、相位可控。

一句话:IIR 省阶数,FIR 省麻烦


5. 设计方法与常见来源

IIR 设计(常由模拟原型变换)

  • 巴特沃斯(Butterworth)
  • 切比雪夫(Chebyshev)
  • 椭圆(Elliptic)
  • 常用变换:双线性变换、冲激响应不变法等

FIR 设计(多在数字域直接设计)

  • 窗函数法(Window)
  • 频率采样法(Frequency Sampling)
  • 最小二乘 / 等波纹(Parks--McClellan)

6. 数值实现与误差敏感性

  • **FIR:**无反馈,量化误差不在递归中累积,对系数量化更鲁棒
  • **IIR:**有反馈,量化误差可能循环放大,出现极点漂移、稳定性下降、限环振荡等问题;工程上常用 二阶节(SOS) 提高数值稳定性。

7. 典型应用

  • 相位/波形保真要求高(严格线性相位)优先 FIR
    例如:音频均衡、通信成形滤波、相位敏感测量
  • 资源有限但幅频指标陡峭: 优先 IIR
    例如:嵌入式实时低通/带通、低功耗实时滤波

8. 总结对比表

维度 FIR IIR
冲激响应 有限长 无限长
结构 非递归(无反馈) 递归(有反馈)
稳定性 天然稳定 取决于极点位置
线性相位 易实现严格线性相位 通常难严格线性相位
阶数/运算量 通常更高阶、运算大 通常低阶、运算省
量化敏感性 高(可能影响稳定)
设计路线 数字域直接设计 常由模拟原型变换
相关推荐
s09071367 天前
使用xilinx的fir IP核实现LFM信号匹配滤波的详细过程及原理
fpga开发·xilinx·fir·zynq·脉冲压缩
膝盖中箭-_-#10 个月前
【STM32系列】利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程)
stm32·matlab·fir·数字滤波器
膝盖中箭-_-#10 个月前
【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)
stm32·matlab·数字滤波器·iir
爱奔跑的虎子1 年前
详解FIR滤波器原理以及Verilog实现和Xilinx FIR IP核的验证
matlab·fpga开发·数字信号处理·fpga·vivado·fir
浪游东戴河2 年前
VoIP之AVPF(Audio-Visual Profile with Feedback)
voip·fir·avpf·rtcp-fb·rfc4585
p-明天,你好!2 年前
System Generator初体验FIR滤波器
fpga·simulink·fir
thehunters2 年前
RTP/RTCP的 NACK, PLI,SLI,FIR
nack·pli·fir·rtp