用python写一个低通滤波器的代码
时间: 2023-02-24 09:23:02 浏览: 351
python实现低通滤波器代码
好的,下面是一个用 Python 实现的低通滤波器的示例代码:
```
import numpy as np
import matplotlib.pyplot as plt
def low_pass_filter(signal, cutoff_frequency, sample_rate):
nyquist_frequency = sample_rate / 2
cutoff_frequency = cutoff_frequency / nyquist_frequency
b, a = signal.butter(2, cutoff_frequency, 'low')
filtered_signal = signal.filtfilt(b, a, signal)
return filtered_signal
if __name__ == '__main__':
sample_rate = 1000
t = np.linspace(0, 1, sample_rate, False)
signal = np.sin(2 * np.pi * 100 * t) + np.sin(2 * np.pi * 200 * t)
filtered_signal = low_pass_filter(signal, 50, sample_rate)
plt.plot(t, signal, 'b-', label='Original signal')
plt.plot(t, filtered_signal, 'r-', label='Filtered signal')
plt.legend()
plt.show()
```
这里我们使用了 `numpy` 和 `matplotlib` 库。代码中定义了一个 `low_pass_filter` 函数,该函数接收一个信号数组、截止频率和采样率,并返回低通滤波后的信号数组。
在主函数中,我们生成了一个时间序列和一个信号,并调用了 `low_pass_filter` 函数,得到低通滤波后的信号。最后,我们使用 `matplotlib` 画图,将原始信号和滤波后的信号绘制在同一张图中。
阅读全文