用Python进行hp滤波
时间: 2023-11-16 20:14:47 浏览: 305
HP滤波(High Pass Filtering)是一种数字信号处理技术,可以用于滤除低频噪声。在Python中,可以使用SciPy库进行HP滤波。以下是一个简单的示例代码:
```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*120*t) # 信号
# 设计一个2阶巴特沃斯高通滤波器
fc = 20 # 截止频率
b, a = butter(2, fc/(fs/2), 'highpass')
# 应用滤波器
y = filtfilt(b, a, x)
# 绘制结果
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 1, figsize=(8, 6))
ax[0].plot(t, x)
ax[0].set_title('原始信号')
ax[0].set_xlabel('时间(秒)')
ax[0].set_ylabel('振幅')
ax[1].plot(t, y)
ax[1].set_title('HP滤波后的信号')
ax[1].set_xlabel('时间(秒)')
ax[1].set_ylabel('振幅')
plt.show()
```
在上述代码中,首先创建了一个示例信号(包含50 Hz和120 Hz的正弦波),然后使用`butter`函数设计了一个2阶巴特沃斯高通滤波器,截止频率为20 Hz。接着,使用`filtfilt`函数对信号进行滤波,最后绘制了原始信号和滤波后的信号。
阅读全文