什么是相移较小的滤波器?

信息处理 过滤器 连续信号 数字滤波器 时间序列 抗混叠滤波器
2022-02-06 08:52:15

我必须分析动态信号,但噪声太大,所以我应用了低通滤波器,但相移太大。那么我可以对信号应用的最无功滤波器是什么?

最好的祝福

3个回答

从技术上讲,最具反应性的滤波器是增益为 1 的全通滤波器,该滤波器根本没有相移。但它并不是一个真正有用的过滤器。

以下是您需要考虑的事项:

1 - IIR 与 FIR

对于相同的截止频率,IIR 滤波器的相移将小于 FIR 滤波器

2 - 截止频率

对于 IIR 低通滤波器,具有 0.1 Fs 截止频率的滤波器将比具有 0.2 Fs 截止频率的滤波器具有更高的相移。全通滤波器(即增益为 1)没有相移。

3 - IIR 滤波器阶数

对于 IIR,阶数越高,相移越大。

4 - FIR 抽头数

假设你是一个线性相位低通 FIR 滤波器,你拥有的抽头越多,相移就越高。如果你想要一个高截止频率,你可以用更少的抽头来解决。如果您想要一个非常低的截止频率,您将需要更多的抽头,因此需要更多的相移。

5 - 最小相位滤波器

有一类滤波器称为最小相位滤波器。根据此参考,对于给定的截止频率,它们是最具反应性(最快衰减)的

https://www.dsprelated.com/freebooks/filters/Minimum_Phase_Filters.html

尽管@Ben 已经给出了一个很好的答案,但我想补充一点,有一种叫做零相位滤波的技术可以让你完全没有相位延迟。但是,由于我真的不知道反应式过滤器(快速?)是什么意思,我必须说,为了以因果方式实现这一点,您必须使用存储样本的缓冲区,在该缓冲区上应用零-相位滤波。如果您的应用程序可以容忍这种初始延迟,那么您可以执行实时处理(处理一个缓冲区,而下一个缓冲区正在填充新样本)并且您不会得到输出延迟。Matlab 的 filtfilt

如果您进行离线处理,请考虑在 matlab 中使用 sgolay 滤波器或应该给出零相移的 filtfilt 函数。我特别喜欢系数为 3 且窗口大小为 11 的 sgolayfilt。

如果您想实时进行零相位滤波,那么卡尔曼滤波器等预测滤波器是一个很好的解决方案。使用简单的速度滤波器或二阶加速度滤波器。如果我对信号的二阶导数进行测量,我喜欢使用加速度滤波器,并将 jerk 作为输入。这使我可以精确测量测量信号的一阶和二阶导数以及零相移的信号本身(或在 +-0.2 度内是我的目标)