当前位置: 首页 > news >正文

二阶 IIR(biquad)滤波器

二阶 IIR(biquad)滤波器的传递函数通常表示为

H(z)=b0+b1z−1+b2z−21+a1z−1+a2z−2H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}}H(z)=1+a1z1+a2z2b0+b1z1+b2z2

其中:

  • 分子系数b0,b1,b2b_0, b_1, b_2b0,b1,b2(前馈系数)
  • 分母系数1,a1,a21, a_1, a_21,a1,a2(反馈系数,注意 a0a_0a0 固定为 1)

常见滤波器类型的系数公式

以下是几种典型二阶滤波器的系数计算方法(基于双线性变换法):

1. 低通滤波器(Low-pass)
  • 截止频率fcf_cfc
  • 采样频率fsf_sfs
  • 计算公式
    ω0=2πfcfs,α=sin⁡(ω0)2Q,Q\omega_0 = 2\pi \frac{f_c}{f_s}, \quad \alpha = \frac{\sin(\omega_0)}{2Q}, \quad Qω0=2πfsfc,α=2Qsin(ω0),Q 为品质因数\text{为品质因数}为品质因数
    b0=1−cos⁡(ω0)2,b1=1−cos⁡(ω0),b2=1−cos⁡(ω0)2,a0=1+α,a1=−2cos⁡(ω0),a2=1−α.\begin{aligned} b_0 &= \frac{1 - \cos(\omega_0)}{2}, \\ b_1 &= 1 - \cos(\omega_0), \\ b_2 &= \frac{1 - \cos(\omega_0)}{2}, \\ a_0 &= 1 + \alpha, \\ a_1 &= -2\cos(\omega_0), \\ a_2 &= 1 - \alpha. \end{aligned}b0b1b2a0a1a2=21cos(ω0),=1cos(ω0),=21cos(ω0),=1+α,=2cos(ω0),=1α.
    归一化后(除以a0a_0a0):
    b0′=b0a0,b1′=b1a0,b2′=b2a0,a1′=a1a0,a2′=a2a0.b_0' = \frac{b_0}{a_0}, \quad b_1' = \frac{b_1}{a_0}, \quad b_2' = \frac{b_2}{a_0}, \quad a_1' = \frac{a_1}{a_0}, \quad a_2' = \frac{a_2}{a_0}.b0=a0b0,b1=a0b1,b2=a0b2,a1=a0a1,a2=a0a2.
2. 高通滤波器(High-pass)
  • 系数公式(类似低通,但分子不同):
    b0=1+cos⁡(ω0)2,b1=−(1+cos⁡(ω0)),b2=1+cos⁡(ω0)2,a0=1+α,a1=−2cos⁡(ω0),a2=1−α.\begin{aligned} b_0 &= \frac{1 + \cos(\omega_0)}{2}, \\ b_1 &= -(1 + \cos(\omega_0)), \\ b_2 &= \frac{1 + \cos(\omega_0)}{2}, \\ a_0 &= 1 + \alpha, \\ a_1 &= -2\cos(\omega_0), \\ a_2 &= 1 - \alpha. \end{aligned}b0b1b2a0a1a2=21+cos(ω0),=(1+cos(ω0)),=21+cos(ω0),=1+α,=2cos(ω0),=1α.
3. 带通滤波器(Band-pass)
  • 中心频率f0f_0f0
  • 带宽BWBWBW
  • 计算公式
    ω0=2πf0fs,α=sin⁡(ω0)2Q,Q=f0BW\omega_0 = 2\pi \frac{f_0}{f_s}, \quad \alpha = \frac{\sin(\omega_0)}{2Q}, \quad Q = \frac{f_0}{BW}ω0=2πfsf0,α=2Qsin(ω0),Q=BWf0
    b0=α,b1=0,b2=−α,a0=1+α,a1=−2cos⁡(ω0),a2=1−α.\begin{aligned} b_0 &= \alpha, \\ b_1 &= 0, \\ b_2 &= -\alpha, \\ a_0 &= 1 + \alpha, \\ a_1 &= -2\cos(\omega_0), \\ a_2 &= 1 - \alpha. \end{aligned}b0b1b2a0a1a2=α,=0,=α,=1+α,=2cos(ω0),=1α.
4. 带阻滤波器(Notch)
  • 系数公式(与带通类似,但分子为 1−2cos⁡(ω0)z−1+z−21 - 2\cos(\omega_0) z^{-1} + z^{-2}12cos(ω0)z1+z2):
    b0=1,b1=−2cos⁡(ω0),b2=1,a0=1+α,a1=−2cos⁡(ω0),a2=1−α.\begin{aligned} b_0 &= 1, \\ b_1 &= -2\cos(\omega_0), \\ b_2 &= 1, \\ a_0 &= 1 + \alpha, \\ a_1 &= -2\cos(\omega_0), \\ a_2 &= 1 - \alpha. \end{aligned}b0b1b2a0a1a2=1,=2cos(ω0),=1,=1+α,=2cos(ω0),=1α.

实际应用示例

假设设计一个 低通滤波器

  • 采样率fs=48kHzf_s = 48\text{kHz}fs=48kHz
  • 截止频率 fc=1kHzf_c = 1\text{kHz}fc=1kHz
  • Q=0.707Q = 0.707Q=0.707 (Butterworth)

计算步骤:

  1. 计算 ω0=2π100048000≈0.1309\omega_0 = 2\pi \frac{1000}{48000} \approx 0.1309ω0=2π4800010000.1309
  2. 计算 α=sin⁡(0.1309)2×0.707≈0.0924\alpha = \frac{\sin(0.1309)}{2 \times 0.707} \approx 0.0924α=2×0.707sin(0.1309)0.0924
  3. 代入低通公式,得到系数(归一化后):
    b0=0.0089,b1=0.0178,b2=0.0089,a1=−1.8521,a2=0.8482.\begin{aligned} b_0 &= 0.0089, \\ b_1 &= 0.0178, \\ b_2 &= 0.0089, \\ a_1 &= -1.8521, \\ a_2 &= 0.8482. \end{aligned}b0b1b2a1a2=0.0089,=0.0178,=0.0089,=1.8521,=0.8482.

注意事项

  1. 稳定性:确保a12<4a2a_1^2 < 4a_2a12<4a2(极点在单位圆内)。
  2. 量化误差:在定点实现时,注意系数量化对频率响应的影响。
  3. 工具辅助:使用 MATLAB(biquad 函数)、Python(scipy.signal.bilinear)或在线计算器(如 earlevel.com)验证。

如果需要具体参数的系数计算,请提供滤波器类型、截止频率、采样率和 ( Q ) 值!

http://www.xdnf.cn/news/1155745.html

相关文章:

  • 红宝书单词学习笔记 list 51-75
  • Product Hunt 每日热榜 | 2025-07-20
  • 【c++】200*200 01灰度矩阵求所有的连通区域坐标集合
  • 去中心化协作智能生态系统
  • RK3588 安卓adb操作
  • Order Capital Round 1 (Codeforces Round 1038, Div. 1 + Div. 2) C、D
  • 讲解Mysql OnlineDDL的算法
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lxml’问题
  • docker Neo4j
  • 【RK3576】【Android14】显示屏MIPI开发调试
  • 【图文详解】Transformer架构详细解析:多头自注意力机制、qkv计算过程、encoder架构、decoder架构以及mask的意义
  • Qwen3-8B 与 ChatGPT-4o Mini 的 TTFT 性能对比与底层原理详解
  • 网鼎杯2020青龙组notes复现
  • springboot websocket 自动重启方案
  • 彩虹云商城全源码 - 全新客服系统上线
  • CAN通讯理论与实践:调试和优化全讲解
  • 移动端开发的package命名规范
  • 《突破 GIL 限制:Python 多线程的真相与最佳实践》
  • “人工智能+”视域下计算思维与语文写作融合的跨学科教学设计模式探究
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 二、Spark 开发环境搭建 IDEA + Maven 及 WordCount 案例实战
  • Golang的微服务链路追踪
  • 7. 命令模式
  • 5G NR PDCCH之CRC处理
  • GaussDB 数据库架构师修炼(七) 安全规划
  • 【Docker-Day 7】揭秘 Dockerfile 启动指令:CMD、ENTRYPOINT、ENV、ARG 与 EXPOSE 详解
  • 常用框架知识
  • Python基础-列表
  • 【Lua】大G表
  • 06 51单片机之矩阵键盘