自适应滤波代码 Python
时间: 2023-11-05 10:27:36 浏览: 166
以下是一个使用 Python 实现的自适应滤波器示例代码:
``` python
import numpy as np
from scipy.signal import wiener
# 生成示例信号
signal = np.sin(2 * np.pi * 5 * np.linspace(0, 1, 1000)) + 0.1 * np.random.randn(1000)
# 应用 Wiener 自适应滤波器
filtered_signal = wiener(signal)
# 绘制滤波前后的信号
import matplotlib.pyplot as plt
plt.figure()
plt.plot(signal, 'b-', label='signal')
plt.plot(filtered_signal, 'g-', linewidth=2, label='filtered signal')
plt.xlabel('Sample')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)
plt.show()
```
在这个示例代码中,我们首先生成了一个包含一个正弦波和高斯噪声的示例信号,然后使用 `wiener()` 函数应用了 Wiener 自适应滤波器,得到了滤波后的信号。最后,我们使用 `matplotlib` 库绘制了滤波前后的信号,以便比较滤波效果。
需要注意的是,自适应滤波器的设计需要根据信号的统计特性来选择,上述示例中采用了 Wiener 自适应滤波器,但在实际应用中可能需要根据具体情况选择其他自适应滤波器。
阅读全文