python实现自适应滤波
时间: 2023-06-29 09:05:58 浏览: 93
自适应滤波是一种信号处理技术,它通过自动调整滤波器的参数来适应输入信号的特性。在Python中,可以使用scipy库的signal模块来实现自适应滤波。下面是一个示例代码:
```python
import numpy as np
from scipy.signal import lfilter, firwin, freqz
# 生成输入信号和噪声
t = np.linspace(0, 1, 500)
signal = np.sin(2 * np.pi * 5 * t)
noise = 0.1 * np.random.randn(len(t))
x = signal + noise
# 设计自适应滤波器
numtaps = 29
b = firwin(numtaps, cutoff=0.1, window="hamming")
y = lfilter(b, 1, x)
# 比较原始信号和滤波后的信号
import matplotlib.pyplot as plt
fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
ax0.plot(t, x)
ax0.set_title("Raw signal")
ax1.plot(t, y)
ax1.set_title("Filtered signal")
plt.show()
```
在这个示例中,我们首先生成了一个包含正弦信号和噪声的输入信号。然后,我们使用firwin函数设计了一个长度为29的低通滤波器,并使用lfilter函数将输入信号与该滤波器进行卷积。最后,我们将原始信号和滤波后的信号绘制在一起进行比较。
阅读全文