iir滤波器全称是什么?

IIRInfinite Impulse Response 的缩写,中文通常翻译为无限脉冲响应。因此,IIR 滤波器全称就是无限脉冲响应滤波器

IIR 滤波器是什么?

IIR 滤波器是一种重要的数字滤波器类型。它最显著的特点是其脉冲响应是无限长的。这意味着当给滤波器一个瞬间的输入信号(即一个单位脉冲)时,滤波器的输出理论上会持续无限长的时间,尽管其幅度会随着时间推移而衰减至接近零。这与另一种常见的数字滤波器 FIR (Finite Impulse Response,有限脉冲响应) 滤波器形成对比,FIR 滤波器的脉冲响应在有限的某个时间点之后会精确地变为零。

IIR 滤波器是如何工作的?

IIR 滤波器实现无限脉冲响应的能力,核心在于其反馈结构。它的当前输出信号不仅取决于当前的输入信号和过去的输入信号(这是 FIR 滤波器的结构),还依赖于其自身的过去输出信号。这种将过去的输出信号重新加回到输入计算过程中的机制,形成了内部的循环或反馈路径。

差分方程表示

一个 N 阶的 IIR 滤波器在时域上可以用一个线性常系数差分方程来描述:

y[n] = b₀x[n] + b₁x[n-1] + … + bᵣx[n-r] – a₁y[n-1] – a₂y[n-2] – … – aₚy[n-p]

其中:

  • y[n] 表示滤波器在当前离散时间点 n 的输出。
  • x[n] 表示滤波器在当前离散时间点 n 的输入。
  • x[n-k] 表示过去时刻 n-k 的输入。
  • y[n-k] 表示过去时刻 n-k 的输出。
  • bᵢaᵢ (i ≥ 1) 是滤波器的系数,它们决定了滤波器的频率响应特性。
  • 上式中的 rp 通常与滤波器的阶数 N 相关。在一种常见的形式中,r=Np=N,或者 r=N-1p=N,取决于具体的滤波器结构定义。

注意方程中 y[n] 的计算依赖于过去的输出值 y[n-1], y[n-2], ...。这些项前的负号是约定俗成的,在实现时通常将其移到等式右边作为加项,即:

y[n] = b₀x[n] + b₁x[n-1] + … + bᵣx[n-r] + a₁y[n-1] + a₂y[n-2] + … + aₚy[n-p]

但在传递函数表示中,分母项前的符号通常是正的 1 后面跟着负的 a 系数,需要留意不同表示方法的符号约定。

传递函数表示 (Z 域)

在 Z 变换域,IIR 滤波器的输入 X(z) 和输出 Y(z) 之间的关系可以用传递函数 H(z) 表示,它是 Y(z) 与 X(z) 的比值:

H(z) = Y(z) / X(z) = (b₀ + b₁z⁻¹ + … + bᵣz⁻ʳ) / (1 + a₁z⁻¹ + … + aₚz⁻ᵖ)

这是一个由两个多项式相除组成的有理函数:

  • 分子多项式由系数 bᵢ 决定,对应于差分方程中的输入项部分。分子多项式的根称为滤波器的零点
  • 分母多项式由系数 aᵢ (i ≥ 1) 决定(注意分母常数项为 1),对应于差分方程中的输出反馈项部分。分母多项式的根称为滤波器的极点

IIR 滤波器的频率响应是通过在 Z 变换的单位圆上评估传递函数 H(ejωT) 得到的(其中 ω 是模拟角频率,T 是采样周期)。滤波器的极点位置对其稳定性和频率响应形状至关重要。为了确保 IIR 滤波器是稳定的(即其输出不会因有限输入而无限增大),所有的极点必须位于 Z 平面的单位圆内部。

为什么选择使用 IIR 滤波器?

在数字信号处理实践中,选择 IIR 滤波器通常是基于以下几个突出的优势:

IIR 滤波器的主要优势

  1. 更高的频率选择性,更低的阶数: 对于给定的频率响应规格(例如,通带的最大允许纹波、阻带的最小衰减量以及过渡带的宽度),IIR 滤波器通常比 FIR 滤波器需要显著更低的阶数来满足要求。阶数越低,意味着实现滤波器所需的计算步骤和存储空间就越少。
  2. 计算效率高: 由于阶数较低,IIR 滤波器在实时处理时通常需要更少的乘法和加法运算。这使得 IIR 滤波器在计算资源(如 CPU 周期、DSP 能力)有限的硬件平台或需要处理高速数据的应用中非常有优势。
  3. 硬件资源节省: 低阶数直接转化为实现所需的内存更少(存储系数和历史数据)。这对于成本敏感或体积受限的嵌入式系统来说是一个重要优点。
  4. 易于借鉴成熟的模拟滤波器设计理论: 许多经典的模拟滤波器设计方法(如 Butterworth、Chebyshev、Elliptic)可以通过成熟的离散化技术(如双线性变换法、脉冲响应不变法)直接转换为 IIR 滤波器的设计方法。这使得数字 IIR 滤波器的设计可以站在已有的模拟滤波器理论的肩膀上。

IIR 滤波器的主要劣势

  1. 非线性相位响应: 这是 IIR 滤波器的主要缺点。IIR 滤波器的相位响应通常是非线性的,尤其是在过渡带附近。非线性的相位响应意味着不同频率分量的信号通过滤波器后会经历不同的群延迟。这可能导致信号波形发生畸变,对于要求保持信号波形形状的应用(如数据通信中的脉冲整形、某些测量系统)可能不适用。相比之下,线性相位的 FIR 滤波器不会引起波形失真。
  2. 稳定性问题: 由于存在反馈,IIR 滤波器的稳定性是一个需要仔细考虑的问题。设计或实现不当(例如,量化误差导致极点移出单位圆)可能导致滤波器不稳定,输出信号可能会发散。虽然通过将高阶滤波器分解为二阶节 (SOS) 级联的形式可以缓解这个问题,但这仍然是 IIR 滤波器设计中需要警惕的一点。
  3. 设计复杂性(相比于简单的 FIR): 虽然可以借鉴模拟设计,但 IIR 滤波器设计过程涉及到复杂的极点/零点计算和稳定性分析。而 FIR 滤波器(尤其是线性相位的)设计在概念上可能更直观一些(例如窗函数法)。
  4. 对量化误差敏感: 在使用有限精度(定点)算术实现的硬件中,系数和中间计算结果的量化误差可能对 IIR 滤波器的性能产生较大影响,包括改变频率响应或导致不稳定。其反馈结构使得量化误差可能在迭代中积累。

IIR 滤波器主要应用于哪些地方?

鉴于其高效率特性,IIR 滤波器在许多数字信号处理领域找到了广泛的应用,特别是在对计算资源有较高要求或对相位非线性不太敏感的场景:

  • 音频处理:

    • 数字音频均衡器 (EQ)
    • 某些音频效果器(如简单的混响、延迟线路中的衰减滤波)
    • 音频编解码器中的预处理或后处理滤波
  • 通信系统:

    • 调制解调器中的发送和接收滤波器
    • 信道均衡器(部分实现)
    • 软件无线电 (SDR) 中的数字下变频 (DDC) 或上变频 (DUC) 后的滤波
    • 数字电视、数字广播中的信号滤波
  • 生物医学信号处理:

    • 心电图 (ECG)、脑电图 (EEG)、肌电图 (EMG) 等生理信号的去噪(去除工频干扰、基线漂移等)
    • 医学影像处理中的滤波
  • 语音处理:

    • 语音降噪
    • 语音识别和合成中的特征提取预处理
  • 控制系统:

    • 数字控制器中的滤波环节,用于对传感器输入进行平滑或去除噪声
  • 仪器仪表和传感器数据采集:

    • 对传感器采集的数据进行实时滤波,以去除干扰或平滑信号
  • 消费电子产品:

    • 数字电视、机顶盒、数字音频播放器等设备中的音频和视频信号处理

总而言之,在追求成本效益、低功耗或需要处理大数据流的应用中,如果相位失真不是主要问题,IIR 滤波器往往是首选。

实现一个 IIR 滤波器需要多少计算资源?

讨论实现 IIR 滤波器所需的“多少”计算资源,主要是指其所需的运算次数和内存空间。这与滤波器的阶数 N 直接相关:

  • 计算量 (Operations):

    对于一个 N 阶的 IIR 滤波器,如果采用常见的直接型 II 或其转置结构实现,每个新的输出样本 y[n] 的计算通常需要大约 N+1 次乘法(对应于输入项和反馈项)和 N 次加法(或更多,取决于具体形式,但数量级是线性的 N)。总共大约是 2N + 1 次基本的乘加运算 (Multiply-Accumulate, MAC)。

    相较而言,一个要达到与 N 阶 IIR 滤波器相似陡峭度频率响应的线性相位 FIR 滤波器,其阶数 M 可能需要远大于 N,例如 M 可能是 10N 或更多。一个 M 阶 FIR 滤波器每个输出样本需要 M+1 次乘加运算。因此,IIR 滤波器在运算量上通常具有显著优势(即需要的运算次数“少很多”)。

  • 内存 (Memory):

    实现一个 N 阶 IIR 滤波器需要存储:

    • 滤波器的系数:通常需要存储 r+1 个 b 系数和 p 个 a 系数。对于常见的 N 阶设计,这大约是 2N+1 个系数。
    • 历史数据(延迟单元):为了计算当前的输出,需要存储过去最多 r 个输入值和过去最多 p 个输出值。根据具体的实现结构(如直接型 II),通常只需要存储 N 个中间状态值(延迟单元内容)。

    总的来说,IIR 滤波器所需的内存空间与滤波器阶数 N 成线性关系。同样,与实现相同性能的 FIR 滤波器相比,由于 IIR 的阶数通常低得多,所以所需的内存也显著减少(即需要的内存空间“少很多”)。

因此,“多少”计算资源主要取决于滤波器阶数,而 IIR 的核心优势就在于可以用相对“少”的阶数实现高性能,从而减少所需的计算运算和内存空间。

如何设计和实现一个 IIR 滤波器?

设计和实现一个 IIR 滤波器是一个系统性的过程,涉及到多个步骤:

IIR 滤波器的设计步骤

  1. 明确滤波器规格: 这是设计的起点。需要清楚地定义滤波器的类型(低通、高通、带通、带阻)、期望的频率响应特征(如截止频率、阻带起始/结束频率)、通带的最大允许纹波 (Ap dB) 和阻带的最小衰减 (As dB)。这些规格通常在模拟频率或归一化数字频率下给出。
  2. 选择滤波器原型类型: 根据对频率响应平坦度、过渡带陡峭度以及对通带/阻带纹波的容忍度来选择合适的模拟滤波器原型。常见的原型包括:

    • Butterworth (巴特沃斯): 特点是通带和阻带都最平坦(最大平坦响应),但过渡带相对较宽。
    • Chebyshev Type I (切比雪夫 I 型): 特点是通带内有等波纹,阻带单调下降,过渡带比 Butterworth 更窄。纹波大小由设计者指定。
    • Chebyshev Type II (切比雪夫 II 型): 特点是通带单调下降,阻带内有等波纹,过渡带比 Butterworth 更窄。纹波大小由设计者指定。
    • Elliptic (椭圆滤波器): 特点是通带和阻带内都有等波纹,但在给定阶数下具有最窄的过渡带。性能最好,但相位非线性最严重。
  3. 确定滤波器阶数 (N): 根据选定的原型类型和给定的规格,计算满足所有要求的最小阶数 N。通常有公式或图表可以辅助计算。
  4. 设计模拟滤波器: 找到满足阶数 N 和规格的模拟原型滤波器的系统函数 Ha(s)。这涉及到计算极点和零点的位置。
  5. 选择模拟到数字转换方法: 选择一种方法将模拟滤波器 Ha(s) 转换为数字滤波器 H(z)。

    • 脉冲响应不变法 (Impulse Invariance): 尝试保持模拟滤波器的脉冲响应形状。通过 s = (1/T) ln(z) 进行映射。主要问题是会发生频谱混叠,限制了其应用范围(通常只适用于带限的低通和带通滤波器,且采样率 T 需要足够高)。
    • 双线性变换法 (Bilinear Transform): 这是最常用的方法。通过 s = (2/T) * (1 – z⁻¹) / (1 + z⁻¹) 进行映射。它将整个模拟 s 平面一对一地映射到数字 z 平面,从而避免了频谱混叠。主要影响是它在模拟频率和数字频率之间引入了非线性关系,高频部分会被“压缩”。因此,在应用双线性变换之前,需要对模拟截止频率进行“预畸变” (pre-warping) 处理,以确保数字滤波器在目标频率上具有正确的响应。
  6. 计算数字滤波器系数: 将模拟滤波器 Ha(s) 中的 s 用选定的变换公式替换为 z 的函数,得到数字滤波器传递函数 H(z)。然后整理 H(z) 为分子分母多项式的比值形式,提取出差分方程所需的系数 aᵢbᵢ
  7. 稳定性检验: 检查计算出的数字滤波器 H(z) 的所有极点是否位于 Z 平面的单位圆内部。对于由稳定的模拟滤波器通过双线性变换得到的数字滤波器,这一点通常能得到保证,因为双线性变换将 s 平面的左半平面(稳定区域)精确地映射到 z 平面的单位圆内部。但如果直接设计数字滤波器或采用其他方法,则需要单独检查。

IIR 滤波器的实现方式

获得滤波器的系数 aᵢbᵢ 后,就可以在硬件(如 FPGA、ASIC、DSP 芯片)或软件(如嵌入式 C 代码、Matlab、Python)中构建滤波器结构来实现信号处理。常见的实现结构包括:

  • 直接型 I (Direct Form I): 直接按照差分方程的形式实现。需要 r+1 个乘法、p 个乘法,以及相应的加法,并需要存储 r 个过去的输入和 p 个过去的输出。
  • 直接型 II (Direct Form II): 通过交换直接型 I 的两个部分(全零点部分和全极点部分)并合并延迟线得到。需要 max(r, p)+1 个乘法和 max(r, p) 个加法,以及 max(r, p) 个延迟单元。如果 r ≈ p ≈ N,则需要大约 N+1 次乘法和 N 次加法,以及 N 个延迟单元。这种结构通常比直接型 I 需要更少的内存,因此更常用。
  • 转置直接型 II (Transposed Direct Form II): 将直接型 II 的信号流图进行转置得到。具有与直接型 II 相同的计算量和内存需求,但在某些情况下(如定点实现中的溢出特性)可能有所不同,也常被使用。
  • 级联型实现 (Cascade/Second-Order Sections, SOS): 将高阶滤波器分解为一系列二阶(或一阶)滤波器的级联。传递函数 H(z) 被分解为 H(z) = H₁(z) * H₂(z) * … * Hk(z),其中每个 Hᵢ(z) 是一个二阶或一阶的传递函数。这种结构通常比直接型对量化误差更不敏感,更不容易出现由有限字长引起的稳定性问题,并且模块化易于实现。这是在定点硬件实现中非常流行的结构。
  • 并行型实现 (Parallel Form): 将传递函数 H(z) 通过部分分式展开,表示为一系列简单传递函数之和:H(z) = H₁(z) + H₂(z) + … + Hm(z) + 常数项。然后实现并联结构。不如级联型常用,但有时在特定理论分析中有用。

在实际实现过程中,还需要考虑数值精度(使用浮点运算还是定点运算)、定点实现时的量化误差、溢出处理、系数存储格式等实际工程问题。

总结

无限脉冲响应 (IIR) 滤波器,全称 Infinite Impulse Response Filter,是数字信号处理中的一个核心概念和实用工具。通过其基于过去输出的反馈机制,IIR 滤波器能够以显著低于等效 FIR 滤波器的阶数来实现陡峭的频率响应,从而在计算量和内存需求上具有显著优势。这使得它在资源受限或需要高效实时处理的应用中大显身手,广泛应用于音频、通信、生物医学、控制等领域。尽管 IIR 滤波器存在相位非线性和潜在的稳定性/量化误差敏感性等挑战,但通过成熟的设计方法(如基于模拟原型和双线性变换)和稳健的实现结构(如二阶节级联),这些问题可以在很大程度上得到管理和解决。理解 IIR 滤波器的全称、工作原理、优缺点以及具体的设计实现步骤,是掌握数字信号处理技术的关键部分。


iir滤波器全称