python - Python 中的高通滤波器哪里出了问题?

标签 python filter scipy signals signal-processing

# 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

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

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

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

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

相关文章:

python - platform.system() 的潜在结果是什么

python - Google Flex VM 的 `/_ah/background` 是什么

arrays - Excel VBA : Cant add to an array?

python - 查找列表内列表之间的相关性的效率问题

python - 约束全局优化调整[神秘]

python - View 集中 View 的 Django Rest Framework 自定义模式

python - Pandas-在列中拆分文本并在行中搜索

ios - 两次后 GPUImageView 停止响应 "Filter Change"

python - 如何使用 python 通过特定协议(protocol)过滤 pcap 文件?

python - 如何使用 numpy/scipy 求解方程中已知函数的 x?