python 代码实现 6. order butterworth filter with F(0) 20Hz.
时间: 2024-03-09 08:46:00 浏览: 130
butterworth filter 源码
3星 · 编辑精心推荐
下面是 Python 代码实现 6 阶 Butterworth 滤波器,截止频率为 20Hz:
```python
import numpy as np
from scipy.signal import butter, filtfilt
import matplotlib.pyplot as plt
# 采样率为 1000Hz
fs = 1000.0
# 截止频率为 20Hz
fc = 20.0
# 6 阶 Butterworth 滤波器
order = 6
# 计算归一化截止频率
wc = 2 * np.pi * fc / fs
# 计算滤波器系数
b, a = butter(order, wc, 'low')
# 生成测试数据
t = np.linspace(0, 1, fs)
x = np.sin(2 * np.pi * 100 * t) + np.sin(2 * np.pi * 200 * t)
# 滤波
y = filtfilt(b, a, x)
# 绘图
fig, axs = plt.subplots(2, 1)
axs[0].plot(t, x)
axs[0].set_title('原始信号')
axs[1].plot(t, y)
axs[1].set_title('滤波后信号')
plt.show()
```
代码中使用了 SciPy 库中的 butter 函数生成 Butterworth 滤波器系数,使用 filtfilt 函数对信号进行滤波,并使用 Matplotlib 库绘制了原始信号和滤波后信号的图像。
阅读全文