如何在obspy中设置零相位带通滤波器的阶数

how to set the order of zero-phase bandpass filter in obspy

我有一个关于在obspy中设置零相位带通滤波器阶数的问题。

我想应用二阶零相位滤波器,角频率为 0.05Hz 和 0.1Hz。

我认为输入“st.filter('bandpass', freqmin=0.05, freqmax=0.1, corners=2, zerophase=True)”是正确的。

但是,我有点困惑,因为根据下面的 link,设置 'zerophase=True' 会导致两倍的过滤顺序。

https://docs.obspy.org/_modules/obspy/signal/filter.html

所以我想问一下在我的情况下设置'corners=2'或'corners=1'等是否正确

如果有人给出答案,对我有很大的帮助。

谢谢。

您应该指定 corners = 1

零相位滤波器的实现方式是运行数据通过滤波器两次,一次向前,一次向后。这导致幅度响应加倍,但抵消了相位响应。因此,如果您希望阻带中有 12 dB/octave 衰减,就像在正常的二阶滤波器中一样,则指定 corners = 1。这将导致前向传球衰减 6 dB/octave,然后向后传球衰减 6 dB/octave。