以下是使用滤波器去除高频噪声的Python代码示例:

import numpy as np
from scipy import signal

# 生成带有高频噪声的信号
t = np.linspace(0, 1, 500)
sig = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*20*t) + np.sin(2*np.pi*30*t) + np.random.randn(len(t))*0.1

# 设计低通滤波器
nyq = 0.5 * 500  # 根据采样率计算奈奎斯特频率
low = 20 / nyq  # 低通滤波的截止频率
b, a = signal.butter(4, low, 'lowpass')  # 4阶巴特沃斯低通滤波器

# 应用滤波器
filtered_sig = signal.filtfilt(b, a, sig)

# 绘制原始信号和滤波后的信号
import matplotlib.pyplot as plt

plt.plot(t, sig, label='Original signal')
plt.plot(t, filtered_sig, label='Filtered signal')
plt.legend()
plt.show()

解释:

  1. 首先生成带有高频噪声的信号,这里是三个正弦波和一些高斯噪声的叠加。

  2. 设计一个低通滤波器,这里使用了4阶巴特沃斯低通滤波器。截止频率设置为20Hz,这意味着比20Hz高的频率将被过滤掉。

  3. 使用 signal.filtfilt 函数应用滤波器。这个函数是一个双向滤波器,可以更好地去除相位延迟。

  4. 最后绘制原始信号和滤波后的信号,可以看到高频噪声已经被成功去除了

python去除高频噪声的代码

原文地址: https://www.cveoy.top/t/topic/crLl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录