# Specifications for HPF
Wp = 0.01 # Cutoff frequency
Ws = 0.004 # Stop frequency
Rp = 0.1 # passband maximum loss (gpass)
As = 60 # stoppand min attenuation (gstop)
b,a = fd.iirdesign(Wp, Ws, Rp, As, ftype='butter')
y = sig.lfilter(b, a, x, axis=-1)
我调整了参数但结果从未按预期显示。
例如,当我减少Wp
时,我期望在过滤后存在更多频率成分。因此,我希望看到一个更“不稳定”的信号。
然而,到处都是0。
似乎我对这个HPF的理解是错误的。
这样做是否正确实施HPF?
如何调整参数?
答案 0 :(得分:3)
似乎你的过渡带对于iirdesign工具来说太紧了。由此产生的滤波器在低频时具有较大的增益提升,从根本上创造了低通滤波器。尝试使用例如
创建过滤器Wp = 0.1
Ws = 0.04
这应该会给你一个高通滤波器。尝试使用octave或matlab freqz函数绘制结果系数,以检查它是否产生了所需的滤波器响应。
如果您必须进行如此狭窄的过渡,则可以尝试除butterworth过滤器类型以外的其他过滤器。例如,椭圆设法产生所需的截止,转换和停止,但在通带和阻带上引入振铃(以及非线性相位响应)。
b, a = fd.iirdesign(0.1, 0.04, 0.1, 60, ftype='ellip')