# 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是否正确?

如何调整参数?

最佳答案

对于iirdesign工具来说,您的过渡带似乎太紧了。所得的滤波器在低频时具有很大的增益提升,毕竟本质上构成了一个低通滤波器。尝试使用例如创建过滤器

Wp = 0.1
Ws = 0.04


这应该给您一个高通滤波器。尝试使用倍频程或matlab freqz函数绘制所得系数,以检查其是否产生了所需的滤波器响应。

如果您必须进行如此狭窄的转换,则可以尝试使用Butterworth过滤器以外的其他类型。例如,椭圆形设法产生所需的截止,过渡和停止,但是在通带和阻带上都引入了振铃(以及非线性相位响应)。

b, a = fd.iirdesign(0.1, 0.04, 0.1, 60, ftype='ellip')

关于python - Python中的此高通滤波器哪里出了问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18225843/

10-11 21:12