如何解决如何在obspy中设置零相位带通滤波器的阶数
我有一个关于在 obspy 中设置零相位带通滤波器阶数的问题。
我想应用一个二阶零相位滤波器,转角频率为 0.05Hz 和 0.1Hz。
我认为输入'st.filter('bandpass',freqmin=0.05,freqmax=0.1,corners=2,zerophase=True)'是正确的。
但是,我有点困惑,因为根据下面的链接,设置“zerophase=True”会导致过滤器顺序的两倍。
https://docs.obspy.org/_modules/obspy/signal/filter.html
所以我想问一下,在我的情况下设置 'corners=2' 或 'corners=1' 等是否正确。
如果有人给出答案,对我会有很大帮助。
谢谢。
解决方法
您应该指定 corners = 1
。
零相位滤波器的实现方式是将数据通过滤波器两次,一次向前,一次向后。这导致幅度响应加倍,但抵消了相位响应。因此,如果您期望阻带中的衰减为 12 dB/倍频程,就像在正常的二阶滤波器中一样,则指定 corners = 1
。这将导致前向通过 6 dB/octave 衰减,然后反向通过 6 dB/octave。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。