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

如何消除实时信号FIR带通滤波器的瞬态响应

瞬态上升现象的产生原因

你观察到的起始段瞬态是FIR滤波器的固有特性,本质是卷积运算的初始状态不匹配导致的:

  • FIR滤波器的输出由输入信号与滤波器抽头(冲击响应)的卷积计算得到,阶数为N的FIR滤波器,完成一次有效卷积需要覆盖N个连续的输入采样点
  • 滤波启动时,存储历史输入的延迟缓存默认初始化为0,前N个输出点的计算仅用到了部分有效输入信号、剩余参与计算的是初始的0值,输出会从0逐渐上升到稳态幅值,瞬态时长恰好等于N个采样点对应的时间
  • 模拟滤波无该问题的原因是模拟器件的初始状态(电容电压、电感电流)天然匹配输入信号的偏置,且不会在运行过程中被主动复位;而数字方案如果每次处理数据时主动清零延迟缓存,就会重复触发该瞬态。

实时场景下的瞬态消除方案

针对你的水声时差测量场景,可根据你的系统设计选择以下方案:

  • 跨数据块保留延迟线状态:如果是分块处理连续ADC数据流,不要每次处理完一个数据块就清零延迟缓存,而是将当前块最后(N-1)个输入采样值保存,作为下一个数据块处理的初始缓存值,即可完全避免连续流处理中的重复瞬态问题,该方案是实时系统的首选方案。
  • 延迟线预充:如果系统需要在指定时刻启动测量,不要清零缓存后立刻开始输出有效结果,先预采集N个采样点填充延迟缓存再正式输出,第一个输出点即为稳态结果,仅第一次启动时存在N个采样点的启动延迟,不影响后续测量精度。
  • 舍弃瞬态段+群延迟修正:如果无法改动滤波逻辑,直接舍弃滤波后前N个输出点,剩余输出均为稳态值。FIR滤波器为线性相位,群延迟固定为(N-1)/2个采样点,计算两个水听器的信号到达时间差时,将测量结果偏移该固定群延迟即可得到准确的时间差。
  • 优化FIR阶数:在满足通带20-40kHz、阻带衰减、通带波纹的要求前提下,采用等波纹滤波器设计(MATLAB的firpm函数)替代窗函数设计,相同指标下可降低滤波器阶数,缩短瞬态时长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:36:03