【问题标题】:Create a custom signal filter in Python scipy在 Python scipy 中创建自定义信号过滤器
【发布时间】:2022-01-20 14:04:10
【问题描述】:

我正在尝试使用 python 和 scipy 实现以下过滤器。 我已经知道如何实现这样的“基本”过滤器:

cut_freq = 0.05
b, a = scipy.signal.butter(1, cut_freq/(fs/2), 'high')
output_signal = scipy.signal.filtfilt(b, a, flicker) # flicker is just a random signal in numpy

但是手头的过滤器要复杂得多,我不知道如何解决这个问题。谢谢!

【问题讨论】:

    标签: python filter signal-processing


    【解决方案1】:

    如果你想坚持使用 scipy filtfilt 函数,那么你需要传入 b 和 a 中的分子和分子系数,这会有点混乱(我宁愿对信号做一个 fft 然后乘以评估的频率响应)。

    扩展表达式并获得b和a的好方法是使用sympy,将其写为文本

    sympy.sympify('expression')
    

    并评估在除 s 之外的所有其他变量上获得的表达式(使用 expr.subs),然后使用 cancel on 's' 作为要取消的变量进行简化,只剩下 b 和 a。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 2018-06-14
      • 2015-11-11
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多