程序中加滤波
时间: 2023-08-29 17:07:39 浏览: 55
在程序中实现加滤波,需要先选择合适的滤波器类型和参数,然后将滤波器应用于待处理的信号。以下是一个简单的例子,使用 Python 的 SciPy 库实现一个二阶倍福加低通滤波器:
```python
from scipy.signal import butter, filtfilt
import numpy as np
# 生成信号
fs = 1000 # 采样率
t = np.arange(0, 1, 1/fs)
x = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*200*t)
# 设计滤波器
cutoff = 100 # 截止频率
nyq = 0.5 * fs # Nyquist 频率
order = 2 # 滤波器阶数
b, a = butter(order, cutoff/nyq, 'low') # 低通滤波器设计
# 应用滤波器
y = filtfilt(b, a, x)
# 绘制结果
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(t, x)
ax[1].plot(t, y)
ax[0].set_title('原始信号')
ax[1].set_title('滤波后信号')
plt.show()
```
在这个例子中,我们首先生成一个包含两个正弦波的信号,然后使用 `butter` 函数设计一个二阶低通滤波器,截止频率为 100 Hz。最后,我们使用 `filtfilt` 函数将滤波器应用于信号,并绘制出原始信号和滤波后信号的波形图。
相关推荐
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)