You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两款DC滤波算法的功能对比与优劣评估咨询

两款DC滤波算法的核心差异与偏好分析

一、核心差异

从数学模型和实现特性拆解两款算法的本质区别:

算法1(dsprelated版本)

代码实现:

y = x - xm1 + 0.995 * ym1;
xm1 = x;
ym1 = y;

这是一阶差分叠加一阶低通的组合结构,推导后传递函数为:
$$H_1(z) = \frac{1 - z^{-1}}{1 - 0.995z^{-1}}$$
高频段(信号变化快)增益为1,无幅度衰减,需要维护xm1(上一采样输入)和ym1(上一输出)两个状态变量。

算法2(反转低通得到的高通)

代码实现:

y += (x - y) * 0.005;
output = x - y;

这里的y是一阶低通的输出,最终高通输出为输入减去低通结果。推导后传递函数为:
$$H_2(z) = 0.995 \cdot \frac{1 - z^{-1}}{1 - 0.995z^{-1}}$$
本质是算法1的幅度缩放版本,高频段增益为0.995(约0.04dB衰减),仅需维护y一个状态变量。

两者核心差异总结:

  • 幅度增益:算法2输出幅度是算法1的0.995倍,存在微小衰减
  • 状态资源:算法1需2个状态变量,算法2仅需1个,内存占用更少
  • 响应感知:你实测算法2响应更慢,是因为初始输出幅度更小,实际两者极点一致(截止频率相同),过渡带斜率完全相同

二、偏好选择依据

两款算法没有绝对的优劣,需结合场景需求选择:

优先选算法1的场景

  • 需要无幅度衰减的信号输出:比如音频、精密测量等对信号幅度保真度要求高的场景,0.04dB的衰减虽小,但在多级级联或高精度分析中可能累积影响
  • 直流抑制的极致性能:纯直流输入下,算法1的输出会以更快的视觉收敛速度趋近于0(无幅度缩放),极端场景下的直流残留更低
  • 相位特性匹配:算法1的差分结构带来的相位偏移,在某些需要保持相位线性度的系统中更适配

优先选算法2的场景

  • 资源受限的嵌入式平台:比如8位MCU、小型FPGA等,更少的状态变量能节省宝贵的RAM/寄存器资源
  • 代码简洁性与复用性:低通迭代逻辑直观易懂,若系统同时需要提取直流分量(y变量)和交流分量(output),可直接复用,减少冗余计算
  • 对微小衰减不敏感:大多数工业控制、普通传感器信号处理场景中,0.995的增益衰减可忽略,不影响后续分析或控制逻辑

三、总结

两款算法属于同一类一阶高通滤波器,仅在幅度增益和状态资源上有差异。选择时无需纠结"优劣",只需匹配自身需求:

  • 追求幅度保真、极致直流抑制或相位适配 → 选算法1
  • 看重内存占用、代码简洁或需复用直流分量 → 选算法2

内容的提问来源于stack exchange,提问作者user5343408

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:17:15