如何在Python中为采样信号编写低通滤波器?

Ale*_*lex 0 python signal-processing filter lowpass-filter

很抱歉这可能是微不足道的问题,但我是信号处理的新手,我没有找到具有良好解释的python代码.所以我很乐意得到假的解释:)

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

非常感谢你的帮助.亚历克斯.

Li-*_*Yip 9

您似乎有两个问题:

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

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

如果你必须有一些coh,请试试这篇博文,其中展示了如何设计一个Butterworth低通滤波器scipy.

作为实施在Python滤波器的,scipy具有一lfilter()功能,其施加一个FIR或IIR滤波器来的信号在一个维度.

  • 有关问题的DSP /滤波器设计部分,另请参见http://dsp.stackexchange.com. (2认同)