如何在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。
我有一个关于在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。