减少递归滤波器启动瞬态的技术参考

信息处理 Python 无限脉冲响应 参考请求
2022-02-22 10:24:33

我正在尝试追踪参考文献(理想情况下已发表文章或报告),这些参考文献为一些用于最小化递归数字滤波器启动瞬态对采样信号的影响的技术奠定了基础。我的具体应用是对已经采集的加速度信号进行数字滤波(后处理)。下面的示例基于 Python 和 scipy.signal 模块。

我所指的技术示例在 scipy.signal.filtfilt (可能是 Matlab 版本)中进行了说明。在这个函数中,有一些选项可以指定填充类型和填充长度,大概是为了在运行到“真实”数据之前初始化过滤器并消散瞬态。另一种技术和参考 F. Gustaffson,“确定前向后向滤波中的初始状态”,信号处理事务,卷。46, pp. 988-992, 1996,也在过滤器中实现。

另一个例子是 scipy.signal.lfilter_zi,它在注释中描述了一种从信号的初始值设置初始滤波器延迟的技术。(有趣的是,除了填充之外,这也是在上面引用的 filtfilt 函数中实现的。)注释描述了该技术的派生,但源代码中没有此函数的参考。也没有讨论这种技术的优缺点。我找到了Fletcher (1973)似乎描述这种技术的参考资料。有人可以确认这是正确的一般参考吗?

我发现的另一个更通用技术的来源是Chornoboy (1990)出自 MIT 的一份报告。除了报告中的内容外,我还没有看到在任何库中实现了这种技术,也没有发现这种技术与其他技术的比较。本报告提到了弗莱彻报告。

最后,我阅读了许多关于数字信号处理的书籍。我拥有的书(Hamming 的“数字滤波器”)明确指出,尚未找到独立于输入信号的通用技术。其他书籍没有提到滤波器启动瞬态,或者,如果提到的话,也没有讨论将影响最小化的实用方法。

有没有人知道在后处理(滤波)数字信号的背景下讨论这些技术的单一资源?除此之外,是否有任何关于填充信号的(明显)技术和讨论各种填充技术(即奇数、偶数、常数)的参考资料?

2个回答

对于给定的频率响应幅度,最小相位滤波器实现将具有尽可能短的瞬态持续时间。

最小相位滤波器将在开始时将大部分能量打包。因此它也被称为最大能量过滤器。因此它将尽快产生稳态输出(在具有相同频率响应幅度的一组滤波器中)

然而,最小相位滤波器不能同时是线性相位。因为线性相位滤波器将具有对称的脉冲响应,但这也意味着单位圆之外的传递函数为零。因此,它不能同时是最小相位滤波器,因为对于最小相位滤波器,传递函数的所有极点和零点都在单位圆内。

或者,如果您对初始样本有一些可靠的估计,则在n=0,输入信号,那么您可以根据这些值初始化滤波器,而不是完全盲零初始化。

在控制理论文献中,这被称为无扰动传递——这意味着我们希望将控制器从一个更改为另一个,而不会产生不利的瞬态。

对于 python,这个页面似乎有一个特定于 python 和控件的示例。我不确定它会帮助你追求什么。