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

如何调整参数?

4

1 回答 1

3

对于 iirdesign 工具,您的过渡带似乎太紧了。由此产生的滤波器在低频下具有很大的增益提升,毕竟本质上是创建一个低通滤波器。尝试使用例如创建您的过滤器

Wp = 0.1
Ws = 0.04

这应该给你一个高通滤波器。尝试使用 octave 或 matlab freqz 函数绘制结果系数,以检查它是否产生了所需的滤波器响应。

如果你必须有这样一个狭窄的过渡,你可以尝试其他的巴特沃斯过滤器类型。例如,椭圆设法产生所需的截止、过渡和停止,但在通带和阻带上都引入了振铃(以及非线性相位响应)。

b, a = fd.iirdesign(0.1, 0.04, 0.1, 60, ftype='ellip')
于 2013-08-14T08:53:26.813 回答