【问题标题】:How to write lowpass filter for sampled signal in Python?如何在 Python 中为采样信号编写低通滤波器?
【发布时间】:2012-07-10 19:43:00
【问题描述】:

抱歉,可能是微不足道的问题,但我是信号处理方面的新手,我没有找到有很好解释的 python 代码。所以我很高兴得到 dummy 的解释:)

我有一些信号每 1 纳秒(1e-9 秒)采样一次,并且有 1e4 个点。 我需要从这个信号中滤除高频。假设我需要过滤高于 10MHz 的频率。 我希望对于低于截止频率的频率,信号将保持不变。这意味着对于低于截止频率的频率,滤波器的增益将为 1。 我希望能够指定过滤顺序。我的意思是,fitsr 阶滤波器在截止频率后有 20 db/decade 的斜率(功率滚降),二阶滤波器在截止频率后有 40 db/dec 的斜率,依此类推。 代码的高性能很重要。

非常感谢您的帮助。 亚历克斯。

【问题讨论】:

标签: python filter signal-processing lowpass-filter


【解决方案1】:

您似乎有两个问题:

  1. 如何设计具有 10MHz 截止频率和任意滤波器阶数的低通滤波器?
  2. 如何在 Python 中实现该过滤器?

滤波器设计超出了 Stack Overflow 的范围 - 这是 DSP 问题,而不是编程问题。任何 DSP 教科书都涵盖了滤波器设计 - 去你的图书馆。我喜欢 Proakis 和 Manolakis 的数字信号处理。 (Ifeachor 和 Jervis 的 数字信号处理 也不错。)

如果您必须有 coeds,请尝试 this blog post,它展示了如何使用 scipy 设计巴特沃斯低通滤波器。

至于在 Python 中实现滤波器,scipy 有一个 lfilter() function,它将 FIR 或 IIR 滤波器应用于一维信号。

【讨论】:

猜你喜欢
  • 2013-08-22
  • 2011-10-26
  • 2019-04-29
  • 2019-04-20
  • 2013-07-23
  • 2022-01-19
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多