【问题标题】:Butterworth Filter Using Scipy使用 Scipy 的巴特沃斯过滤器
【发布时间】:2017-10-11 21:27:12
【问题描述】:

我对 scipy.signal.butter 函数的以下参数有疑问。我正在使用 python 并在 jupyter notebook 中运行它。

以下文档的链接:

https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.butter.html

我正在尝试实现一个低通 n 阶巴特沃斯滤波器。我对参数 Wn 感到困惑。如果我的采样频率为 1000Hz。我想切断 250Hz 以上的频率。根据我对文档的理解,Wn 必须如下:

fs = 1000 * 2pi

fc = 250 * 2pi

Wn = fc/(fs/2)

这是正确的吗?我使用了上面的以下过程,我的反应似乎并不准确。但我对输出没有任何期望,所以它可能是正确的。谢谢。

【问题讨论】:

    标签: python filtering jupyter-notebook


    【解决方案1】:

    此方法中的截止频率由奈奎斯特频率归一化。 (信号中可分辨的最高频率。)根据定义,奈奎斯特频率是信号采样率的一半。在您的情况下,这是 500Hz。所以你应该有Wn = 0.5,它来自:

    cutoff = 250.0
    Fs = 1000.0
    Wn = cutoff / (Fs / 2.0)
    

    我认为您对弧度的困惑来自文档。这并不是说您需要以某种方式将频率转换为弧度。每个样本的奈奎斯特频率等于 pi 弧度,每个样本的采样率等于 2*pi 弧度。这称为“每个样本的半周期”。请参阅Normalized frequency 上的维基百科页面,其中包含更多信息。

    【讨论】:

    • 好的。我现在知道了。感谢您的回复!
    猜你喜欢
    • 2020-03-15
    • 2015-01-01
    • 2014-03-18
    • 1970-01-01
    • 2019-10-09
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多