用python为音频设计巴特沃斯高通滤波器
时间: 2023-09-24 13:11:09 浏览: 88
gaotonglvboqi.zip_线性滤波_采样 高通滤波
在Python中设计巴特沃斯高通滤波器需要使用scipy库中的signal模块。以下是一个简单的例子:
```python
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
# 生成信号
fs = 1000 # 采样率
t = np.linspace(0, 1, fs, endpoint=False)
x = np.sin(2 * np.pi * 100 * t) + np.sin(2 * np.pi * 200 * t)
# 设计巴特沃斯高通滤波器
fc = 50 # 截止频率
b, a = signal.butter(4, fc/(fs/2), 'highpass')
# 滤波
y = signal.filtfilt(b, a, x)
# 绘制结果
fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
ax0.plot(t, x)
ax0.set_title('Input signal')
ax1.plot(t, y)
ax1.set_title('Filtered signal')
plt.show()
```
在这个例子中,我们生成了一个包含两个正弦波的信号,并使用`signal.butter`函数设计了一个4阶巴特沃斯高通滤波器,截止频率为50Hz。然后使用`signal.filtfilt`函数对信号进行滤波,并使用Matplotlib库将原始信号和滤波后的信号绘制出来。
阅读全文