1

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

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

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

4

1 回答 1

9

您似乎有两个问题:

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

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

如果你必须有 coeds,试试这个博客文章,它展示了如何设计一个巴特沃斯低通滤波器scipy

至于在 Python 中实现滤波器,scipy具有将 FIR 或 IIR 滤波器应用于一维信号的lfilter()功能。

于 2012-07-11T08:33:25.373 回答