python低通滤波器如何实现
时间: 2023-06-06 07:04:59 浏览: 172
首先,可以使用Scipy库中的“signal”模块来实现Python的低通滤波器。具体来说,可以使用“butter”函数来设计滤波器,然后使用“lfilter”函数来对信号进行过滤。以下是一个基本的低通滤波器实现的代码示例:
```python
from scipy import signal
import numpy as np
# 设计滤波器
b, a = signal.butter(4, 0.2, 'low')
# 生成示例信号
t = np.linspace(0, 1, 1000, False)
sig = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*20*t)
# 进行过滤
filtered = signal.lfilter(b, a, sig)
# 输出结果
import matplotlib.pyplot as plt
fig = plt.figure(figsize=[10, 5])
plt.plot(t, sig, 'r', linewidth=1.5, label='Original signal')
plt.plot(t, filtered, 'b', linewidth=1.5, label='Filtered signal')
plt.legend(loc='best')
plt.grid(True)
plt.show()
```
在上面的代码中,我们使用了“signal.butter”函数来设计一个4阶低通滤波器,其截止频率为0.2。然后,我们生成一个包含两个频率分别为10Hz和20Hz的正弦波的示例信号,并使用“signal.lfilter”函数将其过滤。
最后,我们使用“matplotlib.pyplot.plot”函数将原始信号和过滤后的信号进行了可视化。可以看到,过滤后的信号只保留了10Hz的频率成分,而20Hz的成分被有效地滤除了。
阅读全文